blob: 7e6f04898e1e3e815cdde5289770dfb2cf4681d6 [file] [log] [blame]
Victor Stinnerb6defde2021-11-26 16:38:50 +01001// @generated by pegen.py from python.gram
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002#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 Galindo Salgadodc731992021-12-20 16:23:37 +00009
10# define MAXSTACK 6000
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011static const int n_keyword_lists = 9;
12static KeywordToken *reserved_keywords[] = {
Pablo Galindo1ac0cbc2020-07-06 20:31:16 +010013 (KeywordToken[]) {{NULL, -1}},
14 (KeywordToken[]) {{NULL, -1}},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015 (KeywordToken[]) {
16 {"if", 510},
17 {"in", 518},
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018 {"as", 520},
Brandt Bucher145bf262021-02-26 14:51:55 -080019 {"is", 530},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020 {"or", 531},
21 {NULL, -1},
22 },
23 (KeywordToken[]) {
24 {"del", 503},
25 {"try", 511},
26 {"for", 517},
Brandt Bucher145bf262021-02-26 14:51:55 -080027 {"def", 526},
28 {"not", 529},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029 {"and", 532},
30 {NULL, -1},
31 },
32 (KeywordToken[]) {
33 {"pass", 502},
34 {"from", 514},
35 {"elif", 515},
36 {"else", 516},
37 {"with", 519},
Brandt Bucher145bf262021-02-26 14:51:55 -080038 {"None", 523},
39 {"True", 524},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010040 {NULL, -1},
41 },
42 (KeywordToken[]) {
43 {"raise", 501},
44 {"yield", 504},
45 {"break", 506},
46 {"while", 512},
Brandt Bucher145bf262021-02-26 14:51:55 -080047 {"False", 525},
48 {"class", 527},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010049 {NULL, -1},
50 },
51 (KeywordToken[]) {
52 {"return", 500},
53 {"assert", 505},
54 {"global", 508},
55 {"import", 513},
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030056 {"except", 521},
Brandt Bucher145bf262021-02-26 14:51:55 -080057 {"lambda", 528},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010058 {NULL, -1},
59 },
60 (KeywordToken[]) {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030061 {"finally", 522},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010062 {NULL, -1},
63 },
64 (KeywordToken[]) {
65 {"continue", 507},
66 {"nonlocal", 509},
67 {NULL, -1},
68 },
69};
Pablo Galindob2802482021-04-15 21:38:45 +010070static char *soft_keywords[] = {
71 "_",
72 "case",
73 "match",
74 NULL,
75};
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010076#define file_type 1000
77#define interactive_type 1001
78#define eval_type 1002
79#define func_type_type 1003
80#define fstring_type 1004
81#define type_expressions_type 1005
82#define statements_type 1006
83#define statement_type 1007
84#define statement_newline_type 1008
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000085#define simple_stmts_type 1009
86#define simple_stmt_type 1010
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010087#define compound_stmt_type 1011
88#define assignment_type 1012
89#define augassign_type 1013
90#define global_stmt_type 1014
91#define nonlocal_stmt_type 1015
92#define yield_stmt_type 1016
93#define assert_stmt_type 1017
94#define del_stmt_type 1018
95#define import_stmt_type 1019
96#define import_name_type 1020
97#define import_from_type 1021
98#define import_from_targets_type 1022
99#define import_from_as_names_type 1023
100#define import_from_as_name_type 1024
101#define dotted_as_names_type 1025
102#define dotted_as_name_type 1026
103#define dotted_name_type 1027 // Left-recursive
104#define if_stmt_type 1028
105#define elif_stmt_type 1029
106#define else_block_type 1030
107#define while_stmt_type 1031
108#define for_stmt_type 1032
109#define with_stmt_type 1033
110#define with_item_type 1034
111#define try_stmt_type 1035
112#define except_block_type 1036
113#define finally_block_type 1037
Brandt Bucher145bf262021-02-26 14:51:55 -0800114#define match_stmt_type 1038
115#define subject_expr_type 1039
116#define case_block_type 1040
117#define guard_type 1041
118#define patterns_type 1042
119#define pattern_type 1043
120#define as_pattern_type 1044
121#define or_pattern_type 1045
122#define closed_pattern_type 1046
123#define literal_pattern_type 1047
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000124#define literal_expr_type 1048
125#define complex_number_type 1049
126#define signed_number_type 1050
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700127#define signed_real_number_type 1051
128#define real_number_type 1052
129#define imaginary_number_type 1053
130#define capture_pattern_type 1054
131#define pattern_capture_target_type 1055
132#define wildcard_pattern_type 1056
133#define value_pattern_type 1057
134#define attr_type 1058 // Left-recursive
135#define name_or_attr_type 1059 // Left-recursive
136#define group_pattern_type 1060
137#define sequence_pattern_type 1061
138#define open_sequence_pattern_type 1062
139#define maybe_sequence_pattern_type 1063
140#define maybe_star_pattern_type 1064
141#define star_pattern_type 1065
142#define mapping_pattern_type 1066
143#define items_pattern_type 1067
144#define key_value_pattern_type 1068
145#define double_star_pattern_type 1069
146#define class_pattern_type 1070
147#define positional_patterns_type 1071
148#define keyword_patterns_type 1072
149#define keyword_pattern_type 1073
150#define return_stmt_type 1074
151#define raise_stmt_type 1075
152#define function_def_type 1076
153#define function_def_raw_type 1077
154#define func_type_comment_type 1078
155#define params_type 1079
156#define parameters_type 1080
157#define slash_no_default_type 1081
158#define slash_with_default_type 1082
159#define star_etc_type 1083
160#define kwds_type 1084
161#define param_no_default_type 1085
162#define param_with_default_type 1086
163#define param_maybe_default_type 1087
164#define param_type 1088
165#define annotation_type 1089
166#define default_type 1090
167#define decorators_type 1091
168#define class_def_type 1092
169#define class_def_raw_type 1093
170#define block_type 1094
171#define star_expressions_type 1095
172#define star_expression_type 1096
173#define star_named_expressions_type 1097
174#define star_named_expression_type 1098
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +0000175#define assignment_expression_type 1099
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700176#define named_expression_type 1100
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700177#define annotated_rhs_type 1101
178#define expressions_type 1102
179#define expression_type 1103
180#define lambdef_type 1104
181#define lambda_params_type 1105
182#define lambda_parameters_type 1106
183#define lambda_slash_no_default_type 1107
184#define lambda_slash_with_default_type 1108
185#define lambda_star_etc_type 1109
186#define lambda_kwds_type 1110
187#define lambda_param_no_default_type 1111
188#define lambda_param_with_default_type 1112
189#define lambda_param_maybe_default_type 1113
190#define lambda_param_type 1114
191#define disjunction_type 1115
192#define conjunction_type 1116
193#define inversion_type 1117
194#define comparison_type 1118
195#define compare_op_bitwise_or_pair_type 1119
196#define eq_bitwise_or_type 1120
197#define noteq_bitwise_or_type 1121
198#define lte_bitwise_or_type 1122
199#define lt_bitwise_or_type 1123
200#define gte_bitwise_or_type 1124
201#define gt_bitwise_or_type 1125
202#define notin_bitwise_or_type 1126
203#define in_bitwise_or_type 1127
204#define isnot_bitwise_or_type 1128
205#define is_bitwise_or_type 1129
206#define bitwise_or_type 1130 // Left-recursive
207#define bitwise_xor_type 1131 // Left-recursive
208#define bitwise_and_type 1132 // Left-recursive
209#define shift_expr_type 1133 // Left-recursive
210#define sum_type 1134 // Left-recursive
211#define term_type 1135 // Left-recursive
212#define factor_type 1136
213#define power_type 1137
214#define await_primary_type 1138
215#define primary_type 1139 // Left-recursive
216#define slices_type 1140
217#define slice_type 1141
218#define atom_type 1142
219#define strings_type 1143
220#define list_type 1144
221#define listcomp_type 1145
222#define tuple_type 1146
223#define group_type 1147
224#define genexp_type 1148
225#define set_type 1149
226#define setcomp_type 1150
227#define dict_type 1151
228#define dictcomp_type 1152
229#define double_starred_kvpairs_type 1153
230#define double_starred_kvpair_type 1154
231#define kvpair_type 1155
232#define for_if_clauses_type 1156
233#define for_if_clause_type 1157
234#define yield_expr_type 1158
235#define arguments_type 1159
236#define args_type 1160
237#define kwargs_type 1161
238#define starred_expression_type 1162
239#define kwarg_or_starred_type 1163
240#define kwarg_or_double_starred_type 1164
241#define star_targets_type 1165
242#define star_targets_list_seq_type 1166
243#define star_targets_tuple_seq_type 1167
244#define star_target_type 1168
245#define target_with_star_atom_type 1169
246#define star_atom_type 1170
247#define single_target_type 1171
248#define single_subscript_attribute_target_type 1172
249#define del_targets_type 1173
250#define del_target_type 1174
251#define del_t_atom_type 1175
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700252#define t_primary_type 1176 // Left-recursive
253#define t_lookahead_type 1177
254#define invalid_arguments_type 1178
255#define invalid_kwarg_type 1179
256#define expression_without_invalid_type 1180
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +0100257#define invalid_legacy_expression_type 1181
258#define invalid_expression_type 1182
259#define invalid_named_expression_type 1183
260#define invalid_assignment_type 1184
261#define invalid_ann_assign_target_type 1185
262#define invalid_del_stmt_type 1186
263#define invalid_block_type 1187
Pablo Galindo Salgado511ee1c2021-11-20 17:39:17 +0000264#define invalid_comprehension_type 1188
265#define invalid_dict_comprehension_type 1189
266#define invalid_parameters_type 1190
267#define invalid_parameters_helper_type 1191
268#define invalid_lambda_parameters_type 1192
269#define invalid_lambda_parameters_helper_type 1193
270#define invalid_star_etc_type 1194
271#define invalid_lambda_star_etc_type 1195
272#define invalid_double_type_comments_type 1196
273#define invalid_with_item_type 1197
274#define invalid_for_target_type 1198
275#define invalid_group_type 1199
276#define invalid_import_from_targets_type 1200
277#define invalid_with_stmt_type 1201
278#define invalid_with_stmt_indent_type 1202
279#define invalid_try_stmt_type 1203
280#define invalid_except_stmt_type 1204
281#define invalid_finally_stmt_type 1205
282#define invalid_except_stmt_indent_type 1206
283#define invalid_match_stmt_type 1207
284#define invalid_case_block_type 1208
285#define invalid_as_pattern_type 1209
286#define invalid_class_pattern_type 1210
287#define invalid_class_argument_pattern_type 1211
288#define invalid_if_stmt_type 1212
289#define invalid_elif_stmt_type 1213
290#define invalid_else_stmt_type 1214
291#define invalid_while_stmt_type 1215
292#define invalid_for_stmt_type 1216
293#define invalid_def_raw_type 1217
294#define invalid_class_def_raw_type 1218
295#define invalid_double_starred_kvpairs_type 1219
296#define invalid_kvpair_type 1220
297#define _loop0_1_type 1221
298#define _loop0_2_type 1222
299#define _loop0_4_type 1223
300#define _gather_3_type 1224
301#define _loop0_6_type 1225
302#define _gather_5_type 1226
303#define _loop0_8_type 1227
304#define _gather_7_type 1228
305#define _loop0_10_type 1229
306#define _gather_9_type 1230
307#define _loop1_11_type 1231
308#define _loop0_13_type 1232
309#define _gather_12_type 1233
310#define _tmp_14_type 1234
311#define _tmp_15_type 1235
312#define _tmp_16_type 1236
313#define _tmp_17_type 1237
314#define _tmp_18_type 1238
315#define _tmp_19_type 1239
316#define _tmp_20_type 1240
317#define _tmp_21_type 1241
318#define _loop1_22_type 1242
319#define _tmp_23_type 1243
320#define _tmp_24_type 1244
321#define _loop0_26_type 1245
322#define _gather_25_type 1246
323#define _loop0_28_type 1247
324#define _gather_27_type 1248
325#define _tmp_29_type 1249
326#define _tmp_30_type 1250
327#define _loop0_31_type 1251
328#define _loop1_32_type 1252
329#define _loop0_34_type 1253
330#define _gather_33_type 1254
331#define _tmp_35_type 1255
332#define _loop0_37_type 1256
333#define _gather_36_type 1257
334#define _tmp_38_type 1258
335#define _loop0_40_type 1259
336#define _gather_39_type 1260
337#define _loop0_42_type 1261
338#define _gather_41_type 1262
339#define _loop0_44_type 1263
340#define _gather_43_type 1264
341#define _loop0_46_type 1265
342#define _gather_45_type 1266
343#define _tmp_47_type 1267
344#define _loop1_48_type 1268
345#define _tmp_49_type 1269
346#define _loop1_50_type 1270
347#define _loop0_52_type 1271
348#define _gather_51_type 1272
349#define _tmp_53_type 1273
350#define _tmp_54_type 1274
351#define _tmp_55_type 1275
352#define _tmp_56_type 1276
353#define _loop0_58_type 1277
354#define _gather_57_type 1278
355#define _loop0_60_type 1279
356#define _gather_59_type 1280
357#define _tmp_61_type 1281
358#define _loop0_63_type 1282
359#define _gather_62_type 1283
360#define _loop0_65_type 1284
361#define _gather_64_type 1285
362#define _tmp_66_type 1286
363#define _tmp_67_type 1287
364#define _tmp_68_type 1288
365#define _tmp_69_type 1289
366#define _loop0_70_type 1290
367#define _loop0_71_type 1291
368#define _loop0_72_type 1292
369#define _loop1_73_type 1293
370#define _loop0_74_type 1294
371#define _loop1_75_type 1295
372#define _loop1_76_type 1296
373#define _loop1_77_type 1297
374#define _loop0_78_type 1298
375#define _loop1_79_type 1299
376#define _loop0_80_type 1300
377#define _loop1_81_type 1301
378#define _loop0_82_type 1302
379#define _loop1_83_type 1303
380#define _loop1_84_type 1304
381#define _tmp_85_type 1305
382#define _loop1_86_type 1306
383#define _loop0_88_type 1307
384#define _gather_87_type 1308
385#define _loop1_89_type 1309
386#define _loop0_90_type 1310
387#define _loop0_91_type 1311
388#define _loop0_92_type 1312
389#define _loop1_93_type 1313
390#define _loop0_94_type 1314
391#define _loop1_95_type 1315
392#define _loop1_96_type 1316
393#define _loop1_97_type 1317
394#define _loop0_98_type 1318
395#define _loop1_99_type 1319
396#define _loop0_100_type 1320
397#define _loop1_101_type 1321
398#define _loop0_102_type 1322
399#define _loop1_103_type 1323
400#define _loop1_104_type 1324
401#define _loop1_105_type 1325
402#define _loop1_106_type 1326
403#define _tmp_107_type 1327
404#define _loop0_109_type 1328
405#define _gather_108_type 1329
406#define _tmp_110_type 1330
407#define _tmp_111_type 1331
408#define _tmp_112_type 1332
409#define _tmp_113_type 1333
410#define _loop1_114_type 1334
411#define _tmp_115_type 1335
412#define _tmp_116_type 1336
413#define _tmp_117_type 1337
414#define _loop0_119_type 1338
415#define _gather_118_type 1339
416#define _loop1_120_type 1340
417#define _loop0_121_type 1341
418#define _loop0_122_type 1342
419#define _loop0_124_type 1343
420#define _gather_123_type 1344
421#define _tmp_125_type 1345
422#define _loop0_127_type 1346
423#define _gather_126_type 1347
424#define _loop0_129_type 1348
425#define _gather_128_type 1349
426#define _loop0_131_type 1350
427#define _gather_130_type 1351
428#define _loop0_133_type 1352
429#define _gather_132_type 1353
430#define _loop0_134_type 1354
431#define _loop0_136_type 1355
432#define _gather_135_type 1356
433#define _loop1_137_type 1357
434#define _tmp_138_type 1358
435#define _loop0_140_type 1359
436#define _gather_139_type 1360
437#define _tmp_141_type 1361
438#define _tmp_142_type 1362
439#define _tmp_143_type 1363
440#define _tmp_144_type 1364
441#define _tmp_145_type 1365
442#define _tmp_146_type 1366
443#define _tmp_147_type 1367
444#define _tmp_148_type 1368
445#define _loop0_149_type 1369
446#define _loop0_150_type 1370
447#define _loop0_151_type 1371
448#define _tmp_152_type 1372
449#define _tmp_153_type 1373
450#define _tmp_154_type 1374
451#define _tmp_155_type 1375
452#define _loop0_156_type 1376
453#define _loop1_157_type 1377
454#define _loop0_158_type 1378
455#define _loop1_159_type 1379
456#define _tmp_160_type 1380
457#define _tmp_161_type 1381
458#define _tmp_162_type 1382
459#define _loop0_164_type 1383
460#define _gather_163_type 1384
461#define _loop0_166_type 1385
462#define _gather_165_type 1386
463#define _loop0_168_type 1387
464#define _gather_167_type 1388
465#define _loop0_170_type 1389
466#define _gather_169_type 1390
467#define _tmp_171_type 1391
468#define _tmp_172_type 1392
469#define _tmp_173_type 1393
470#define _tmp_174_type 1394
471#define _tmp_175_type 1395
472#define _tmp_176_type 1396
473#define _tmp_177_type 1397
474#define _loop0_179_type 1398
475#define _gather_178_type 1399
476#define _tmp_180_type 1400
477#define _tmp_181_type 1401
478#define _tmp_182_type 1402
479#define _tmp_183_type 1403
480#define _tmp_184_type 1404
481#define _tmp_185_type 1405
482#define _tmp_186_type 1406
483#define _tmp_187_type 1407
484#define _tmp_188_type 1408
485#define _tmp_189_type 1409
486#define _tmp_190_type 1410
487#define _tmp_191_type 1411
488#define _tmp_192_type 1412
489#define _tmp_193_type 1413
490#define _tmp_194_type 1414
491#define _tmp_195_type 1415
492#define _tmp_196_type 1416
493#define _tmp_197_type 1417
494#define _tmp_198_type 1418
495#define _tmp_199_type 1419
496#define _tmp_200_type 1420
497#define _tmp_201_type 1421
498#define _tmp_202_type 1422
499#define _tmp_203_type 1423
500#define _tmp_204_type 1424
501#define _tmp_205_type 1425
502#define _tmp_206_type 1426
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100503
504static mod_ty file_rule(Parser *p);
505static mod_ty interactive_rule(Parser *p);
506static mod_ty eval_rule(Parser *p);
507static mod_ty func_type_rule(Parser *p);
508static expr_ty fstring_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100509static asdl_expr_seq* type_expressions_rule(Parser *p);
510static asdl_stmt_seq* statements_rule(Parser *p);
511static asdl_stmt_seq* statement_rule(Parser *p);
512static asdl_stmt_seq* statement_newline_rule(Parser *p);
Pablo Galindo9bdc40e2020-11-30 19:42:38 +0000513static asdl_stmt_seq* simple_stmts_rule(Parser *p);
514static stmt_ty simple_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100515static stmt_ty compound_stmt_rule(Parser *p);
516static stmt_ty assignment_rule(Parser *p);
517static AugOperator* augassign_rule(Parser *p);
518static stmt_ty global_stmt_rule(Parser *p);
519static stmt_ty nonlocal_stmt_rule(Parser *p);
520static stmt_ty yield_stmt_rule(Parser *p);
521static stmt_ty assert_stmt_rule(Parser *p);
522static stmt_ty del_stmt_rule(Parser *p);
523static stmt_ty import_stmt_rule(Parser *p);
524static stmt_ty import_name_rule(Parser *p);
525static stmt_ty import_from_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100526static asdl_alias_seq* import_from_targets_rule(Parser *p);
527static asdl_alias_seq* import_from_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100528static alias_ty import_from_as_name_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100529static asdl_alias_seq* dotted_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100530static alias_ty dotted_as_name_rule(Parser *p);
531static expr_ty dotted_name_rule(Parser *p);
532static stmt_ty if_stmt_rule(Parser *p);
533static stmt_ty elif_stmt_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100534static asdl_stmt_seq* else_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100535static stmt_ty while_stmt_rule(Parser *p);
536static stmt_ty for_stmt_rule(Parser *p);
537static stmt_ty with_stmt_rule(Parser *p);
538static withitem_ty with_item_rule(Parser *p);
539static stmt_ty try_stmt_rule(Parser *p);
540static excepthandler_ty except_block_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100541static asdl_stmt_seq* finally_block_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800542static stmt_ty match_stmt_rule(Parser *p);
543static expr_ty subject_expr_rule(Parser *p);
544static match_case_ty case_block_rule(Parser *p);
545static expr_ty guard_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000546static pattern_ty patterns_rule(Parser *p);
547static pattern_ty pattern_rule(Parser *p);
548static pattern_ty as_pattern_rule(Parser *p);
549static pattern_ty or_pattern_rule(Parser *p);
550static pattern_ty closed_pattern_rule(Parser *p);
551static pattern_ty literal_pattern_rule(Parser *p);
552static expr_ty literal_expr_rule(Parser *p);
553static expr_ty complex_number_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800554static expr_ty signed_number_rule(Parser *p);
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700555static expr_ty signed_real_number_rule(Parser *p);
556static expr_ty real_number_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000557static expr_ty imaginary_number_rule(Parser *p);
558static pattern_ty capture_pattern_rule(Parser *p);
559static expr_ty pattern_capture_target_rule(Parser *p);
560static pattern_ty wildcard_pattern_rule(Parser *p);
561static pattern_ty value_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800562static expr_ty attr_rule(Parser *p);
563static expr_ty name_or_attr_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000564static pattern_ty group_pattern_rule(Parser *p);
565static pattern_ty sequence_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800566static asdl_seq* open_sequence_pattern_rule(Parser *p);
567static asdl_seq* maybe_sequence_pattern_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000568static pattern_ty maybe_star_pattern_rule(Parser *p);
569static pattern_ty star_pattern_rule(Parser *p);
570static pattern_ty mapping_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800571static asdl_seq* items_pattern_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000572static KeyPatternPair* key_value_pattern_rule(Parser *p);
573static expr_ty double_star_pattern_rule(Parser *p);
574static pattern_ty class_pattern_rule(Parser *p);
575static asdl_pattern_seq* positional_patterns_rule(Parser *p);
576static asdl_seq* keyword_patterns_rule(Parser *p);
577static KeyPatternPair* keyword_pattern_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100578static stmt_ty return_stmt_rule(Parser *p);
579static stmt_ty raise_stmt_rule(Parser *p);
580static stmt_ty function_def_rule(Parser *p);
581static stmt_ty function_def_raw_rule(Parser *p);
582static Token* func_type_comment_rule(Parser *p);
583static arguments_ty params_rule(Parser *p);
584static arguments_ty parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100585static asdl_arg_seq* slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100586static SlashWithDefault* slash_with_default_rule(Parser *p);
587static StarEtc* star_etc_rule(Parser *p);
588static arg_ty kwds_rule(Parser *p);
589static arg_ty param_no_default_rule(Parser *p);
590static NameDefaultPair* param_with_default_rule(Parser *p);
591static NameDefaultPair* param_maybe_default_rule(Parser *p);
592static arg_ty param_rule(Parser *p);
593static expr_ty annotation_rule(Parser *p);
594static expr_ty default_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100595static asdl_expr_seq* decorators_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100596static stmt_ty class_def_rule(Parser *p);
597static stmt_ty class_def_raw_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100598static asdl_stmt_seq* block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100599static expr_ty star_expressions_rule(Parser *p);
600static expr_ty star_expression_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100601static asdl_expr_seq* star_named_expressions_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100602static expr_ty star_named_expression_rule(Parser *p);
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +0000603static expr_ty assignment_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100604static expr_ty named_expression_rule(Parser *p);
605static expr_ty annotated_rhs_rule(Parser *p);
606static expr_ty expressions_rule(Parser *p);
607static expr_ty expression_rule(Parser *p);
608static expr_ty lambdef_rule(Parser *p);
609static arguments_ty lambda_params_rule(Parser *p);
610static arguments_ty lambda_parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100611static asdl_arg_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100612static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
613static StarEtc* lambda_star_etc_rule(Parser *p);
614static arg_ty lambda_kwds_rule(Parser *p);
615static arg_ty lambda_param_no_default_rule(Parser *p);
616static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
617static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
618static arg_ty lambda_param_rule(Parser *p);
619static expr_ty disjunction_rule(Parser *p);
620static expr_ty conjunction_rule(Parser *p);
621static expr_ty inversion_rule(Parser *p);
622static expr_ty comparison_rule(Parser *p);
623static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
624static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
625static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
626static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
627static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
628static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
629static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
630static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
631static CmpopExprPair* in_bitwise_or_rule(Parser *p);
632static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
633static CmpopExprPair* is_bitwise_or_rule(Parser *p);
634static expr_ty bitwise_or_rule(Parser *p);
635static expr_ty bitwise_xor_rule(Parser *p);
636static expr_ty bitwise_and_rule(Parser *p);
637static expr_ty shift_expr_rule(Parser *p);
638static expr_ty sum_rule(Parser *p);
639static expr_ty term_rule(Parser *p);
640static expr_ty factor_rule(Parser *p);
641static expr_ty power_rule(Parser *p);
642static expr_ty await_primary_rule(Parser *p);
643static expr_ty primary_rule(Parser *p);
644static expr_ty slices_rule(Parser *p);
645static expr_ty slice_rule(Parser *p);
646static expr_ty atom_rule(Parser *p);
647static expr_ty strings_rule(Parser *p);
648static expr_ty list_rule(Parser *p);
649static expr_ty listcomp_rule(Parser *p);
650static expr_ty tuple_rule(Parser *p);
651static expr_ty group_rule(Parser *p);
652static expr_ty genexp_rule(Parser *p);
653static expr_ty set_rule(Parser *p);
654static expr_ty setcomp_rule(Parser *p);
655static expr_ty dict_rule(Parser *p);
656static expr_ty dictcomp_rule(Parser *p);
657static asdl_seq* double_starred_kvpairs_rule(Parser *p);
658static KeyValuePair* double_starred_kvpair_rule(Parser *p);
659static KeyValuePair* kvpair_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100660static asdl_comprehension_seq* for_if_clauses_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100661static comprehension_ty for_if_clause_rule(Parser *p);
662static expr_ty yield_expr_rule(Parser *p);
663static expr_ty arguments_rule(Parser *p);
664static expr_ty args_rule(Parser *p);
665static asdl_seq* kwargs_rule(Parser *p);
666static expr_ty starred_expression_rule(Parser *p);
667static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
668static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
669static expr_ty star_targets_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200670static asdl_expr_seq* star_targets_list_seq_rule(Parser *p);
671static asdl_expr_seq* star_targets_tuple_seq_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100672static expr_ty star_target_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200673static expr_ty target_with_star_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100674static expr_ty star_atom_rule(Parser *p);
675static expr_ty single_target_rule(Parser *p);
676static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100677static asdl_expr_seq* del_targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100678static expr_ty del_target_rule(Parser *p);
679static expr_ty del_t_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100680static expr_ty t_primary_rule(Parser *p);
681static void *t_lookahead_rule(Parser *p);
Lysandros Nikolaoubca70142020-10-27 00:42:04 +0200682static void *invalid_arguments_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100683static void *invalid_kwarg_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700684static expr_ty expression_without_invalid_rule(Parser *p);
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +0100685static void *invalid_legacy_expression_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100686static void *invalid_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100687static void *invalid_named_expression_rule(Parser *p);
688static void *invalid_assignment_rule(Parser *p);
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +0300689static expr_ty invalid_ann_assign_target_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300690static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100691static void *invalid_block_rule(Parser *p);
692static void *invalid_comprehension_rule(Parser *p);
693static void *invalid_dict_comprehension_rule(Parser *p);
694static void *invalid_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200695static void *invalid_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100696static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200697static void *invalid_lambda_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100698static void *invalid_star_etc_rule(Parser *p);
699static void *invalid_lambda_star_etc_rule(Parser *p);
700static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300701static void *invalid_with_item_rule(Parser *p);
702static void *invalid_for_target_rule(Parser *p);
703static void *invalid_group_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100704static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000705static void *invalid_with_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100706static void *invalid_with_stmt_indent_rule(Parser *p);
707static void *invalid_try_stmt_rule(Parser *p);
708static void *invalid_except_stmt_rule(Parser *p);
709static void *invalid_finally_stmt_rule(Parser *p);
710static void *invalid_except_stmt_indent_rule(Parser *p);
Pablo Galindo08fb8ac2021-03-18 01:03:11 +0000711static void *invalid_match_stmt_rule(Parser *p);
712static void *invalid_case_block_rule(Parser *p);
Pablo Galindoa8c418d2021-06-18 22:15:57 +0100713static void *invalid_as_pattern_rule(Parser *p);
Miss Islington (bot)11f1a302021-06-24 08:34:28 -0700714static void *invalid_class_pattern_rule(Parser *p);
715static asdl_pattern_seq* invalid_class_argument_pattern_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100716static void *invalid_if_stmt_rule(Parser *p);
717static void *invalid_elif_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100718static void *invalid_else_stmt_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100719static void *invalid_while_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100720static void *invalid_for_stmt_rule(Parser *p);
721static void *invalid_def_raw_rule(Parser *p);
722static void *invalid_class_def_raw_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100723static void *invalid_double_starred_kvpairs_rule(Parser *p);
724static void *invalid_kvpair_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100725static asdl_seq *_loop0_1_rule(Parser *p);
726static asdl_seq *_loop0_2_rule(Parser *p);
727static asdl_seq *_loop0_4_rule(Parser *p);
728static asdl_seq *_gather_3_rule(Parser *p);
729static asdl_seq *_loop0_6_rule(Parser *p);
730static asdl_seq *_gather_5_rule(Parser *p);
731static asdl_seq *_loop0_8_rule(Parser *p);
732static asdl_seq *_gather_7_rule(Parser *p);
733static asdl_seq *_loop0_10_rule(Parser *p);
734static asdl_seq *_gather_9_rule(Parser *p);
735static asdl_seq *_loop1_11_rule(Parser *p);
736static asdl_seq *_loop0_13_rule(Parser *p);
737static asdl_seq *_gather_12_rule(Parser *p);
738static void *_tmp_14_rule(Parser *p);
739static void *_tmp_15_rule(Parser *p);
740static void *_tmp_16_rule(Parser *p);
741static void *_tmp_17_rule(Parser *p);
742static void *_tmp_18_rule(Parser *p);
743static void *_tmp_19_rule(Parser *p);
744static void *_tmp_20_rule(Parser *p);
745static void *_tmp_21_rule(Parser *p);
746static asdl_seq *_loop1_22_rule(Parser *p);
747static void *_tmp_23_rule(Parser *p);
748static void *_tmp_24_rule(Parser *p);
749static asdl_seq *_loop0_26_rule(Parser *p);
750static asdl_seq *_gather_25_rule(Parser *p);
751static asdl_seq *_loop0_28_rule(Parser *p);
752static asdl_seq *_gather_27_rule(Parser *p);
753static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300754static void *_tmp_30_rule(Parser *p);
755static asdl_seq *_loop0_31_rule(Parser *p);
756static asdl_seq *_loop1_32_rule(Parser *p);
757static asdl_seq *_loop0_34_rule(Parser *p);
758static asdl_seq *_gather_33_rule(Parser *p);
759static void *_tmp_35_rule(Parser *p);
760static asdl_seq *_loop0_37_rule(Parser *p);
761static asdl_seq *_gather_36_rule(Parser *p);
762static void *_tmp_38_rule(Parser *p);
763static asdl_seq *_loop0_40_rule(Parser *p);
764static asdl_seq *_gather_39_rule(Parser *p);
765static asdl_seq *_loop0_42_rule(Parser *p);
766static asdl_seq *_gather_41_rule(Parser *p);
767static asdl_seq *_loop0_44_rule(Parser *p);
768static asdl_seq *_gather_43_rule(Parser *p);
769static asdl_seq *_loop0_46_rule(Parser *p);
770static asdl_seq *_gather_45_rule(Parser *p);
771static void *_tmp_47_rule(Parser *p);
772static asdl_seq *_loop1_48_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100773static void *_tmp_49_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800774static asdl_seq *_loop1_50_rule(Parser *p);
775static asdl_seq *_loop0_52_rule(Parser *p);
776static asdl_seq *_gather_51_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300777static void *_tmp_53_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800778static void *_tmp_54_rule(Parser *p);
779static void *_tmp_55_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000780static void *_tmp_56_rule(Parser *p);
781static asdl_seq *_loop0_58_rule(Parser *p);
782static asdl_seq *_gather_57_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800783static asdl_seq *_loop0_60_rule(Parser *p);
784static asdl_seq *_gather_59_rule(Parser *p);
785static void *_tmp_61_rule(Parser *p);
786static asdl_seq *_loop0_63_rule(Parser *p);
787static asdl_seq *_gather_62_rule(Parser *p);
788static asdl_seq *_loop0_65_rule(Parser *p);
789static asdl_seq *_gather_64_rule(Parser *p);
790static void *_tmp_66_rule(Parser *p);
791static void *_tmp_67_rule(Parser *p);
792static void *_tmp_68_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300793static void *_tmp_69_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800794static asdl_seq *_loop0_70_rule(Parser *p);
795static asdl_seq *_loop0_71_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000796static asdl_seq *_loop0_72_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000797static asdl_seq *_loop1_73_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300798static asdl_seq *_loop0_74_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800799static asdl_seq *_loop1_75_rule(Parser *p);
800static asdl_seq *_loop1_76_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000801static asdl_seq *_loop1_77_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300802static asdl_seq *_loop0_78_rule(Parser *p);
803static asdl_seq *_loop1_79_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800804static asdl_seq *_loop0_80_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100805static asdl_seq *_loop1_81_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000806static asdl_seq *_loop0_82_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300807static asdl_seq *_loop1_83_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800808static asdl_seq *_loop1_84_rule(Parser *p);
809static void *_tmp_85_rule(Parser *p);
810static asdl_seq *_loop1_86_rule(Parser *p);
811static asdl_seq *_loop0_88_rule(Parser *p);
812static asdl_seq *_gather_87_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100813static asdl_seq *_loop1_89_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800814static asdl_seq *_loop0_90_rule(Parser *p);
815static asdl_seq *_loop0_91_rule(Parser *p);
816static asdl_seq *_loop0_92_rule(Parser *p);
817static asdl_seq *_loop1_93_rule(Parser *p);
818static asdl_seq *_loop0_94_rule(Parser *p);
819static asdl_seq *_loop1_95_rule(Parser *p);
820static asdl_seq *_loop1_96_rule(Parser *p);
821static asdl_seq *_loop1_97_rule(Parser *p);
822static asdl_seq *_loop0_98_rule(Parser *p);
823static asdl_seq *_loop1_99_rule(Parser *p);
824static asdl_seq *_loop0_100_rule(Parser *p);
825static asdl_seq *_loop1_101_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000826static asdl_seq *_loop0_102_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000827static asdl_seq *_loop1_103_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800828static asdl_seq *_loop1_104_rule(Parser *p);
829static asdl_seq *_loop1_105_rule(Parser *p);
830static asdl_seq *_loop1_106_rule(Parser *p);
831static void *_tmp_107_rule(Parser *p);
832static asdl_seq *_loop0_109_rule(Parser *p);
833static asdl_seq *_gather_108_rule(Parser *p);
834static void *_tmp_110_rule(Parser *p);
835static void *_tmp_111_rule(Parser *p);
836static void *_tmp_112_rule(Parser *p);
837static void *_tmp_113_rule(Parser *p);
838static asdl_seq *_loop1_114_rule(Parser *p);
839static void *_tmp_115_rule(Parser *p);
840static void *_tmp_116_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700841static void *_tmp_117_rule(Parser *p);
842static asdl_seq *_loop0_119_rule(Parser *p);
843static asdl_seq *_gather_118_rule(Parser *p);
844static asdl_seq *_loop1_120_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800845static asdl_seq *_loop0_121_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700846static asdl_seq *_loop0_122_rule(Parser *p);
847static asdl_seq *_loop0_124_rule(Parser *p);
848static asdl_seq *_gather_123_rule(Parser *p);
849static void *_tmp_125_rule(Parser *p);
850static asdl_seq *_loop0_127_rule(Parser *p);
851static asdl_seq *_gather_126_rule(Parser *p);
852static asdl_seq *_loop0_129_rule(Parser *p);
853static asdl_seq *_gather_128_rule(Parser *p);
854static asdl_seq *_loop0_131_rule(Parser *p);
855static asdl_seq *_gather_130_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000856static asdl_seq *_loop0_133_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700857static asdl_seq *_gather_132_rule(Parser *p);
858static asdl_seq *_loop0_134_rule(Parser *p);
859static asdl_seq *_loop0_136_rule(Parser *p);
860static asdl_seq *_gather_135_rule(Parser *p);
861static asdl_seq *_loop1_137_rule(Parser *p);
862static void *_tmp_138_rule(Parser *p);
863static asdl_seq *_loop0_140_rule(Parser *p);
864static asdl_seq *_gather_139_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700865static void *_tmp_141_rule(Parser *p);
866static void *_tmp_142_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100867static void *_tmp_143_rule(Parser *p);
868static void *_tmp_144_rule(Parser *p);
869static void *_tmp_145_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100870static void *_tmp_146_rule(Parser *p);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100871static void *_tmp_147_rule(Parser *p);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +0000872static void *_tmp_148_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100873static asdl_seq *_loop0_149_rule(Parser *p);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100874static asdl_seq *_loop0_150_rule(Parser *p);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +0000875static asdl_seq *_loop0_151_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100876static void *_tmp_152_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100877static void *_tmp_153_rule(Parser *p);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100878static void *_tmp_154_rule(Parser *p);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +0000879static void *_tmp_155_rule(Parser *p);
880static asdl_seq *_loop0_156_rule(Parser *p);
881static asdl_seq *_loop1_157_rule(Parser *p);
882static asdl_seq *_loop0_158_rule(Parser *p);
883static asdl_seq *_loop1_159_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100884static void *_tmp_160_rule(Parser *p);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100885static void *_tmp_161_rule(Parser *p);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +0000886static void *_tmp_162_rule(Parser *p);
887static asdl_seq *_loop0_164_rule(Parser *p);
888static asdl_seq *_gather_163_rule(Parser *p);
889static asdl_seq *_loop0_166_rule(Parser *p);
890static asdl_seq *_gather_165_rule(Parser *p);
891static asdl_seq *_loop0_168_rule(Parser *p);
892static asdl_seq *_gather_167_rule(Parser *p);
893static asdl_seq *_loop0_170_rule(Parser *p);
894static asdl_seq *_gather_169_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800895static void *_tmp_171_rule(Parser *p);
896static void *_tmp_172_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100897static void *_tmp_173_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700898static void *_tmp_174_rule(Parser *p);
Miss Islington (bot)11f1a302021-06-24 08:34:28 -0700899static void *_tmp_175_rule(Parser *p);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100900static void *_tmp_176_rule(Parser *p);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +0000901static void *_tmp_177_rule(Parser *p);
902static asdl_seq *_loop0_179_rule(Parser *p);
903static asdl_seq *_gather_178_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800904static void *_tmp_180_rule(Parser *p);
905static void *_tmp_181_rule(Parser *p);
906static void *_tmp_182_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100907static void *_tmp_183_rule(Parser *p);
908static void *_tmp_184_rule(Parser *p);
909static void *_tmp_185_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100910static void *_tmp_186_rule(Parser *p);
911static void *_tmp_187_rule(Parser *p);
912static void *_tmp_188_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100913static void *_tmp_189_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100914static void *_tmp_190_rule(Parser *p);
915static void *_tmp_191_rule(Parser *p);
916static void *_tmp_192_rule(Parser *p);
917static void *_tmp_193_rule(Parser *p);
918static void *_tmp_194_rule(Parser *p);
919static void *_tmp_195_rule(Parser *p);
920static void *_tmp_196_rule(Parser *p);
921static void *_tmp_197_rule(Parser *p);
922static void *_tmp_198_rule(Parser *p);
923static void *_tmp_199_rule(Parser *p);
924static void *_tmp_200_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100925static void *_tmp_201_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700926static void *_tmp_202_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700927static void *_tmp_203_rule(Parser *p);
Miss Islington (bot)11f1a302021-06-24 08:34:28 -0700928static void *_tmp_204_rule(Parser *p);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100929static void *_tmp_205_rule(Parser *p);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +0000930static void *_tmp_206_rule(Parser *p);
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000931
932
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100933// file: statements? $
934static mod_ty
935file_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000936{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +0000937 if (p->level++ == MAXSTACK) {
938 p->error_indicator = 1;
939 PyErr_NoMemory();
940 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100941 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +0000942 p->level--;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000943 return NULL;
944 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100945 mod_ty _res = NULL;
946 int _mark = p->mark;
947 { // statements? $
948 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +0000949 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100950 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000951 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100952 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
953 void *a;
954 Token * endmarker_var;
955 if (
Łukasz Langa5c9cab52021-10-19 22:31:18 +0200956 (a = statements_rule(p), !p->error_indicator) // statements?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100957 &&
958 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
959 )
960 {
961 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
962 _res = _PyPegen_make_module ( p , a );
963 if (_res == NULL && PyErr_Occurred()) {
964 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +0000965 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100966 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000967 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100968 goto done;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000969 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100970 p->mark = _mark;
971 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
972 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000973 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100974 _res = NULL;
975 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +0000976 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100977 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000978}
979
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100980// interactive: statement_newline
981static mod_ty
982interactive_rule(Parser *p)
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000983{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +0000984 if (p->level++ == MAXSTACK) {
985 p->error_indicator = 1;
986 PyErr_NoMemory();
987 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100988 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +0000989 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100990 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000991 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100992 mod_ty _res = NULL;
993 int _mark = p->mark;
994 { // statement_newline
995 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +0000996 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100997 return NULL;
998 }
999 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001000 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001001 if (
1002 (a = statement_newline_rule(p)) // statement_newline
1003 )
1004 {
1005 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001006 _res = _PyAST_Interactive ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001007 if (_res == NULL && PyErr_Occurred()) {
1008 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001009 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001010 return NULL;
1011 }
1012 goto done;
1013 }
1014 p->mark = _mark;
1015 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
1016 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
1017 }
1018 _res = NULL;
1019 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001020 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001021 return _res;
Guido van Rossumb09f7ed2001-07-15 21:08:29 +00001022}
1023
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001024// eval: expressions NEWLINE* $
1025static mod_ty
1026eval_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00001027{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001028 if (p->level++ == MAXSTACK) {
1029 p->error_indicator = 1;
1030 PyErr_NoMemory();
1031 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001032 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001033 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001034 return NULL;
1035 }
1036 mod_ty _res = NULL;
1037 int _mark = p->mark;
1038 { // expressions NEWLINE* $
1039 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001040 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001041 return NULL;
1042 }
1043 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
1044 asdl_seq * _loop0_1_var;
1045 expr_ty a;
1046 Token * endmarker_var;
1047 if (
1048 (a = expressions_rule(p)) // expressions
1049 &&
1050 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
1051 &&
1052 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1053 )
1054 {
1055 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001056 _res = _PyAST_Expression ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001057 if (_res == NULL && PyErr_Occurred()) {
1058 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001059 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001060 return NULL;
1061 }
1062 goto done;
1063 }
1064 p->mark = _mark;
1065 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
1066 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
1067 }
1068 _res = NULL;
1069 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001070 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001071 return _res;
1072}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001073
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001074// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
1075static mod_ty
1076func_type_rule(Parser *p)
1077{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001078 if (p->level++ == MAXSTACK) {
1079 p->error_indicator = 1;
1080 PyErr_NoMemory();
1081 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001082 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001083 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001084 return NULL;
1085 }
1086 mod_ty _res = NULL;
1087 int _mark = p->mark;
1088 { // '(' type_expressions? ')' '->' expression NEWLINE* $
1089 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001090 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001091 return NULL;
1092 }
1093 D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1094 Token * _literal;
1095 Token * _literal_1;
1096 Token * _literal_2;
1097 asdl_seq * _loop0_2_var;
1098 void *a;
1099 expr_ty b;
1100 Token * endmarker_var;
1101 if (
1102 (_literal = _PyPegen_expect_token(p, 7)) // token='('
1103 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02001104 (a = type_expressions_rule(p), !p->error_indicator) // type_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001105 &&
1106 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
1107 &&
1108 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
1109 &&
1110 (b = expression_rule(p)) // expression
1111 &&
1112 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
1113 &&
1114 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1115 )
1116 {
1117 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 +02001118 _res = _PyAST_FunctionType ( a , b , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001119 if (_res == NULL && PyErr_Occurred()) {
1120 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001121 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001122 return NULL;
1123 }
1124 goto done;
1125 }
1126 p->mark = _mark;
1127 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
1128 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1129 }
1130 _res = NULL;
1131 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001132 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001133 return _res;
1134}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001135
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001136// fstring: star_expressions
1137static expr_ty
1138fstring_rule(Parser *p)
1139{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001140 if (p->level++ == MAXSTACK) {
1141 p->error_indicator = 1;
1142 PyErr_NoMemory();
1143 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001144 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001145 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001146 return NULL;
1147 }
1148 expr_ty _res = NULL;
1149 int _mark = p->mark;
1150 { // star_expressions
1151 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001152 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001153 return NULL;
1154 }
1155 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1156 expr_ty star_expressions_var;
1157 if (
1158 (star_expressions_var = star_expressions_rule(p)) // star_expressions
1159 )
1160 {
1161 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1162 _res = star_expressions_var;
1163 goto done;
1164 }
1165 p->mark = _mark;
1166 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
1167 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1168 }
1169 _res = NULL;
1170 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001171 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001172 return _res;
1173}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001174
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001175// type_expressions:
1176// | ','.expression+ ',' '*' expression ',' '**' expression
1177// | ','.expression+ ',' '*' expression
1178// | ','.expression+ ',' '**' expression
1179// | '*' expression ',' '**' expression
1180// | '*' expression
1181// | '**' expression
1182// | ','.expression+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001183static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001184type_expressions_rule(Parser *p)
1185{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001186 if (p->level++ == MAXSTACK) {
1187 p->error_indicator = 1;
1188 PyErr_NoMemory();
1189 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001190 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001191 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001192 return NULL;
1193 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001194 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001195 int _mark = p->mark;
1196 { // ','.expression+ ',' '*' expression ',' '**' expression
1197 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001198 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001199 return NULL;
1200 }
1201 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1202 Token * _literal;
1203 Token * _literal_1;
1204 Token * _literal_2;
1205 Token * _literal_3;
1206 asdl_seq * a;
1207 expr_ty b;
1208 expr_ty c;
1209 if (
1210 (a = _gather_3_rule(p)) // ','.expression+
1211 &&
1212 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1213 &&
1214 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1215 &&
1216 (b = expression_rule(p)) // expression
1217 &&
1218 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
1219 &&
1220 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
1221 &&
1222 (c = expression_rule(p)) // expression
1223 )
1224 {
1225 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 +03001226 _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 +01001227 if (_res == NULL && PyErr_Occurred()) {
1228 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001229 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001230 return NULL;
1231 }
1232 goto done;
1233 }
1234 p->mark = _mark;
1235 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1236 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1237 }
1238 { // ','.expression+ ',' '*' expression
1239 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001240 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001241 return NULL;
1242 }
1243 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
1244 Token * _literal;
1245 Token * _literal_1;
1246 asdl_seq * a;
1247 expr_ty b;
1248 if (
1249 (a = _gather_5_rule(p)) // ','.expression+
1250 &&
1251 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1252 &&
1253 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1254 &&
1255 (b = expression_rule(p)) // expression
1256 )
1257 {
1258 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 +01001259 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001260 if (_res == NULL && PyErr_Occurred()) {
1261 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001262 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001263 return NULL;
1264 }
1265 goto done;
1266 }
1267 p->mark = _mark;
1268 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1269 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
1270 }
1271 { // ','.expression+ ',' '**' expression
1272 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001273 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001274 return NULL;
1275 }
1276 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
1277 Token * _literal;
1278 Token * _literal_1;
1279 asdl_seq * a;
1280 expr_ty b;
1281 if (
1282 (a = _gather_7_rule(p)) // ','.expression+
1283 &&
1284 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1285 &&
1286 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
1287 &&
1288 (b = expression_rule(p)) // expression
1289 )
1290 {
1291 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 +01001292 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001293 if (_res == NULL && PyErr_Occurred()) {
1294 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001295 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001296 return NULL;
1297 }
1298 goto done;
1299 }
1300 p->mark = _mark;
1301 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1302 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
1303 }
1304 { // '*' expression ',' '**' expression
1305 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001306 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001307 return NULL;
1308 }
1309 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
1310 Token * _literal;
1311 Token * _literal_1;
1312 Token * _literal_2;
1313 expr_ty a;
1314 expr_ty b;
1315 if (
1316 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1317 &&
1318 (a = expression_rule(p)) // expression
1319 &&
1320 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
1321 &&
1322 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
1323 &&
1324 (b = expression_rule(p)) // expression
1325 )
1326 {
1327 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 +03001328 _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 +01001329 if (_res == NULL && PyErr_Occurred()) {
1330 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001331 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001332 return NULL;
1333 }
1334 goto done;
1335 }
1336 p->mark = _mark;
1337 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1338 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
1339 }
1340 { // '*' expression
1341 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001342 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001343 return NULL;
1344 }
1345 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
1346 Token * _literal;
1347 expr_ty a;
1348 if (
1349 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1350 &&
1351 (a = expression_rule(p)) // expression
1352 )
1353 {
1354 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001355 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001356 if (_res == NULL && PyErr_Occurred()) {
1357 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001358 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001359 return NULL;
1360 }
1361 goto done;
1362 }
1363 p->mark = _mark;
1364 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
1366 }
1367 { // '**' expression
1368 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001369 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001370 return NULL;
1371 }
1372 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
1373 Token * _literal;
1374 expr_ty a;
1375 if (
1376 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
1377 &&
1378 (a = expression_rule(p)) // expression
1379 )
1380 {
1381 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001382 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001383 if (_res == NULL && PyErr_Occurred()) {
1384 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001385 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001386 return NULL;
1387 }
1388 goto done;
1389 }
1390 p->mark = _mark;
1391 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1392 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
1393 }
1394 { // ','.expression+
1395 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001396 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001397 return NULL;
1398 }
1399 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001400 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001401 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01001402 (a = (asdl_expr_seq*)_gather_9_rule(p)) // ','.expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001403 )
1404 {
1405 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001406 _res = a;
1407 if (_res == NULL && PyErr_Occurred()) {
1408 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001409 p->level--;
Pablo Galindoa5634c42020-09-16 19:42:00 +01001410 return NULL;
1411 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001412 goto done;
1413 }
1414 p->mark = _mark;
1415 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1416 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
1417 }
1418 _res = NULL;
1419 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001420 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001421 return _res;
1422}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001423
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001424// statements: statement+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001425static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001426statements_rule(Parser *p)
1427{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001428 if (p->level++ == MAXSTACK) {
1429 p->error_indicator = 1;
1430 PyErr_NoMemory();
1431 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001432 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001433 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001434 return NULL;
1435 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001436 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001437 int _mark = p->mark;
1438 { // statement+
1439 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001440 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001441 return NULL;
1442 }
1443 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
1444 asdl_seq * a;
1445 if (
1446 (a = _loop1_11_rule(p)) // statement+
1447 )
1448 {
1449 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001450 _res = ( asdl_stmt_seq * ) _PyPegen_seq_flatten ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001451 if (_res == NULL && PyErr_Occurred()) {
1452 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001453 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001454 return NULL;
1455 }
1456 goto done;
1457 }
1458 p->mark = _mark;
1459 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1460 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
1461 }
1462 _res = NULL;
1463 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001464 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001465 return _res;
1466}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001467
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001468// statement: compound_stmt | simple_stmts
Pablo Galindoa5634c42020-09-16 19:42:00 +01001469static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001470statement_rule(Parser *p)
1471{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001472 if (p->level++ == MAXSTACK) {
1473 p->error_indicator = 1;
1474 PyErr_NoMemory();
1475 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001476 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001477 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001478 return NULL;
1479 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001480 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001481 int _mark = p->mark;
1482 { // compound_stmt
1483 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001484 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001485 return NULL;
1486 }
1487 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
1488 stmt_ty a;
1489 if (
1490 (a = compound_stmt_rule(p)) // compound_stmt
1491 )
1492 {
1493 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001494 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001495 if (_res == NULL && PyErr_Occurred()) {
1496 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001497 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001498 return NULL;
1499 }
1500 goto done;
1501 }
1502 p->mark = _mark;
1503 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1504 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
1505 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001506 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001507 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001508 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001509 return NULL;
1510 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001511 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001512 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001513 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001514 (a = (asdl_stmt_seq*)simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001515 )
1516 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001517 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001518 _res = a;
1519 if (_res == NULL && PyErr_Occurred()) {
1520 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001521 p->level--;
Pablo Galindoa5634c42020-09-16 19:42:00 +01001522 return NULL;
1523 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001524 goto done;
1525 }
1526 p->mark = _mark;
1527 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001528 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001529 }
1530 _res = NULL;
1531 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001532 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001533 return _res;
1534}
1535
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001536// statement_newline: compound_stmt NEWLINE | simple_stmts | NEWLINE | $
Pablo Galindoa5634c42020-09-16 19:42:00 +01001537static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001538statement_newline_rule(Parser *p)
1539{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001540 if (p->level++ == MAXSTACK) {
1541 p->error_indicator = 1;
1542 PyErr_NoMemory();
1543 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001544 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001545 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001546 return NULL;
1547 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001548 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001549 int _mark = p->mark;
1550 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1551 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001552 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001553 return NULL;
1554 }
1555 int _start_lineno = p->tokens[_mark]->lineno;
1556 UNUSED(_start_lineno); // Only used by EXTRA macro
1557 int _start_col_offset = p->tokens[_mark]->col_offset;
1558 UNUSED(_start_col_offset); // Only used by EXTRA macro
1559 { // compound_stmt NEWLINE
1560 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001561 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001562 return NULL;
1563 }
1564 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
1565 stmt_ty a;
1566 Token * newline_var;
1567 if (
1568 (a = compound_stmt_rule(p)) // compound_stmt
1569 &&
1570 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1571 )
1572 {
1573 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 +01001574 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001575 if (_res == NULL && PyErr_Occurred()) {
1576 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001577 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001578 return NULL;
1579 }
1580 goto done;
1581 }
1582 p->mark = _mark;
1583 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
1585 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001586 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001587 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001588 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001589 return NULL;
1590 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001591 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1592 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001593 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001594 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001595 )
1596 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001597 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1598 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001599 goto done;
1600 }
1601 p->mark = _mark;
1602 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001604 }
1605 { // NEWLINE
1606 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001607 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001608 return NULL;
1609 }
1610 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1611 Token * newline_var;
1612 if (
1613 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1614 )
1615 {
1616 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1617 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1618 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001619 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001620 return NULL;
1621 }
1622 int _end_lineno = _token->end_lineno;
1623 UNUSED(_end_lineno); // Only used by EXTRA macro
1624 int _end_col_offset = _token->end_col_offset;
1625 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001626 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , CHECK ( stmt_ty , _PyAST_Pass ( EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001627 if (_res == NULL && PyErr_Occurred()) {
1628 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001629 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001630 return NULL;
1631 }
1632 goto done;
1633 }
1634 p->mark = _mark;
1635 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1636 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
1637 }
1638 { // $
1639 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001640 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001641 return NULL;
1642 }
1643 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
1644 Token * endmarker_var;
1645 if (
1646 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1647 )
1648 {
1649 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
1650 _res = _PyPegen_interactive_exit ( p );
1651 if (_res == NULL && PyErr_Occurred()) {
1652 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001653 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001654 return NULL;
1655 }
1656 goto done;
1657 }
1658 p->mark = _mark;
1659 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1660 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
1661 }
1662 _res = NULL;
1663 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001664 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001665 return _res;
1666}
1667
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001668// simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindoa5634c42020-09-16 19:42:00 +01001669static asdl_stmt_seq*
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001670simple_stmts_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001671{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001672 if (p->level++ == MAXSTACK) {
1673 p->error_indicator = 1;
1674 PyErr_NoMemory();
1675 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001676 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001677 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001678 return NULL;
1679 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001680 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001681 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001682 { // simple_stmt !';' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001683 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001684 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001685 return NULL;
1686 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001687 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 +01001688 stmt_ty a;
1689 Token * newline_var;
1690 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001691 (a = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001692 &&
1693 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
1694 &&
1695 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1696 )
1697 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001698 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 +01001699 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001700 if (_res == NULL && PyErr_Occurred()) {
1701 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001702 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001703 return NULL;
1704 }
1705 goto done;
1706 }
1707 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001708 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1709 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001710 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001711 { // ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001712 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001713 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001714 return NULL;
1715 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001716 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 +01001717 void *_opt_var;
1718 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01001719 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001720 Token * newline_var;
1721 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001722 (a = (asdl_stmt_seq*)_gather_12_rule(p)) // ';'.simple_stmt+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001723 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02001724 (_opt_var = _PyPegen_expect_token(p, 13), !p->error_indicator) // ';'?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001725 &&
1726 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1727 )
1728 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001729 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 +01001730 _res = a;
1731 if (_res == NULL && PyErr_Occurred()) {
1732 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001733 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001734 return NULL;
1735 }
1736 goto done;
1737 }
1738 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001739 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1740 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001741 }
1742 _res = NULL;
1743 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001744 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001745 return _res;
1746}
1747
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001748// simple_stmt:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001749// | assignment
1750// | star_expressions
1751// | &'return' return_stmt
1752// | &('import' | 'from') import_stmt
1753// | &'raise' raise_stmt
1754// | 'pass'
1755// | &'del' del_stmt
1756// | &'yield' yield_stmt
1757// | &'assert' assert_stmt
1758// | 'break'
1759// | 'continue'
1760// | &'global' global_stmt
1761// | &'nonlocal' nonlocal_stmt
1762static stmt_ty
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001763simple_stmt_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001764{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001765 if (p->level++ == MAXSTACK) {
1766 p->error_indicator = 1;
1767 PyErr_NoMemory();
1768 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001769 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001770 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001771 return NULL;
1772 }
1773 stmt_ty _res = NULL;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001774 if (_PyPegen_is_memoized(p, simple_stmt_type, &_res)) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001775 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001776 return _res;
1777 }
1778 int _mark = p->mark;
1779 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1780 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001781 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001782 return NULL;
1783 }
1784 int _start_lineno = p->tokens[_mark]->lineno;
1785 UNUSED(_start_lineno); // Only used by EXTRA macro
1786 int _start_col_offset = p->tokens[_mark]->col_offset;
1787 UNUSED(_start_col_offset); // Only used by EXTRA macro
1788 { // assignment
1789 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001790 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001791 return NULL;
1792 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001793 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001794 stmt_ty assignment_var;
1795 if (
1796 (assignment_var = assignment_rule(p)) // assignment
1797 )
1798 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001799 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001800 _res = assignment_var;
1801 goto done;
1802 }
1803 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001804 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001805 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
1806 }
1807 { // star_expressions
1808 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001809 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001810 return NULL;
1811 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001812 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001813 expr_ty e;
1814 if (
1815 (e = star_expressions_rule(p)) // star_expressions
1816 )
1817 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001818 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001819 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1820 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001821 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001822 return NULL;
1823 }
1824 int _end_lineno = _token->end_lineno;
1825 UNUSED(_end_lineno); // Only used by EXTRA macro
1826 int _end_col_offset = _token->end_col_offset;
1827 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001828 _res = _PyAST_Expr ( e , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001829 if (_res == NULL && PyErr_Occurred()) {
1830 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001831 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001832 return NULL;
1833 }
1834 goto done;
1835 }
1836 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001837 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001838 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1839 }
1840 { // &'return' return_stmt
1841 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001842 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001843 return NULL;
1844 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001845 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 +01001846 stmt_ty return_stmt_var;
1847 if (
1848 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
1849 &&
1850 (return_stmt_var = return_stmt_rule(p)) // return_stmt
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, "&'return' return_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001854 _res = return_stmt_var;
1855 goto done;
1856 }
1857 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001858 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001859 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
1860 }
1861 { // &('import' | 'from') import_stmt
1862 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001863 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001864 return NULL;
1865 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001866 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 +01001867 stmt_ty import_stmt_var;
1868 if (
1869 _PyPegen_lookahead(1, _tmp_14_rule, p)
1870 &&
1871 (import_stmt_var = import_stmt_rule(p)) // import_stmt
1872 )
1873 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001874 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 +01001875 _res = import_stmt_var;
1876 goto done;
1877 }
1878 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001879 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001880 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
1881 }
1882 { // &'raise' raise_stmt
1883 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001884 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001885 return NULL;
1886 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001887 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 +01001888 stmt_ty raise_stmt_var;
1889 if (
1890 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
1891 &&
1892 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
1893 )
1894 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001895 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 +01001896 _res = raise_stmt_var;
1897 goto done;
1898 }
1899 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001900 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001901 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
1902 }
1903 { // 'pass'
1904 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001905 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001906 return NULL;
1907 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001908 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001909 Token * _keyword;
1910 if (
1911 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
1912 )
1913 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001914 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001915 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1916 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001917 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001918 return NULL;
1919 }
1920 int _end_lineno = _token->end_lineno;
1921 UNUSED(_end_lineno); // Only used by EXTRA macro
1922 int _end_col_offset = _token->end_col_offset;
1923 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001924 _res = _PyAST_Pass ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001925 if (_res == NULL && PyErr_Occurred()) {
1926 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001927 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001928 return NULL;
1929 }
1930 goto done;
1931 }
1932 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001933 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
1935 }
1936 { // &'del' del_stmt
1937 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001938 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001939 return NULL;
1940 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001941 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 +01001942 stmt_ty del_stmt_var;
1943 if (
1944 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
1945 &&
1946 (del_stmt_var = del_stmt_rule(p)) // del_stmt
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, "&'del' del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001950 _res = del_stmt_var;
1951 goto done;
1952 }
1953 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001954 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
1956 }
1957 { // &'yield' yield_stmt
1958 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001959 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001960 return NULL;
1961 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001962 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 +01001963 stmt_ty yield_stmt_var;
1964 if (
1965 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
1966 &&
1967 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
1968 )
1969 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001970 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 +01001971 _res = yield_stmt_var;
1972 goto done;
1973 }
1974 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001975 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001976 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
1977 }
1978 { // &'assert' assert_stmt
1979 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00001980 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001981 return NULL;
1982 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001983 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 +01001984 stmt_ty assert_stmt_var;
1985 if (
1986 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
1987 &&
1988 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
1989 )
1990 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001991 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 +01001992 _res = assert_stmt_var;
1993 goto done;
1994 }
1995 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001996 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
1998 }
1999 { // 'break'
2000 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002001 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002002 return NULL;
2003 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002004 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002005 Token * _keyword;
2006 if (
2007 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
2008 )
2009 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002010 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002011 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2012 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002013 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002014 return NULL;
2015 }
2016 int _end_lineno = _token->end_lineno;
2017 UNUSED(_end_lineno); // Only used by EXTRA macro
2018 int _end_col_offset = _token->end_col_offset;
2019 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002020 _res = _PyAST_Break ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002021 if (_res == NULL && PyErr_Occurred()) {
2022 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002023 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002024 return NULL;
2025 }
2026 goto done;
2027 }
2028 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002029 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002030 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
2031 }
2032 { // 'continue'
2033 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002034 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002035 return NULL;
2036 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002037 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002038 Token * _keyword;
2039 if (
2040 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
2041 )
2042 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002043 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002044 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2045 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002046 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002047 return NULL;
2048 }
2049 int _end_lineno = _token->end_lineno;
2050 UNUSED(_end_lineno); // Only used by EXTRA macro
2051 int _end_col_offset = _token->end_col_offset;
2052 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002053 _res = _PyAST_Continue ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002054 if (_res == NULL && PyErr_Occurred()) {
2055 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002056 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002057 return NULL;
2058 }
2059 goto done;
2060 }
2061 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002062 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
2064 }
2065 { // &'global' global_stmt
2066 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002067 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002068 return NULL;
2069 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002070 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 +01002071 stmt_ty global_stmt_var;
2072 if (
2073 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
2074 &&
2075 (global_stmt_var = global_stmt_rule(p)) // global_stmt
2076 )
2077 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002078 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 +01002079 _res = global_stmt_var;
2080 goto done;
2081 }
2082 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002083 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
2085 }
2086 { // &'nonlocal' nonlocal_stmt
2087 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002088 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002089 return NULL;
2090 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002091 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 +01002092 stmt_ty nonlocal_stmt_var;
2093 if (
2094 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
2095 &&
2096 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
2097 )
2098 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002099 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 +01002100 _res = nonlocal_stmt_var;
2101 goto done;
2102 }
2103 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002104 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
2106 }
2107 _res = NULL;
2108 done:
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002109 _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002110 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002111 return _res;
2112}
2113
2114// compound_stmt:
2115// | &('def' | '@' | ASYNC) function_def
2116// | &'if' if_stmt
2117// | &('class' | '@') class_def
2118// | &('with' | ASYNC) with_stmt
2119// | &('for' | ASYNC) for_stmt
2120// | &'try' try_stmt
2121// | &'while' while_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08002122// | match_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002123static stmt_ty
2124compound_stmt_rule(Parser *p)
2125{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002126 if (p->level++ == MAXSTACK) {
2127 p->error_indicator = 1;
2128 PyErr_NoMemory();
2129 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002130 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002131 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002132 return NULL;
2133 }
2134 stmt_ty _res = NULL;
2135 int _mark = p->mark;
2136 { // &('def' | '@' | ASYNC) function_def
2137 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002138 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002139 return NULL;
2140 }
2141 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2142 stmt_ty function_def_var;
2143 if (
2144 _PyPegen_lookahead(1, _tmp_15_rule, p)
2145 &&
2146 (function_def_var = function_def_rule(p)) // function_def
2147 )
2148 {
2149 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2150 _res = function_def_var;
2151 goto done;
2152 }
2153 p->mark = _mark;
2154 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2155 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2156 }
2157 { // &'if' if_stmt
2158 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002159 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002160 return NULL;
2161 }
2162 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2163 stmt_ty if_stmt_var;
2164 if (
2165 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
2166 &&
2167 (if_stmt_var = if_stmt_rule(p)) // if_stmt
2168 )
2169 {
2170 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2171 _res = if_stmt_var;
2172 goto done;
2173 }
2174 p->mark = _mark;
2175 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2176 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
2177 }
2178 { // &('class' | '@') class_def
2179 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002180 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002181 return NULL;
2182 }
2183 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2184 stmt_ty class_def_var;
2185 if (
2186 _PyPegen_lookahead(1, _tmp_16_rule, p)
2187 &&
2188 (class_def_var = class_def_rule(p)) // class_def
2189 )
2190 {
2191 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2192 _res = class_def_var;
2193 goto done;
2194 }
2195 p->mark = _mark;
2196 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2197 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
2198 }
2199 { // &('with' | ASYNC) with_stmt
2200 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002201 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002202 return NULL;
2203 }
2204 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2205 stmt_ty with_stmt_var;
2206 if (
2207 _PyPegen_lookahead(1, _tmp_17_rule, p)
2208 &&
2209 (with_stmt_var = with_stmt_rule(p)) // with_stmt
2210 )
2211 {
2212 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2213 _res = with_stmt_var;
2214 goto done;
2215 }
2216 p->mark = _mark;
2217 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2219 }
2220 { // &('for' | ASYNC) for_stmt
2221 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002222 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002223 return NULL;
2224 }
2225 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2226 stmt_ty for_stmt_var;
2227 if (
2228 _PyPegen_lookahead(1, _tmp_18_rule, p)
2229 &&
2230 (for_stmt_var = for_stmt_rule(p)) // for_stmt
2231 )
2232 {
2233 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2234 _res = for_stmt_var;
2235 goto done;
2236 }
2237 p->mark = _mark;
2238 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2239 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2240 }
2241 { // &'try' try_stmt
2242 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002243 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002244 return NULL;
2245 }
2246 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2247 stmt_ty try_stmt_var;
2248 if (
2249 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
2250 &&
2251 (try_stmt_var = try_stmt_rule(p)) // try_stmt
2252 )
2253 {
2254 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2255 _res = try_stmt_var;
2256 goto done;
2257 }
2258 p->mark = _mark;
2259 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2260 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
2261 }
2262 { // &'while' while_stmt
2263 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002264 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002265 return NULL;
2266 }
2267 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2268 stmt_ty while_stmt_var;
2269 if (
2270 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
2271 &&
2272 (while_stmt_var = while_stmt_rule(p)) // while_stmt
2273 )
2274 {
2275 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2276 _res = while_stmt_var;
2277 goto done;
2278 }
2279 p->mark = _mark;
2280 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2281 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
2282 }
Brandt Bucher145bf262021-02-26 14:51:55 -08002283 { // match_stmt
2284 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002285 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08002286 return NULL;
2287 }
2288 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2289 stmt_ty match_stmt_var;
2290 if (
2291 (match_stmt_var = match_stmt_rule(p)) // match_stmt
2292 )
2293 {
2294 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2295 _res = match_stmt_var;
2296 goto done;
2297 }
2298 p->mark = _mark;
2299 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2300 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "match_stmt"));
2301 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002302 _res = NULL;
2303 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002304 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002305 return _res;
2306}
2307
2308// assignment:
2309// | NAME ':' expression ['=' annotated_rhs]
2310// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2311// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002312// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002313// | invalid_assignment
2314static stmt_ty
2315assignment_rule(Parser *p)
2316{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002317 if (p->level++ == MAXSTACK) {
2318 p->error_indicator = 1;
2319 PyErr_NoMemory();
2320 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002321 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002322 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002323 return NULL;
2324 }
2325 stmt_ty _res = NULL;
2326 int _mark = p->mark;
2327 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2328 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002329 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002330 return NULL;
2331 }
2332 int _start_lineno = p->tokens[_mark]->lineno;
2333 UNUSED(_start_lineno); // Only used by EXTRA macro
2334 int _start_col_offset = p->tokens[_mark]->col_offset;
2335 UNUSED(_start_col_offset); // Only used by EXTRA macro
2336 { // NAME ':' expression ['=' annotated_rhs]
2337 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002338 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002339 return NULL;
2340 }
2341 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2342 Token * _literal;
2343 expr_ty a;
2344 expr_ty b;
2345 void *c;
2346 if (
2347 (a = _PyPegen_name_token(p)) // NAME
2348 &&
2349 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2350 &&
2351 (b = expression_rule(p)) // expression
2352 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02002353 (c = _tmp_19_rule(p), !p->error_indicator) // ['=' annotated_rhs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002354 )
2355 {
2356 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2357 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2358 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002359 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002360 return NULL;
2361 }
2362 int _end_lineno = _token->end_lineno;
2363 UNUSED(_end_lineno); // Only used by EXTRA macro
2364 int _end_col_offset = _token->end_col_offset;
2365 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002366 _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 +01002367 if (_res == NULL && PyErr_Occurred()) {
2368 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002369 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002370 return NULL;
2371 }
2372 goto done;
2373 }
2374 p->mark = _mark;
2375 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2376 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2377 }
2378 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2379 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002380 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002381 return NULL;
2382 }
2383 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2384 Token * _literal;
2385 void *a;
2386 expr_ty b;
2387 void *c;
2388 if (
2389 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
2390 &&
2391 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2392 &&
2393 (b = expression_rule(p)) // expression
2394 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02002395 (c = _tmp_21_rule(p), !p->error_indicator) // ['=' annotated_rhs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002396 )
2397 {
2398 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2399 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2400 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002401 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002402 return NULL;
2403 }
2404 int _end_lineno = _token->end_lineno;
2405 UNUSED(_end_lineno); // Only used by EXTRA macro
2406 int _end_col_offset = _token->end_col_offset;
2407 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002408 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotations syntax is" , _PyAST_AnnAssign ( a , b , c , 0 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002409 if (_res == NULL && PyErr_Occurred()) {
2410 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002411 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002412 return NULL;
2413 }
2414 goto done;
2415 }
2416 p->mark = _mark;
2417 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2418 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2419 }
2420 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
2421 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002422 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002423 return NULL;
2424 }
2425 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 +01002426 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002427 void *b;
2428 void *tc;
2429 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01002430 (a = (asdl_expr_seq*)_loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002431 &&
2432 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
2433 &&
2434 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2435 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02002436 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002437 )
2438 {
2439 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2440 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2441 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002442 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002443 return NULL;
2444 }
2445 int _end_lineno = _token->end_lineno;
2446 UNUSED(_end_lineno); // Only used by EXTRA macro
2447 int _end_col_offset = _token->end_col_offset;
2448 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002449 _res = _PyAST_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002450 if (_res == NULL && PyErr_Occurred()) {
2451 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002452 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002453 return NULL;
2454 }
2455 goto done;
2456 }
2457 p->mark = _mark;
2458 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2459 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2460 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002461 { // single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002462 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002463 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002464 return NULL;
2465 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002466 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2467 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002468 expr_ty a;
2469 AugOperator* b;
2470 void *c;
2471 if (
2472 (a = single_target_rule(p)) // single_target
2473 &&
2474 (b = augassign_rule(p)) // augassign
2475 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002476 (_cut_var = 1)
2477 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002478 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
2479 )
2480 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002481 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 +01002482 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2483 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002484 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002485 return NULL;
2486 }
2487 int _end_lineno = _token->end_lineno;
2488 UNUSED(_end_lineno); // Only used by EXTRA macro
2489 int _end_col_offset = _token->end_col_offset;
2490 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002491 _res = _PyAST_AugAssign ( a , b -> kind , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002492 if (_res == NULL && PyErr_Occurred()) {
2493 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002494 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002495 return NULL;
2496 }
2497 goto done;
2498 }
2499 p->mark = _mark;
2500 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002501 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2502 if (_cut_var) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002503 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002504 return NULL;
2505 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002506 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002507 if (p->call_invalid_rules) { // invalid_assignment
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002508 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002509 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002510 return NULL;
2511 }
2512 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2513 void *invalid_assignment_var;
2514 if (
2515 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
2516 )
2517 {
2518 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2519 _res = invalid_assignment_var;
2520 goto done;
2521 }
2522 p->mark = _mark;
2523 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2524 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
2525 }
2526 _res = NULL;
2527 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002528 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002529 return _res;
2530}
2531
2532// augassign:
2533// | '+='
2534// | '-='
2535// | '*='
2536// | '@='
2537// | '/='
2538// | '%='
2539// | '&='
2540// | '|='
2541// | '^='
2542// | '<<='
2543// | '>>='
2544// | '**='
2545// | '//='
2546static AugOperator*
2547augassign_rule(Parser *p)
2548{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002549 if (p->level++ == MAXSTACK) {
2550 p->error_indicator = 1;
2551 PyErr_NoMemory();
2552 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002553 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002554 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002555 return NULL;
2556 }
2557 AugOperator* _res = NULL;
2558 int _mark = p->mark;
2559 { // '+='
2560 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002561 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002562 return NULL;
2563 }
2564 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
2565 Token * _literal;
2566 if (
2567 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
2568 )
2569 {
2570 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
2571 _res = _PyPegen_augoperator ( p , Add );
2572 if (_res == NULL && PyErr_Occurred()) {
2573 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002574 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002575 return NULL;
2576 }
2577 goto done;
2578 }
2579 p->mark = _mark;
2580 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2581 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
2582 }
2583 { // '-='
2584 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002585 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002586 return NULL;
2587 }
2588 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
2589 Token * _literal;
2590 if (
2591 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
2592 )
2593 {
2594 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
2595 _res = _PyPegen_augoperator ( p , Sub );
2596 if (_res == NULL && PyErr_Occurred()) {
2597 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002598 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002599 return NULL;
2600 }
2601 goto done;
2602 }
2603 p->mark = _mark;
2604 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
2606 }
2607 { // '*='
2608 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002609 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002610 return NULL;
2611 }
2612 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
2613 Token * _literal;
2614 if (
2615 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
2616 )
2617 {
2618 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
2619 _res = _PyPegen_augoperator ( p , Mult );
2620 if (_res == NULL && PyErr_Occurred()) {
2621 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002622 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002623 return NULL;
2624 }
2625 goto done;
2626 }
2627 p->mark = _mark;
2628 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2629 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
2630 }
2631 { // '@='
2632 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002633 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002634 return NULL;
2635 }
2636 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
2637 Token * _literal;
2638 if (
2639 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
2640 )
2641 {
2642 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002643 _res = CHECK_VERSION ( AugOperator * , 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002644 if (_res == NULL && PyErr_Occurred()) {
2645 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002646 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002647 return NULL;
2648 }
2649 goto done;
2650 }
2651 p->mark = _mark;
2652 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2653 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
2654 }
2655 { // '/='
2656 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002657 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002658 return NULL;
2659 }
2660 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
2661 Token * _literal;
2662 if (
2663 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
2664 )
2665 {
2666 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
2667 _res = _PyPegen_augoperator ( p , Div );
2668 if (_res == NULL && PyErr_Occurred()) {
2669 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002670 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002671 return NULL;
2672 }
2673 goto done;
2674 }
2675 p->mark = _mark;
2676 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
2678 }
2679 { // '%='
2680 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002681 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002682 return NULL;
2683 }
2684 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
2685 Token * _literal;
2686 if (
2687 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
2688 )
2689 {
2690 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
2691 _res = _PyPegen_augoperator ( p , Mod );
2692 if (_res == NULL && PyErr_Occurred()) {
2693 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002694 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002695 return NULL;
2696 }
2697 goto done;
2698 }
2699 p->mark = _mark;
2700 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2701 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
2702 }
2703 { // '&='
2704 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002705 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002706 return NULL;
2707 }
2708 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
2709 Token * _literal;
2710 if (
2711 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
2712 )
2713 {
2714 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
2715 _res = _PyPegen_augoperator ( p , BitAnd );
2716 if (_res == NULL && PyErr_Occurred()) {
2717 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002718 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002719 return NULL;
2720 }
2721 goto done;
2722 }
2723 p->mark = _mark;
2724 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2725 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
2726 }
2727 { // '|='
2728 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002729 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002730 return NULL;
2731 }
2732 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
2733 Token * _literal;
2734 if (
2735 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
2736 )
2737 {
2738 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
2739 _res = _PyPegen_augoperator ( p , BitOr );
2740 if (_res == NULL && PyErr_Occurred()) {
2741 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002742 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002743 return NULL;
2744 }
2745 goto done;
2746 }
2747 p->mark = _mark;
2748 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2749 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
2750 }
2751 { // '^='
2752 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002753 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002754 return NULL;
2755 }
2756 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
2757 Token * _literal;
2758 if (
2759 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
2760 )
2761 {
2762 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
2763 _res = _PyPegen_augoperator ( p , BitXor );
2764 if (_res == NULL && PyErr_Occurred()) {
2765 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002766 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002767 return NULL;
2768 }
2769 goto done;
2770 }
2771 p->mark = _mark;
2772 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2773 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
2774 }
2775 { // '<<='
2776 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002777 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002778 return NULL;
2779 }
2780 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
2781 Token * _literal;
2782 if (
2783 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
2784 )
2785 {
2786 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
2787 _res = _PyPegen_augoperator ( p , LShift );
2788 if (_res == NULL && PyErr_Occurred()) {
2789 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002790 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002791 return NULL;
2792 }
2793 goto done;
2794 }
2795 p->mark = _mark;
2796 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2797 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
2798 }
2799 { // '>>='
2800 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002801 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002802 return NULL;
2803 }
2804 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
2805 Token * _literal;
2806 if (
2807 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
2808 )
2809 {
2810 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
2811 _res = _PyPegen_augoperator ( p , RShift );
2812 if (_res == NULL && PyErr_Occurred()) {
2813 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002814 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002815 return NULL;
2816 }
2817 goto done;
2818 }
2819 p->mark = _mark;
2820 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
2822 }
2823 { // '**='
2824 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002825 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002826 return NULL;
2827 }
2828 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
2829 Token * _literal;
2830 if (
2831 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
2832 )
2833 {
2834 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
2835 _res = _PyPegen_augoperator ( p , Pow );
2836 if (_res == NULL && PyErr_Occurred()) {
2837 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002838 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002839 return NULL;
2840 }
2841 goto done;
2842 }
2843 p->mark = _mark;
2844 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2845 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
2846 }
2847 { // '//='
2848 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002849 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002850 return NULL;
2851 }
2852 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
2853 Token * _literal;
2854 if (
2855 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
2856 )
2857 {
2858 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
2859 _res = _PyPegen_augoperator ( p , FloorDiv );
2860 if (_res == NULL && PyErr_Occurred()) {
2861 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002862 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002863 return NULL;
2864 }
2865 goto done;
2866 }
2867 p->mark = _mark;
2868 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2869 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
2870 }
2871 _res = NULL;
2872 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002873 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002874 return _res;
2875}
2876
2877// global_stmt: 'global' ','.NAME+
2878static stmt_ty
2879global_stmt_rule(Parser *p)
2880{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002881 if (p->level++ == MAXSTACK) {
2882 p->error_indicator = 1;
2883 PyErr_NoMemory();
2884 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002885 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002886 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002887 return NULL;
2888 }
2889 stmt_ty _res = NULL;
2890 int _mark = p->mark;
2891 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2892 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002893 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002894 return NULL;
2895 }
2896 int _start_lineno = p->tokens[_mark]->lineno;
2897 UNUSED(_start_lineno); // Only used by EXTRA macro
2898 int _start_col_offset = p->tokens[_mark]->col_offset;
2899 UNUSED(_start_col_offset); // Only used by EXTRA macro
2900 { // 'global' ','.NAME+
2901 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002902 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002903 return NULL;
2904 }
2905 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2906 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002907 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002908 if (
2909 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
2910 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002911 (a = (asdl_expr_seq*)_gather_25_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002912 )
2913 {
2914 D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2915 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2916 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002917 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002918 return NULL;
2919 }
2920 int _end_lineno = _token->end_lineno;
2921 UNUSED(_end_lineno); // Only used by EXTRA macro
2922 int _end_col_offset = _token->end_col_offset;
2923 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002924 _res = _PyAST_Global ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002925 if (_res == NULL && PyErr_Occurred()) {
2926 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002927 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002928 return NULL;
2929 }
2930 goto done;
2931 }
2932 p->mark = _mark;
2933 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
2935 }
2936 _res = NULL;
2937 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002938 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002939 return _res;
2940}
2941
2942// nonlocal_stmt: 'nonlocal' ','.NAME+
2943static stmt_ty
2944nonlocal_stmt_rule(Parser *p)
2945{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002946 if (p->level++ == MAXSTACK) {
2947 p->error_indicator = 1;
2948 PyErr_NoMemory();
2949 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002950 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002951 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002952 return NULL;
2953 }
2954 stmt_ty _res = NULL;
2955 int _mark = p->mark;
2956 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2957 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002958 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002959 return NULL;
2960 }
2961 int _start_lineno = p->tokens[_mark]->lineno;
2962 UNUSED(_start_lineno); // Only used by EXTRA macro
2963 int _start_col_offset = p->tokens[_mark]->col_offset;
2964 UNUSED(_start_col_offset); // Only used by EXTRA macro
2965 { // 'nonlocal' ','.NAME+
2966 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002967 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002968 return NULL;
2969 }
2970 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2971 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002972 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002973 if (
2974 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
2975 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002976 (a = (asdl_expr_seq*)_gather_27_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002977 )
2978 {
2979 D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2980 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2981 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002982 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002983 return NULL;
2984 }
2985 int _end_lineno = _token->end_lineno;
2986 UNUSED(_end_lineno); // Only used by EXTRA macro
2987 int _end_col_offset = _token->end_col_offset;
2988 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002989 _res = _PyAST_Nonlocal ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002990 if (_res == NULL && PyErr_Occurred()) {
2991 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00002992 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002993 return NULL;
2994 }
2995 goto done;
2996 }
2997 p->mark = _mark;
2998 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2999 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
3000 }
3001 _res = NULL;
3002 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003003 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003004 return _res;
3005}
3006
3007// yield_stmt: yield_expr
3008static stmt_ty
3009yield_stmt_rule(Parser *p)
3010{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003011 if (p->level++ == MAXSTACK) {
3012 p->error_indicator = 1;
3013 PyErr_NoMemory();
3014 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003015 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003016 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003017 return NULL;
3018 }
3019 stmt_ty _res = NULL;
3020 int _mark = p->mark;
3021 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3022 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003023 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003024 return NULL;
3025 }
3026 int _start_lineno = p->tokens[_mark]->lineno;
3027 UNUSED(_start_lineno); // Only used by EXTRA macro
3028 int _start_col_offset = p->tokens[_mark]->col_offset;
3029 UNUSED(_start_col_offset); // Only used by EXTRA macro
3030 { // yield_expr
3031 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003032 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003033 return NULL;
3034 }
3035 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
3036 expr_ty y;
3037 if (
3038 (y = yield_expr_rule(p)) // yield_expr
3039 )
3040 {
3041 D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
3042 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3043 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003044 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003045 return NULL;
3046 }
3047 int _end_lineno = _token->end_lineno;
3048 UNUSED(_end_lineno); // Only used by EXTRA macro
3049 int _end_col_offset = _token->end_col_offset;
3050 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003051 _res = _PyAST_Expr ( y , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003052 if (_res == NULL && PyErr_Occurred()) {
3053 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003054 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003055 return NULL;
3056 }
3057 goto done;
3058 }
3059 p->mark = _mark;
3060 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3061 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
3062 }
3063 _res = NULL;
3064 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003065 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003066 return _res;
3067}
3068
3069// assert_stmt: 'assert' expression [',' expression]
3070static stmt_ty
3071assert_stmt_rule(Parser *p)
3072{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003073 if (p->level++ == MAXSTACK) {
3074 p->error_indicator = 1;
3075 PyErr_NoMemory();
3076 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003077 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003078 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003079 return NULL;
3080 }
3081 stmt_ty _res = NULL;
3082 int _mark = p->mark;
3083 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3084 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003085 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003086 return NULL;
3087 }
3088 int _start_lineno = p->tokens[_mark]->lineno;
3089 UNUSED(_start_lineno); // Only used by EXTRA macro
3090 int _start_col_offset = p->tokens[_mark]->col_offset;
3091 UNUSED(_start_col_offset); // Only used by EXTRA macro
3092 { // 'assert' expression [',' expression]
3093 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003094 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003095 return NULL;
3096 }
3097 D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3098 Token * _keyword;
3099 expr_ty a;
3100 void *b;
3101 if (
3102 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
3103 &&
3104 (a = expression_rule(p)) // expression
3105 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02003106 (b = _tmp_29_rule(p), !p->error_indicator) // [',' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003107 )
3108 {
3109 D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3110 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3111 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003112 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003113 return NULL;
3114 }
3115 int _end_lineno = _token->end_lineno;
3116 UNUSED(_end_lineno); // Only used by EXTRA macro
3117 int _end_col_offset = _token->end_col_offset;
3118 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003119 _res = _PyAST_Assert ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003120 if (_res == NULL && PyErr_Occurred()) {
3121 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003122 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003123 return NULL;
3124 }
3125 goto done;
3126 }
3127 p->mark = _mark;
3128 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3129 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
3130 }
3131 _res = NULL;
3132 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003133 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003134 return _res;
3135}
3136
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003137// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003138static stmt_ty
3139del_stmt_rule(Parser *p)
3140{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003141 if (p->level++ == MAXSTACK) {
3142 p->error_indicator = 1;
3143 PyErr_NoMemory();
3144 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003145 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003146 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003147 return NULL;
3148 }
3149 stmt_ty _res = NULL;
3150 int _mark = p->mark;
3151 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3152 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003153 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003154 return NULL;
3155 }
3156 int _start_lineno = p->tokens[_mark]->lineno;
3157 UNUSED(_start_lineno); // Only used by EXTRA macro
3158 int _start_col_offset = p->tokens[_mark]->col_offset;
3159 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003160 { // 'del' del_targets &(';' | NEWLINE)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003161 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003162 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003163 return NULL;
3164 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003165 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 +01003166 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003167 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003168 if (
3169 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
3170 &&
3171 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003172 &&
3173 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003174 )
3175 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003176 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 +01003177 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3178 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003179 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003180 return NULL;
3181 }
3182 int _end_lineno = _token->end_lineno;
3183 UNUSED(_end_lineno); // Only used by EXTRA macro
3184 int _end_col_offset = _token->end_col_offset;
3185 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003186 _res = _PyAST_Delete ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003187 if (_res == NULL && PyErr_Occurred()) {
3188 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003189 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003190 return NULL;
3191 }
3192 goto done;
3193 }
3194 p->mark = _mark;
3195 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003196 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
3197 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003198 if (p->call_invalid_rules) { // invalid_del_stmt
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003199 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003200 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003201 return NULL;
3202 }
3203 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3204 void *invalid_del_stmt_var;
3205 if (
3206 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
3207 )
3208 {
3209 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3210 _res = invalid_del_stmt_var;
3211 goto done;
3212 }
3213 p->mark = _mark;
3214 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3215 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003216 }
3217 _res = NULL;
3218 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003219 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003220 return _res;
3221}
3222
3223// import_stmt: import_name | import_from
3224static stmt_ty
3225import_stmt_rule(Parser *p)
3226{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003227 if (p->level++ == MAXSTACK) {
3228 p->error_indicator = 1;
3229 PyErr_NoMemory();
3230 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003231 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003232 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003233 return NULL;
3234 }
3235 stmt_ty _res = NULL;
3236 int _mark = p->mark;
3237 { // import_name
3238 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003239 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003240 return NULL;
3241 }
3242 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
3243 stmt_ty import_name_var;
3244 if (
3245 (import_name_var = import_name_rule(p)) // import_name
3246 )
3247 {
3248 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
3249 _res = import_name_var;
3250 goto done;
3251 }
3252 p->mark = _mark;
3253 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3254 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
3255 }
3256 { // import_from
3257 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003258 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003259 return NULL;
3260 }
3261 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
3262 stmt_ty import_from_var;
3263 if (
3264 (import_from_var = import_from_rule(p)) // import_from
3265 )
3266 {
3267 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
3268 _res = import_from_var;
3269 goto done;
3270 }
3271 p->mark = _mark;
3272 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3273 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
3274 }
3275 _res = NULL;
3276 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003277 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003278 return _res;
3279}
3280
3281// import_name: 'import' dotted_as_names
3282static stmt_ty
3283import_name_rule(Parser *p)
3284{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003285 if (p->level++ == MAXSTACK) {
3286 p->error_indicator = 1;
3287 PyErr_NoMemory();
3288 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003289 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003290 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003291 return NULL;
3292 }
3293 stmt_ty _res = NULL;
3294 int _mark = p->mark;
3295 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3296 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003297 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003298 return NULL;
3299 }
3300 int _start_lineno = p->tokens[_mark]->lineno;
3301 UNUSED(_start_lineno); // Only used by EXTRA macro
3302 int _start_col_offset = p->tokens[_mark]->col_offset;
3303 UNUSED(_start_col_offset); // Only used by EXTRA macro
3304 { // 'import' dotted_as_names
3305 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003306 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003307 return NULL;
3308 }
3309 D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3310 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003311 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003312 if (
3313 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
3314 &&
3315 (a = dotted_as_names_rule(p)) // dotted_as_names
3316 )
3317 {
3318 D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3319 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3320 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003321 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003322 return NULL;
3323 }
3324 int _end_lineno = _token->end_lineno;
3325 UNUSED(_end_lineno); // Only used by EXTRA macro
3326 int _end_col_offset = _token->end_col_offset;
3327 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003328 _res = _PyAST_Import ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003329 if (_res == NULL && PyErr_Occurred()) {
3330 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003331 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003332 return NULL;
3333 }
3334 goto done;
3335 }
3336 p->mark = _mark;
3337 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3338 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
3339 }
3340 _res = NULL;
3341 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003342 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003343 return _res;
3344}
3345
3346// import_from:
3347// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3348// | 'from' (('.' | '...'))+ 'import' import_from_targets
3349static stmt_ty
3350import_from_rule(Parser *p)
3351{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003352 if (p->level++ == MAXSTACK) {
3353 p->error_indicator = 1;
3354 PyErr_NoMemory();
3355 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003356 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003357 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003358 return NULL;
3359 }
3360 stmt_ty _res = NULL;
3361 int _mark = p->mark;
3362 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3363 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003364 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003365 return NULL;
3366 }
3367 int _start_lineno = p->tokens[_mark]->lineno;
3368 UNUSED(_start_lineno); // Only used by EXTRA macro
3369 int _start_col_offset = p->tokens[_mark]->col_offset;
3370 UNUSED(_start_col_offset); // Only used by EXTRA macro
3371 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3372 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003373 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003374 return NULL;
3375 }
3376 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3377 Token * _keyword;
3378 Token * _keyword_1;
3379 asdl_seq * a;
3380 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003381 asdl_alias_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003382 if (
3383 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3384 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003385 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003386 &&
3387 (b = dotted_name_rule(p)) // dotted_name
3388 &&
3389 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3390 &&
3391 (c = import_from_targets_rule(p)) // import_from_targets
3392 )
3393 {
3394 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3395 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3396 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003397 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003398 return NULL;
3399 }
3400 int _end_lineno = _token->end_lineno;
3401 UNUSED(_end_lineno); // Only used by EXTRA macro
3402 int _end_col_offset = _token->end_col_offset;
3403 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003404 _res = _PyAST_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003405 if (_res == NULL && PyErr_Occurred()) {
3406 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003407 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003408 return NULL;
3409 }
3410 goto done;
3411 }
3412 p->mark = _mark;
3413 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3415 }
3416 { // 'from' (('.' | '...'))+ 'import' import_from_targets
3417 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003418 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003419 return NULL;
3420 }
3421 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3422 Token * _keyword;
3423 Token * _keyword_1;
3424 asdl_seq * a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003425 asdl_alias_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003426 if (
3427 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3428 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003429 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003430 &&
3431 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3432 &&
3433 (b = import_from_targets_rule(p)) // import_from_targets
3434 )
3435 {
3436 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3437 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3438 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003439 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003440 return NULL;
3441 }
3442 int _end_lineno = _token->end_lineno;
3443 UNUSED(_end_lineno); // Only used by EXTRA macro
3444 int _end_col_offset = _token->end_col_offset;
3445 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003446 _res = _PyAST_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003447 if (_res == NULL && PyErr_Occurred()) {
3448 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003449 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003450 return NULL;
3451 }
3452 goto done;
3453 }
3454 p->mark = _mark;
3455 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3457 }
3458 _res = NULL;
3459 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003460 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003461 return _res;
3462}
3463
3464// import_from_targets:
3465// | '(' import_from_as_names ','? ')'
3466// | import_from_as_names !','
3467// | '*'
3468// | invalid_import_from_targets
Pablo Galindoa5634c42020-09-16 19:42:00 +01003469static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003470import_from_targets_rule(Parser *p)
3471{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003472 if (p->level++ == MAXSTACK) {
3473 p->error_indicator = 1;
3474 PyErr_NoMemory();
3475 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003476 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003477 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003478 return NULL;
3479 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003480 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003481 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003482 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3483 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003484 p->level--;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003485 return NULL;
3486 }
3487 int _start_lineno = p->tokens[_mark]->lineno;
3488 UNUSED(_start_lineno); // Only used by EXTRA macro
3489 int _start_col_offset = p->tokens[_mark]->col_offset;
3490 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003491 { // '(' import_from_as_names ','? ')'
3492 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003493 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003494 return NULL;
3495 }
3496 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3497 Token * _literal;
3498 Token * _literal_1;
3499 void *_opt_var;
3500 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01003501 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003502 if (
3503 (_literal = _PyPegen_expect_token(p, 7)) // token='('
3504 &&
3505 (a = import_from_as_names_rule(p)) // import_from_as_names
3506 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02003507 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003508 &&
3509 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
3510 )
3511 {
3512 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3513 _res = a;
3514 if (_res == NULL && PyErr_Occurred()) {
3515 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003516 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003517 return NULL;
3518 }
3519 goto done;
3520 }
3521 p->mark = _mark;
3522 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3523 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3524 }
3525 { // import_from_as_names !','
3526 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003527 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003528 return NULL;
3529 }
3530 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 +01003531 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003532 if (
3533 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
3534 &&
3535 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
3536 )
3537 {
3538 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
3539 _res = import_from_as_names_var;
3540 goto done;
3541 }
3542 p->mark = _mark;
3543 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
3545 }
3546 { // '*'
3547 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003548 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003549 return NULL;
3550 }
3551 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
3552 Token * _literal;
3553 if (
3554 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
3555 )
3556 {
3557 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003558 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3559 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003560 p->level--;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003561 return NULL;
3562 }
3563 int _end_lineno = _token->end_lineno;
3564 UNUSED(_end_lineno); // Only used by EXTRA macro
3565 int _end_col_offset = _token->end_col_offset;
3566 UNUSED(_end_col_offset); // Only used by EXTRA macro
3567 _res = ( asdl_alias_seq * ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p , EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003568 if (_res == NULL && PyErr_Occurred()) {
3569 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003570 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003571 return NULL;
3572 }
3573 goto done;
3574 }
3575 p->mark = _mark;
3576 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3577 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
3578 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003579 if (p->call_invalid_rules) { // invalid_import_from_targets
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003580 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003581 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003582 return NULL;
3583 }
3584 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3585 void *invalid_import_from_targets_var;
3586 if (
3587 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3588 )
3589 {
3590 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3591 _res = invalid_import_from_targets_var;
3592 goto done;
3593 }
3594 p->mark = _mark;
3595 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3596 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
3597 }
3598 _res = NULL;
3599 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003600 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003601 return _res;
3602}
3603
3604// import_from_as_names: ','.import_from_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003605static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003606import_from_as_names_rule(Parser *p)
3607{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003608 if (p->level++ == MAXSTACK) {
3609 p->error_indicator = 1;
3610 PyErr_NoMemory();
3611 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003612 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003613 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003614 return NULL;
3615 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003616 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003617 int _mark = p->mark;
3618 { // ','.import_from_as_name+
3619 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003620 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003621 return NULL;
3622 }
3623 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 +01003624 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003625 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003626 (a = (asdl_alias_seq*)_gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003627 )
3628 {
3629 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
3630 _res = a;
3631 if (_res == NULL && PyErr_Occurred()) {
3632 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003633 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003634 return NULL;
3635 }
3636 goto done;
3637 }
3638 p->mark = _mark;
3639 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3640 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
3641 }
3642 _res = NULL;
3643 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003644 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003645 return _res;
3646}
3647
3648// import_from_as_name: NAME ['as' NAME]
3649static alias_ty
3650import_from_as_name_rule(Parser *p)
3651{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003652 if (p->level++ == MAXSTACK) {
3653 p->error_indicator = 1;
3654 PyErr_NoMemory();
3655 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003656 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003657 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003658 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;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003664 p->level--;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003665 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 { // NAME ['as' NAME]
3672 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003673 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003674 return NULL;
3675 }
3676 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3677 expr_ty a;
3678 void *b;
3679 if (
3680 (a = _PyPegen_name_token(p)) // NAME
3681 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02003682 (b = _tmp_35_rule(p), !p->error_indicator) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003683 )
3684 {
3685 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 -04003686 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3687 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003688 p->level--;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003689 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;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003698 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003699 return NULL;
3700 }
3701 goto done;
3702 }
3703 p->mark = _mark;
3704 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3705 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
3706 }
3707 _res = NULL;
3708 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003709 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003710 return _res;
3711}
3712
3713// dotted_as_names: ','.dotted_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003714static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003715dotted_as_names_rule(Parser *p)
3716{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003717 if (p->level++ == MAXSTACK) {
3718 p->error_indicator = 1;
3719 PyErr_NoMemory();
3720 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003721 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003722 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003723 return NULL;
3724 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003725 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003726 int _mark = p->mark;
3727 { // ','.dotted_as_name+
3728 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003729 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003730 return NULL;
3731 }
3732 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 +01003733 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003734 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003735 (a = (asdl_alias_seq*)_gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003736 )
3737 {
3738 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
3739 _res = a;
3740 if (_res == NULL && PyErr_Occurred()) {
3741 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003742 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003743 return NULL;
3744 }
3745 goto done;
3746 }
3747 p->mark = _mark;
3748 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3749 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
3750 }
3751 _res = NULL;
3752 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003753 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003754 return _res;
3755}
3756
3757// dotted_as_name: dotted_name ['as' NAME]
3758static alias_ty
3759dotted_as_name_rule(Parser *p)
3760{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003761 if (p->level++ == MAXSTACK) {
3762 p->error_indicator = 1;
3763 PyErr_NoMemory();
3764 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003765 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003766 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003767 return NULL;
3768 }
3769 alias_ty _res = NULL;
3770 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003771 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3772 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003773 p->level--;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003774 return NULL;
3775 }
3776 int _start_lineno = p->tokens[_mark]->lineno;
3777 UNUSED(_start_lineno); // Only used by EXTRA macro
3778 int _start_col_offset = p->tokens[_mark]->col_offset;
3779 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003780 { // dotted_name ['as' NAME]
3781 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003782 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003783 return NULL;
3784 }
3785 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3786 expr_ty a;
3787 void *b;
3788 if (
3789 (a = dotted_name_rule(p)) // dotted_name
3790 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02003791 (b = _tmp_38_rule(p), !p->error_indicator) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003792 )
3793 {
3794 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 -04003795 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3796 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003797 p->level--;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003798 return NULL;
3799 }
3800 int _end_lineno = _token->end_lineno;
3801 UNUSED(_end_lineno); // Only used by EXTRA macro
3802 int _end_col_offset = _token->end_col_offset;
3803 UNUSED(_end_col_offset); // Only used by EXTRA macro
3804 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003805 if (_res == NULL && PyErr_Occurred()) {
3806 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003807 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003808 return NULL;
3809 }
3810 goto done;
3811 }
3812 p->mark = _mark;
3813 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3814 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
3815 }
3816 _res = NULL;
3817 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003818 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003819 return _res;
3820}
3821
3822// Left-recursive
3823// dotted_name: dotted_name '.' NAME | NAME
3824static expr_ty dotted_name_raw(Parser *);
3825static expr_ty
3826dotted_name_rule(Parser *p)
3827{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003828 if (p->level++ == MAXSTACK) {
3829 p->error_indicator = 1;
3830 PyErr_NoMemory();
3831 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003832 expr_ty _res = NULL;
3833 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003834 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003835 return _res;
3836 }
3837 int _mark = p->mark;
3838 int _resmark = p->mark;
3839 while (1) {
3840 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
3841 if (tmpvar_0) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003842 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003843 return _res;
3844 }
3845 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07003846 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003847 void *_raw = dotted_name_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07003848 p->in_raw_rule--;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003849 if (p->error_indicator) {
3850 p->level--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02003851 return NULL;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003852 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003853 if (_raw == NULL || p->mark <= _resmark)
3854 break;
3855 _resmark = p->mark;
3856 _res = _raw;
3857 }
3858 p->mark = _resmark;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003859 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003860 return _res;
3861}
3862static expr_ty
3863dotted_name_raw(Parser *p)
3864{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003865 if (p->level++ == MAXSTACK) {
3866 p->error_indicator = 1;
3867 PyErr_NoMemory();
3868 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003869 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003870 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003871 return NULL;
3872 }
3873 expr_ty _res = NULL;
3874 int _mark = p->mark;
3875 { // dotted_name '.' NAME
3876 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003877 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003878 return NULL;
3879 }
3880 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3881 Token * _literal;
3882 expr_ty a;
3883 expr_ty b;
3884 if (
3885 (a = dotted_name_rule(p)) // dotted_name
3886 &&
3887 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
3888 &&
3889 (b = _PyPegen_name_token(p)) // NAME
3890 )
3891 {
3892 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3893 _res = _PyPegen_join_names_with_dot ( p , a , b );
3894 if (_res == NULL && PyErr_Occurred()) {
3895 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003896 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003897 return NULL;
3898 }
3899 goto done;
3900 }
3901 p->mark = _mark;
3902 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3903 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
3904 }
3905 { // NAME
3906 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003907 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003908 return NULL;
3909 }
3910 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
3911 expr_ty name_var;
3912 if (
3913 (name_var = _PyPegen_name_token(p)) // NAME
3914 )
3915 {
3916 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
3917 _res = name_var;
3918 goto done;
3919 }
3920 p->mark = _mark;
3921 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3922 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
3923 }
3924 _res = NULL;
3925 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003926 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003927 return _res;
3928}
3929
3930// if_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01003931// | invalid_if_stmt
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003932// | 'if' named_expression ':' block elif_stmt
3933// | 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003934static stmt_ty
3935if_stmt_rule(Parser *p)
3936{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003937 if (p->level++ == MAXSTACK) {
3938 p->error_indicator = 1;
3939 PyErr_NoMemory();
3940 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003941 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003942 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003943 return NULL;
3944 }
3945 stmt_ty _res = NULL;
3946 int _mark = p->mark;
3947 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3948 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003949 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003950 return NULL;
3951 }
3952 int _start_lineno = p->tokens[_mark]->lineno;
3953 UNUSED(_start_lineno); // Only used by EXTRA macro
3954 int _start_col_offset = p->tokens[_mark]->col_offset;
3955 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01003956 if (p->call_invalid_rules) { // invalid_if_stmt
3957 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003958 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +01003959 return NULL;
3960 }
3961 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3962 void *invalid_if_stmt_var;
3963 if (
3964 (invalid_if_stmt_var = invalid_if_stmt_rule(p)) // invalid_if_stmt
3965 )
3966 {
3967 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3968 _res = invalid_if_stmt_var;
3969 goto done;
3970 }
3971 p->mark = _mark;
3972 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3973 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_if_stmt"));
3974 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003975 { // 'if' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003976 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00003977 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003978 return NULL;
3979 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003980 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 +01003981 Token * _keyword;
3982 Token * _literal;
3983 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003984 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003985 stmt_ty c;
3986 if (
3987 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3988 &&
3989 (a = named_expression_rule(p)) // named_expression
3990 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003991 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003992 &&
3993 (b = block_rule(p)) // block
3994 &&
3995 (c = elif_stmt_rule(p)) // elif_stmt
3996 )
3997 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003998 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 +01003999 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4000 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004001 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004002 return NULL;
4003 }
4004 int _end_lineno = _token->end_lineno;
4005 UNUSED(_end_lineno); // Only used by EXTRA macro
4006 int _end_col_offset = _token->end_col_offset;
4007 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004008 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004009 if (_res == NULL && PyErr_Occurred()) {
4010 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004011 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004012 return NULL;
4013 }
4014 goto done;
4015 }
4016 p->mark = _mark;
4017 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004018 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004019 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004020 { // 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004021 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004022 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004023 return NULL;
4024 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004025 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 +01004026 Token * _keyword;
4027 Token * _literal;
4028 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004029 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004030 void *c;
4031 if (
4032 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
4033 &&
4034 (a = named_expression_rule(p)) // named_expression
4035 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004036 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004037 &&
4038 (b = block_rule(p)) // block
4039 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004040 (c = else_block_rule(p), !p->error_indicator) // else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004041 )
4042 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004043 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 +01004044 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4045 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004046 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004047 return NULL;
4048 }
4049 int _end_lineno = _token->end_lineno;
4050 UNUSED(_end_lineno); // Only used by EXTRA macro
4051 int _end_col_offset = _token->end_col_offset;
4052 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004053 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004054 if (_res == NULL && PyErr_Occurred()) {
4055 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004056 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004057 return NULL;
4058 }
4059 goto done;
4060 }
4061 p->mark = _mark;
4062 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
4064 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004065 _res = NULL;
4066 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004067 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004068 return _res;
4069}
4070
4071// elif_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004072// | invalid_elif_stmt
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004073// | 'elif' named_expression ':' block elif_stmt
4074// | 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004075static stmt_ty
4076elif_stmt_rule(Parser *p)
4077{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004078 if (p->level++ == MAXSTACK) {
4079 p->error_indicator = 1;
4080 PyErr_NoMemory();
4081 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004082 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004083 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004084 return NULL;
4085 }
4086 stmt_ty _res = NULL;
4087 int _mark = p->mark;
4088 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4089 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004090 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004091 return NULL;
4092 }
4093 int _start_lineno = p->tokens[_mark]->lineno;
4094 UNUSED(_start_lineno); // Only used by EXTRA macro
4095 int _start_col_offset = p->tokens[_mark]->col_offset;
4096 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004097 if (p->call_invalid_rules) { // invalid_elif_stmt
4098 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004099 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +01004100 return NULL;
4101 }
4102 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
4103 void *invalid_elif_stmt_var;
4104 if (
4105 (invalid_elif_stmt_var = invalid_elif_stmt_rule(p)) // invalid_elif_stmt
4106 )
4107 {
4108 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
4109 _res = invalid_elif_stmt_var;
4110 goto done;
4111 }
4112 p->mark = _mark;
4113 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4114 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_elif_stmt"));
4115 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004116 { // 'elif' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004117 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004118 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004119 return NULL;
4120 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004121 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 +01004122 Token * _keyword;
4123 Token * _literal;
4124 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004125 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004126 stmt_ty c;
4127 if (
4128 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
4129 &&
4130 (a = named_expression_rule(p)) // named_expression
4131 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004132 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004133 &&
4134 (b = block_rule(p)) // block
4135 &&
4136 (c = elif_stmt_rule(p)) // elif_stmt
4137 )
4138 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004139 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 +01004140 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4141 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004142 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004143 return NULL;
4144 }
4145 int _end_lineno = _token->end_lineno;
4146 UNUSED(_end_lineno); // Only used by EXTRA macro
4147 int _end_col_offset = _token->end_col_offset;
4148 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004149 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004150 if (_res == NULL && PyErr_Occurred()) {
4151 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004152 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004153 return NULL;
4154 }
4155 goto done;
4156 }
4157 p->mark = _mark;
4158 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004159 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004160 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004161 { // 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004162 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004163 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004164 return NULL;
4165 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004166 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 +01004167 Token * _keyword;
4168 Token * _literal;
4169 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004170 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004171 void *c;
4172 if (
4173 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
4174 &&
4175 (a = named_expression_rule(p)) // named_expression
4176 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004177 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004178 &&
4179 (b = block_rule(p)) // block
4180 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004181 (c = else_block_rule(p), !p->error_indicator) // else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004182 )
4183 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004184 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 +01004185 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4186 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004187 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004188 return NULL;
4189 }
4190 int _end_lineno = _token->end_lineno;
4191 UNUSED(_end_lineno); // Only used by EXTRA macro
4192 int _end_col_offset = _token->end_col_offset;
4193 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004194 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004195 if (_res == NULL && PyErr_Occurred()) {
4196 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004197 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004198 return NULL;
4199 }
4200 goto done;
4201 }
4202 p->mark = _mark;
4203 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004204 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
4205 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004206 _res = NULL;
4207 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004208 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004209 return _res;
4210}
4211
Pablo Galindo56c95df2021-04-21 15:28:21 +01004212// else_block: invalid_else_stmt | 'else' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01004213static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004214else_block_rule(Parser *p)
4215{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004216 if (p->level++ == MAXSTACK) {
4217 p->error_indicator = 1;
4218 PyErr_NoMemory();
4219 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004220 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004221 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004222 return NULL;
4223 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01004224 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004225 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01004226 if (p->call_invalid_rules) { // invalid_else_stmt
4227 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004228 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +01004229 return NULL;
4230 }
4231 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
4232 void *invalid_else_stmt_var;
4233 if (
4234 (invalid_else_stmt_var = invalid_else_stmt_rule(p)) // invalid_else_stmt
4235 )
4236 {
4237 D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
4238 _res = invalid_else_stmt_var;
4239 goto done;
4240 }
4241 p->mark = _mark;
4242 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
4243 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_else_stmt"));
4244 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004245 { // 'else' &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004246 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004247 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004248 return NULL;
4249 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004250 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004251 Token * _keyword;
4252 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004253 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004254 if (
4255 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
4256 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004257 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004258 &&
4259 (b = block_rule(p)) // block
4260 )
4261 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004262 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 +01004263 _res = b;
4264 if (_res == NULL && PyErr_Occurred()) {
4265 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004266 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004267 return NULL;
4268 }
4269 goto done;
4270 }
4271 p->mark = _mark;
4272 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004273 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004274 }
4275 _res = NULL;
4276 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004277 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004278 return _res;
4279}
4280
Pablo Galindo56c95df2021-04-21 15:28:21 +01004281// while_stmt: invalid_while_stmt | 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004282static stmt_ty
4283while_stmt_rule(Parser *p)
4284{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004285 if (p->level++ == MAXSTACK) {
4286 p->error_indicator = 1;
4287 PyErr_NoMemory();
4288 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004289 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004290 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004291 return NULL;
4292 }
4293 stmt_ty _res = NULL;
4294 int _mark = p->mark;
4295 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4296 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004297 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004298 return NULL;
4299 }
4300 int _start_lineno = p->tokens[_mark]->lineno;
4301 UNUSED(_start_lineno); // Only used by EXTRA macro
4302 int _start_col_offset = p->tokens[_mark]->col_offset;
4303 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004304 if (p->call_invalid_rules) { // invalid_while_stmt
4305 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004306 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +01004307 return NULL;
4308 }
4309 D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4310 void *invalid_while_stmt_var;
4311 if (
4312 (invalid_while_stmt_var = invalid_while_stmt_rule(p)) // invalid_while_stmt
4313 )
4314 {
4315 D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4316 _res = invalid_while_stmt_var;
4317 goto done;
4318 }
4319 p->mark = _mark;
4320 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4321 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_while_stmt"));
4322 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004323 { // 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004324 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004325 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004326 return NULL;
4327 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004328 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 +01004329 Token * _keyword;
4330 Token * _literal;
4331 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004332 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004333 void *c;
4334 if (
4335 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
4336 &&
4337 (a = named_expression_rule(p)) // named_expression
4338 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004339 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004340 &&
4341 (b = block_rule(p)) // block
4342 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004343 (c = else_block_rule(p), !p->error_indicator) // else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004344 )
4345 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004346 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 +01004347 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4348 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004349 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004350 return NULL;
4351 }
4352 int _end_lineno = _token->end_lineno;
4353 UNUSED(_end_lineno); // Only used by EXTRA macro
4354 int _end_col_offset = _token->end_col_offset;
4355 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004356 _res = _PyAST_While ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004357 if (_res == NULL && PyErr_Occurred()) {
4358 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004359 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004360 return NULL;
4361 }
4362 goto done;
4363 }
4364 p->mark = _mark;
4365 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004366 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
4367 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004368 _res = NULL;
4369 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004370 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004371 return _res;
4372}
4373
4374// for_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004375// | invalid_for_stmt
Pablo Galindo58fb1562021-02-02 19:54:22 +00004376// | 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
4377// | ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004378// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004379static stmt_ty
4380for_stmt_rule(Parser *p)
4381{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004382 if (p->level++ == MAXSTACK) {
4383 p->error_indicator = 1;
4384 PyErr_NoMemory();
4385 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004386 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004387 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004388 return NULL;
4389 }
4390 stmt_ty _res = NULL;
4391 int _mark = p->mark;
4392 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4393 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004394 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004395 return NULL;
4396 }
4397 int _start_lineno = p->tokens[_mark]->lineno;
4398 UNUSED(_start_lineno); // Only used by EXTRA macro
4399 int _start_col_offset = p->tokens[_mark]->col_offset;
4400 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004401 if (p->call_invalid_rules) { // invalid_for_stmt
4402 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004403 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +01004404 return NULL;
4405 }
4406 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
4407 void *invalid_for_stmt_var;
4408 if (
4409 (invalid_for_stmt_var = invalid_for_stmt_rule(p)) // invalid_for_stmt
4410 )
4411 {
4412 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
4413 _res = invalid_for_stmt_var;
4414 goto done;
4415 }
4416 p->mark = _mark;
4417 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4418 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_stmt"));
4419 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004420 { // 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004421 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004422 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004423 return NULL;
4424 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004425 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 +03004426 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004427 Token * _keyword;
4428 Token * _keyword_1;
4429 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004430 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004431 void *el;
4432 expr_ty ex;
4433 expr_ty t;
4434 void *tc;
4435 if (
4436 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4437 &&
4438 (t = star_targets_rule(p)) // star_targets
4439 &&
4440 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4441 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004442 (_cut_var = 1)
4443 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004444 (ex = star_expressions_rule(p)) // star_expressions
4445 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004446 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004447 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004448 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004449 &&
4450 (b = block_rule(p)) // block
4451 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004452 (el = else_block_rule(p), !p->error_indicator) // else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004453 )
4454 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004455 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 +01004456 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4457 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004458 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004459 return NULL;
4460 }
4461 int _end_lineno = _token->end_lineno;
4462 UNUSED(_end_lineno); // Only used by EXTRA macro
4463 int _end_col_offset = _token->end_col_offset;
4464 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004465 _res = _PyAST_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004466 if (_res == NULL && PyErr_Occurred()) {
4467 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004468 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004469 return NULL;
4470 }
4471 goto done;
4472 }
4473 p->mark = _mark;
4474 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004475 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 +03004476 if (_cut_var) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004477 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004478 return NULL;
4479 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004480 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004481 { // ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004482 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004483 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004484 return NULL;
4485 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004486 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 +03004487 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004488 Token * _keyword;
4489 Token * _keyword_1;
4490 Token * _literal;
4491 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004492 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004493 void *el;
4494 expr_ty ex;
4495 expr_ty t;
4496 void *tc;
4497 if (
4498 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4499 &&
4500 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4501 &&
4502 (t = star_targets_rule(p)) // star_targets
4503 &&
4504 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4505 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004506 (_cut_var = 1)
4507 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004508 (ex = star_expressions_rule(p)) // star_expressions
4509 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004510 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004511 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004512 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004513 &&
4514 (b = block_rule(p)) // block
4515 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004516 (el = else_block_rule(p), !p->error_indicator) // else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004517 )
4518 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004519 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 +01004520 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4521 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004522 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004523 return NULL;
4524 }
4525 int _end_lineno = _token->end_lineno;
4526 UNUSED(_end_lineno); // Only used by EXTRA macro
4527 int _end_col_offset = _token->end_col_offset;
4528 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004529 _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 +01004530 if (_res == NULL && PyErr_Occurred()) {
4531 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004532 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004533 return NULL;
4534 }
4535 goto done;
4536 }
4537 p->mark = _mark;
4538 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004539 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 +03004540 if (_cut_var) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004541 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004542 return NULL;
4543 }
4544 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004545 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004546 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004547 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004548 return NULL;
4549 }
4550 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4551 void *invalid_for_target_var;
4552 if (
4553 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4554 )
4555 {
4556 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4557 _res = invalid_for_target_var;
4558 goto done;
4559 }
4560 p->mark = _mark;
4561 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004563 }
4564 _res = NULL;
4565 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004566 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004567 return _res;
4568}
4569
4570// with_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004571// | invalid_with_stmt_indent
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004572// | 'with' '(' ','.with_item+ ','? ')' ':' block
4573// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
4574// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4575// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo58fb1562021-02-02 19:54:22 +00004576// | invalid_with_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004577static stmt_ty
4578with_stmt_rule(Parser *p)
4579{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004580 if (p->level++ == MAXSTACK) {
4581 p->error_indicator = 1;
4582 PyErr_NoMemory();
4583 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004584 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004585 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004586 return NULL;
4587 }
4588 stmt_ty _res = NULL;
4589 int _mark = p->mark;
4590 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4591 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004592 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004593 return NULL;
4594 }
4595 int _start_lineno = p->tokens[_mark]->lineno;
4596 UNUSED(_start_lineno); // Only used by EXTRA macro
4597 int _start_col_offset = p->tokens[_mark]->col_offset;
4598 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004599 if (p->call_invalid_rules) { // invalid_with_stmt_indent
4600 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004601 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +01004602 return NULL;
4603 }
4604 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
4605 void *invalid_with_stmt_indent_var;
4606 if (
4607 (invalid_with_stmt_indent_var = invalid_with_stmt_indent_rule(p)) // invalid_with_stmt_indent
4608 )
4609 {
4610 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
4611 _res = invalid_with_stmt_indent_var;
4612 goto done;
4613 }
4614 p->mark = _mark;
4615 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt_indent"));
4617 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004618 { // 'with' '(' ','.with_item+ ','? ')' ':' block
4619 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004620 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004621 return NULL;
4622 }
4623 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4624 Token * _keyword;
4625 Token * _literal;
4626 Token * _literal_1;
4627 Token * _literal_2;
4628 void *_opt_var;
4629 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004630 asdl_withitem_seq* a;
4631 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004632 if (
4633 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4634 &&
4635 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4636 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004637 (a = (asdl_withitem_seq*)_gather_39_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004638 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004639 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004640 &&
4641 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4642 &&
4643 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4644 &&
4645 (b = block_rule(p)) // block
4646 )
4647 {
4648 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4649 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4650 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004651 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004652 return NULL;
4653 }
4654 int _end_lineno = _token->end_lineno;
4655 UNUSED(_end_lineno); // Only used by EXTRA macro
4656 int _end_col_offset = _token->end_col_offset;
4657 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004658 _res = _PyAST_With ( a , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004659 if (_res == NULL && PyErr_Occurred()) {
4660 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004661 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004662 return NULL;
4663 }
4664 goto done;
4665 }
4666 p->mark = _mark;
4667 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4668 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4669 }
4670 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
4671 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004672 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004673 return NULL;
4674 }
4675 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4676 Token * _keyword;
4677 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004678 asdl_withitem_seq* a;
4679 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004680 void *tc;
4681 if (
4682 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4683 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004684 (a = (asdl_withitem_seq*)_gather_41_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004685 &&
4686 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4687 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004688 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004689 &&
4690 (b = block_rule(p)) // block
4691 )
4692 {
4693 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4694 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4695 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004696 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004697 return NULL;
4698 }
4699 int _end_lineno = _token->end_lineno;
4700 UNUSED(_end_lineno); // Only used by EXTRA macro
4701 int _end_col_offset = _token->end_col_offset;
4702 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004703 _res = _PyAST_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004704 if (_res == NULL && PyErr_Occurred()) {
4705 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004706 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004707 return NULL;
4708 }
4709 goto done;
4710 }
4711 p->mark = _mark;
4712 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4713 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4714 }
4715 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4716 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004717 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004718 return NULL;
4719 }
4720 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4721 Token * _keyword;
4722 Token * _literal;
4723 Token * _literal_1;
4724 Token * _literal_2;
4725 void *_opt_var;
4726 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004727 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004728 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004729 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004730 if (
4731 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4732 &&
4733 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4734 &&
4735 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4736 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004737 (a = (asdl_withitem_seq*)_gather_43_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004738 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004739 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004740 &&
4741 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4742 &&
4743 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4744 &&
4745 (b = block_rule(p)) // block
4746 )
4747 {
4748 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4749 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4750 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004751 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004752 return NULL;
4753 }
4754 int _end_lineno = _token->end_lineno;
4755 UNUSED(_end_lineno); // Only used by EXTRA macro
4756 int _end_col_offset = _token->end_col_offset;
4757 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004758 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _PyAST_AsyncWith ( a , b , NULL , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004759 if (_res == NULL && PyErr_Occurred()) {
4760 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004761 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004762 return NULL;
4763 }
4764 goto done;
4765 }
4766 p->mark = _mark;
4767 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4768 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4769 }
4770 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
4771 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004772 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004773 return NULL;
4774 }
4775 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4776 Token * _keyword;
4777 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004778 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004779 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004780 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004781 void *tc;
4782 if (
4783 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4784 &&
4785 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4786 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004787 (a = (asdl_withitem_seq*)_gather_45_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004788 &&
4789 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4790 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02004791 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004792 &&
4793 (b = block_rule(p)) // block
4794 )
4795 {
4796 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4797 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4798 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004799 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004800 return NULL;
4801 }
4802 int _end_lineno = _token->end_lineno;
4803 UNUSED(_end_lineno); // Only used by EXTRA macro
4804 int _end_col_offset = _token->end_col_offset;
4805 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004806 _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 +01004807 if (_res == NULL && PyErr_Occurred()) {
4808 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004809 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004810 return NULL;
4811 }
4812 goto done;
4813 }
4814 p->mark = _mark;
4815 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4816 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4817 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004818 if (p->call_invalid_rules) { // invalid_with_stmt
4819 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004820 p->level--;
Pablo Galindo58fb1562021-02-02 19:54:22 +00004821 return NULL;
4822 }
4823 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4824 void *invalid_with_stmt_var;
4825 if (
4826 (invalid_with_stmt_var = invalid_with_stmt_rule(p)) // invalid_with_stmt
4827 )
4828 {
4829 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4830 _res = invalid_with_stmt_var;
4831 goto done;
4832 }
4833 p->mark = _mark;
4834 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4835 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt"));
4836 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004837 _res = NULL;
4838 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004839 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004840 return _res;
4841}
4842
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004843// with_item:
4844// | expression 'as' star_target &(',' | ')' | ':')
4845// | invalid_with_item
4846// | expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004847static withitem_ty
4848with_item_rule(Parser *p)
4849{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004850 if (p->level++ == MAXSTACK) {
4851 p->error_indicator = 1;
4852 PyErr_NoMemory();
4853 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004854 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004855 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004856 return NULL;
4857 }
4858 withitem_ty _res = NULL;
4859 int _mark = p->mark;
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004860 { // expression 'as' star_target &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004861 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004862 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004863 return NULL;
4864 }
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004865 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 +03004866 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004867 expr_ty e;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004868 expr_ty t;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004869 if (
4870 (e = expression_rule(p)) // expression
4871 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004872 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4873 &&
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004874 (t = star_target_rule(p)) // star_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004875 &&
4876 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004877 )
4878 {
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004879 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 +02004880 _res = _PyAST_withitem ( e , t , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004881 if (_res == NULL && PyErr_Occurred()) {
4882 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004883 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004884 return NULL;
4885 }
4886 goto done;
4887 }
4888 p->mark = _mark;
4889 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004890 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004891 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004892 if (p->call_invalid_rules) { // invalid_with_item
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004893 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004894 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004895 return NULL;
4896 }
4897 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4898 void *invalid_with_item_var;
4899 if (
4900 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4901 )
4902 {
4903 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4904 _res = invalid_with_item_var;
4905 goto done;
4906 }
4907 p->mark = _mark;
4908 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4909 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4910 }
4911 { // expression
4912 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004913 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004914 return NULL;
4915 }
4916 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4917 expr_ty e;
4918 if (
4919 (e = expression_rule(p)) // expression
4920 )
4921 {
4922 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004923 _res = _PyAST_withitem ( e , NULL , p -> arena );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004924 if (_res == NULL && PyErr_Occurred()) {
4925 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004926 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004927 return NULL;
4928 }
4929 goto done;
4930 }
4931 p->mark = _mark;
4932 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004934 }
4935 _res = NULL;
4936 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004937 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004938 return _res;
4939}
4940
4941// try_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004942// | invalid_try_stmt
Pablo Galindo58fb1562021-02-02 19:54:22 +00004943// | 'try' &&':' block finally_block
4944// | 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004945static stmt_ty
4946try_stmt_rule(Parser *p)
4947{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004948 if (p->level++ == MAXSTACK) {
4949 p->error_indicator = 1;
4950 PyErr_NoMemory();
4951 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004952 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004953 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004954 return NULL;
4955 }
4956 stmt_ty _res = NULL;
4957 int _mark = p->mark;
4958 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4959 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004960 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004961 return NULL;
4962 }
4963 int _start_lineno = p->tokens[_mark]->lineno;
4964 UNUSED(_start_lineno); // Only used by EXTRA macro
4965 int _start_col_offset = p->tokens[_mark]->col_offset;
4966 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004967 if (p->call_invalid_rules) { // invalid_try_stmt
4968 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004969 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +01004970 return NULL;
4971 }
4972 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
4973 void *invalid_try_stmt_var;
4974 if (
4975 (invalid_try_stmt_var = invalid_try_stmt_rule(p)) // invalid_try_stmt
4976 )
4977 {
4978 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
4979 _res = invalid_try_stmt_var;
4980 goto done;
4981 }
4982 p->mark = _mark;
4983 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4984 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_try_stmt"));
4985 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004986 { // 'try' &&':' block finally_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004987 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00004988 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004989 return NULL;
4990 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004991 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 +01004992 Token * _keyword;
4993 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004994 asdl_stmt_seq* b;
4995 asdl_stmt_seq* f;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004996 if (
4997 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4998 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004999 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005000 &&
5001 (b = block_rule(p)) // block
5002 &&
5003 (f = finally_block_rule(p)) // finally_block
5004 )
5005 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00005006 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 +01005007 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5008 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005009 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005010 return NULL;
5011 }
5012 int _end_lineno = _token->end_lineno;
5013 UNUSED(_end_lineno); // Only used by EXTRA macro
5014 int _end_col_offset = _token->end_col_offset;
5015 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005016 _res = _PyAST_Try ( b , NULL , NULL , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005017 if (_res == NULL && PyErr_Occurred()) {
5018 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005019 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005020 return NULL;
5021 }
5022 goto done;
5023 }
5024 p->mark = _mark;
5025 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00005026 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block finally_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005027 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00005028 { // 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005029 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005030 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005031 return NULL;
5032 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00005033 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 +01005034 Token * _keyword;
5035 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005036 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005037 void *el;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005038 asdl_excepthandler_seq* ex;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005039 void *f;
5040 if (
5041 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
5042 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00005043 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005044 &&
5045 (b = block_rule(p)) // block
5046 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01005047 (ex = (asdl_excepthandler_seq*)_loop1_48_rule(p)) // except_block+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005048 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02005049 (el = else_block_rule(p), !p->error_indicator) // else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005050 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02005051 (f = finally_block_rule(p), !p->error_indicator) // finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005052 )
5053 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00005054 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 +01005055 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5056 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005057 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005058 return NULL;
5059 }
5060 int _end_lineno = _token->end_lineno;
5061 UNUSED(_end_lineno); // Only used by EXTRA macro
5062 int _end_col_offset = _token->end_col_offset;
5063 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005064 _res = _PyAST_Try ( b , ex , el , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005065 if (_res == NULL && PyErr_Occurred()) {
5066 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005067 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005068 return NULL;
5069 }
5070 goto done;
5071 }
5072 p->mark = _mark;
5073 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00005074 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005075 }
5076 _res = NULL;
5077 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005078 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005079 return _res;
5080}
5081
Pablo Galindo206cbda2021-02-07 18:42:21 +00005082// except_block:
Pablo Galindo56c95df2021-04-21 15:28:21 +01005083// | invalid_except_stmt_indent
Pablo Galindo206cbda2021-02-07 18:42:21 +00005084// | 'except' expression ['as' NAME] ':' block
5085// | 'except' ':' block
Pablo Galindo56c95df2021-04-21 15:28:21 +01005086// | invalid_except_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005087static excepthandler_ty
5088except_block_rule(Parser *p)
5089{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005090 if (p->level++ == MAXSTACK) {
5091 p->error_indicator = 1;
5092 PyErr_NoMemory();
5093 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005094 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005095 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005096 return NULL;
5097 }
5098 excepthandler_ty _res = NULL;
5099 int _mark = p->mark;
5100 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5101 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005102 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005103 return NULL;
5104 }
5105 int _start_lineno = p->tokens[_mark]->lineno;
5106 UNUSED(_start_lineno); // Only used by EXTRA macro
5107 int _start_col_offset = p->tokens[_mark]->col_offset;
5108 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01005109 if (p->call_invalid_rules) { // invalid_except_stmt_indent
5110 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005111 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005112 return NULL;
5113 }
5114 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
5115 void *invalid_except_stmt_indent_var;
5116 if (
5117 (invalid_except_stmt_indent_var = invalid_except_stmt_indent_rule(p)) // invalid_except_stmt_indent
5118 )
5119 {
5120 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
5121 _res = invalid_except_stmt_indent_var;
5122 goto done;
5123 }
5124 p->mark = _mark;
5125 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
5126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt_indent"));
5127 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005128 { // 'except' expression ['as' NAME] ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005129 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005130 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005131 return NULL;
5132 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005133 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 +01005134 Token * _keyword;
5135 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005136 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005137 expr_ty e;
5138 void *t;
5139 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005140 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005141 &&
5142 (e = expression_rule(p)) // expression
5143 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02005144 (t = _tmp_49_rule(p), !p->error_indicator) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005145 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00005146 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005147 &&
5148 (b = block_rule(p)) // block
5149 )
5150 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00005151 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 +01005152 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5153 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005154 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005155 return NULL;
5156 }
5157 int _end_lineno = _token->end_lineno;
5158 UNUSED(_end_lineno); // Only used by EXTRA macro
5159 int _end_col_offset = _token->end_col_offset;
5160 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005161 _res = _PyAST_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005162 if (_res == NULL && PyErr_Occurred()) {
5163 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005164 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005165 return NULL;
5166 }
5167 goto done;
5168 }
5169 p->mark = _mark;
5170 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00005171 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005172 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005173 { // 'except' ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005174 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005175 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005176 return NULL;
5177 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005178 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005179 Token * _keyword;
5180 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005181 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005182 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005183 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005184 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00005185 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005186 &&
5187 (b = block_rule(p)) // block
5188 )
5189 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00005190 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 +01005191 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5192 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005193 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005194 return NULL;
5195 }
5196 int _end_lineno = _token->end_lineno;
5197 UNUSED(_end_lineno); // Only used by EXTRA macro
5198 int _end_col_offset = _token->end_col_offset;
5199 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005200 _res = _PyAST_ExceptHandler ( NULL , NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005201 if (_res == NULL && PyErr_Occurred()) {
5202 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005203 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005204 return NULL;
5205 }
5206 goto done;
5207 }
5208 p->mark = _mark;
5209 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00005210 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
5211 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005212 if (p->call_invalid_rules) { // invalid_except_stmt
Pablo Galindo206cbda2021-02-07 18:42:21 +00005213 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005214 p->level--;
Pablo Galindo206cbda2021-02-07 18:42:21 +00005215 return NULL;
5216 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005217 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
5218 void *invalid_except_stmt_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +00005219 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +01005220 (invalid_except_stmt_var = invalid_except_stmt_rule(p)) // invalid_except_stmt
Pablo Galindo206cbda2021-02-07 18:42:21 +00005221 )
5222 {
Pablo Galindo56c95df2021-04-21 15:28:21 +01005223 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
5224 _res = invalid_except_stmt_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +00005225 goto done;
5226 }
5227 p->mark = _mark;
5228 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +01005229 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005230 }
5231 _res = NULL;
5232 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005233 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005234 return _res;
5235}
5236
Pablo Galindo56c95df2021-04-21 15:28:21 +01005237// finally_block: invalid_finally_stmt | 'finally' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01005238static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005239finally_block_rule(Parser *p)
5240{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005241 if (p->level++ == MAXSTACK) {
5242 p->error_indicator = 1;
5243 PyErr_NoMemory();
5244 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005245 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005246 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005247 return NULL;
5248 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01005249 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005250 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005251 if (p->call_invalid_rules) { // invalid_finally_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005252 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005253 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005254 return NULL;
5255 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005256 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
5257 void *invalid_finally_stmt_var;
5258 if (
5259 (invalid_finally_stmt_var = invalid_finally_stmt_rule(p)) // invalid_finally_stmt
5260 )
5261 {
5262 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
5263 _res = invalid_finally_stmt_var;
5264 goto done;
5265 }
5266 p->mark = _mark;
5267 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
5268 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_finally_stmt"));
5269 }
5270 { // 'finally' &&':' block
5271 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005272 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005273 return NULL;
5274 }
5275 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005276 Token * _keyword;
5277 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005278 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005279 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005280 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005281 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +01005282 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005283 &&
5284 (a = block_rule(p)) // block
5285 )
5286 {
Pablo Galindo56c95df2021-04-21 15:28:21 +01005287 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 +01005288 _res = a;
5289 if (_res == NULL && PyErr_Occurred()) {
5290 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005291 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005292 return NULL;
5293 }
5294 goto done;
5295 }
5296 p->mark = _mark;
5297 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +01005298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005299 }
5300 _res = NULL;
5301 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005302 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005303 return _res;
5304}
5305
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005306// match_stmt:
5307// | "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5308// | invalid_match_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08005309static stmt_ty
5310match_stmt_rule(Parser *p)
5311{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005312 if (p->level++ == MAXSTACK) {
5313 p->error_indicator = 1;
5314 PyErr_NoMemory();
5315 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005316 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005317 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005318 return NULL;
5319 }
5320 stmt_ty _res = NULL;
5321 int _mark = p->mark;
5322 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5323 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005324 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005325 return NULL;
5326 }
5327 int _start_lineno = p->tokens[_mark]->lineno;
5328 UNUSED(_start_lineno); // Only used by EXTRA macro
5329 int _start_col_offset = p->tokens[_mark]->col_offset;
5330 UNUSED(_start_col_offset); // Only used by EXTRA macro
5331 { // "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5332 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005333 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005334 return NULL;
5335 }
5336 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5337 expr_ty _keyword;
5338 Token * _literal;
5339 asdl_match_case_seq* cases;
5340 Token * dedent_var;
5341 Token * indent_var;
5342 Token * newline_var;
5343 expr_ty subject;
5344 if (
5345 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
5346 &&
5347 (subject = subject_expr_rule(p)) // subject_expr
5348 &&
5349 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5350 &&
5351 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
5352 &&
5353 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
5354 &&
5355 (cases = (asdl_match_case_seq*)_loop1_50_rule(p)) // case_block+
5356 &&
5357 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
5358 )
5359 {
5360 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5361 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5362 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005363 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005364 return NULL;
5365 }
5366 int _end_lineno = _token->end_lineno;
5367 UNUSED(_end_lineno); // Only used by EXTRA macro
5368 int _end_col_offset = _token->end_col_offset;
5369 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005370 _res = CHECK_VERSION ( stmt_ty , 10 , "Pattern matching is" , _PyAST_Match ( subject , cases , EXTRA ) );
Brandt Bucher145bf262021-02-26 14:51:55 -08005371 if (_res == NULL && PyErr_Occurred()) {
5372 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005373 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005374 return NULL;
5375 }
5376 goto done;
5377 }
5378 p->mark = _mark;
5379 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5380 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5381 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005382 if (p->call_invalid_rules) { // invalid_match_stmt
5383 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005384 p->level--;
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005385 return NULL;
5386 }
5387 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5388 void *invalid_match_stmt_var;
5389 if (
5390 (invalid_match_stmt_var = invalid_match_stmt_rule(p)) // invalid_match_stmt
5391 )
5392 {
5393 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5394 _res = invalid_match_stmt_var;
5395 goto done;
5396 }
5397 p->mark = _mark;
5398 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5399 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_match_stmt"));
5400 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005401 _res = NULL;
5402 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005403 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005404 return _res;
5405}
5406
5407// subject_expr: star_named_expression ',' star_named_expressions? | named_expression
5408static expr_ty
5409subject_expr_rule(Parser *p)
5410{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005411 if (p->level++ == MAXSTACK) {
5412 p->error_indicator = 1;
5413 PyErr_NoMemory();
5414 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005415 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005416 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005417 return NULL;
5418 }
5419 expr_ty _res = NULL;
5420 int _mark = p->mark;
5421 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5422 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005423 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005424 return NULL;
5425 }
5426 int _start_lineno = p->tokens[_mark]->lineno;
5427 UNUSED(_start_lineno); // Only used by EXTRA macro
5428 int _start_col_offset = p->tokens[_mark]->col_offset;
5429 UNUSED(_start_col_offset); // Only used by EXTRA macro
5430 { // star_named_expression ',' star_named_expressions?
5431 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005432 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005433 return NULL;
5434 }
5435 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5436 Token * _literal;
5437 expr_ty value;
5438 void *values;
5439 if (
5440 (value = star_named_expression_rule(p)) // star_named_expression
5441 &&
5442 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5443 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02005444 (values = star_named_expressions_rule(p), !p->error_indicator) // star_named_expressions?
Brandt Bucher145bf262021-02-26 14:51:55 -08005445 )
5446 {
5447 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5448 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5449 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005450 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005451 return NULL;
5452 }
5453 int _end_lineno = _token->end_lineno;
5454 UNUSED(_end_lineno); // Only used by EXTRA macro
5455 int _end_col_offset = _token->end_col_offset;
5456 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005457 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , value , values ) ) , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005458 if (_res == NULL && PyErr_Occurred()) {
5459 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005460 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005461 return NULL;
5462 }
5463 goto done;
5464 }
5465 p->mark = _mark;
5466 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5467 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5468 }
5469 { // named_expression
5470 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005471 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005472 return NULL;
5473 }
5474 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
5475 expr_ty named_expression_var;
5476 if (
5477 (named_expression_var = named_expression_rule(p)) // named_expression
5478 )
5479 {
5480 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
5481 _res = named_expression_var;
5482 goto done;
5483 }
5484 p->mark = _mark;
5485 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5486 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
5487 }
5488 _res = NULL;
5489 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005490 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005491 return _res;
5492}
5493
Pablo Galindo56c95df2021-04-21 15:28:21 +01005494// case_block: invalid_case_block | "case" patterns guard? ':' block
Brandt Bucher145bf262021-02-26 14:51:55 -08005495static match_case_ty
5496case_block_rule(Parser *p)
5497{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005498 if (p->level++ == MAXSTACK) {
5499 p->error_indicator = 1;
5500 PyErr_NoMemory();
5501 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005502 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005503 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005504 return NULL;
5505 }
5506 match_case_ty _res = NULL;
5507 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005508 if (p->call_invalid_rules) { // invalid_case_block
5509 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005510 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005511 return NULL;
5512 }
5513 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5514 void *invalid_case_block_var;
5515 if (
5516 (invalid_case_block_var = invalid_case_block_rule(p)) // invalid_case_block
5517 )
5518 {
5519 D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5520 _res = invalid_case_block_var;
5521 goto done;
5522 }
5523 p->mark = _mark;
5524 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_case_block"));
5526 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005527 { // "case" patterns guard? ':' block
5528 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005529 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005530 return NULL;
5531 }
5532 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
5533 expr_ty _keyword;
5534 Token * _literal;
5535 asdl_stmt_seq* body;
5536 void *guard;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005537 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08005538 if (
5539 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
5540 &&
5541 (pattern = patterns_rule(p)) // patterns
5542 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02005543 (guard = guard_rule(p), !p->error_indicator) // guard?
Brandt Bucher145bf262021-02-26 14:51:55 -08005544 &&
5545 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5546 &&
5547 (body = block_rule(p)) // block
5548 )
5549 {
5550 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 +02005551 _res = _PyAST_match_case ( pattern , guard , body , p -> arena );
Brandt Bucher145bf262021-02-26 14:51:55 -08005552 if (_res == NULL && PyErr_Occurred()) {
5553 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005554 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005555 return NULL;
5556 }
5557 goto done;
5558 }
5559 p->mark = _mark;
5560 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' block"));
5562 }
5563 _res = NULL;
5564 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005565 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005566 return _res;
5567}
5568
5569// guard: 'if' named_expression
5570static expr_ty
5571guard_rule(Parser *p)
5572{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005573 if (p->level++ == MAXSTACK) {
5574 p->error_indicator = 1;
5575 PyErr_NoMemory();
5576 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005577 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005578 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005579 return NULL;
5580 }
5581 expr_ty _res = NULL;
5582 int _mark = p->mark;
5583 { // 'if' named_expression
5584 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005585 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005586 return NULL;
5587 }
5588 D(fprintf(stderr, "%*c> guard[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5589 Token * _keyword;
5590 expr_ty guard;
5591 if (
5592 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
5593 &&
5594 (guard = named_expression_rule(p)) // named_expression
5595 )
5596 {
5597 D(fprintf(stderr, "%*c+ guard[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5598 _res = guard;
5599 if (_res == NULL && PyErr_Occurred()) {
5600 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005601 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005602 return NULL;
5603 }
5604 goto done;
5605 }
5606 p->mark = _mark;
5607 D(fprintf(stderr, "%*c%s guard[%d-%d]: %s failed!\n", p->level, ' ',
5608 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression"));
5609 }
5610 _res = NULL;
5611 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005612 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005613 return _res;
5614}
5615
5616// patterns: open_sequence_pattern | pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005617static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005618patterns_rule(Parser *p)
5619{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005620 if (p->level++ == MAXSTACK) {
5621 p->error_indicator = 1;
5622 PyErr_NoMemory();
5623 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005624 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005625 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005626 return NULL;
5627 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005628 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005629 int _mark = p->mark;
5630 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5631 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005632 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005633 return NULL;
5634 }
5635 int _start_lineno = p->tokens[_mark]->lineno;
5636 UNUSED(_start_lineno); // Only used by EXTRA macro
5637 int _start_col_offset = p->tokens[_mark]->col_offset;
5638 UNUSED(_start_col_offset); // Only used by EXTRA macro
5639 { // open_sequence_pattern
5640 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005641 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005642 return NULL;
5643 }
5644 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005645 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08005646 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005647 (patterns = (asdl_pattern_seq*)open_sequence_pattern_rule(p)) // open_sequence_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08005648 )
5649 {
5650 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
5651 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5652 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005653 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005654 return NULL;
5655 }
5656 int _end_lineno = _token->end_lineno;
5657 UNUSED(_end_lineno); // Only used by EXTRA macro
5658 int _end_col_offset = _token->end_col_offset;
5659 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005660 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005661 if (_res == NULL && PyErr_Occurred()) {
5662 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005663 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005664 return NULL;
5665 }
5666 goto done;
5667 }
5668 p->mark = _mark;
5669 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5670 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "open_sequence_pattern"));
5671 }
5672 { // pattern
5673 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005674 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005675 return NULL;
5676 }
5677 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005678 pattern_ty pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005679 if (
5680 (pattern_var = pattern_rule(p)) // pattern
5681 )
5682 {
5683 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
5684 _res = pattern_var;
5685 goto done;
5686 }
5687 p->mark = _mark;
5688 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5689 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
5690 }
5691 _res = NULL;
5692 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005693 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005694 return _res;
5695}
5696
5697// pattern: as_pattern | or_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005698static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005699pattern_rule(Parser *p)
5700{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005701 if (p->level++ == MAXSTACK) {
5702 p->error_indicator = 1;
5703 PyErr_NoMemory();
5704 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005705 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005706 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005707 return NULL;
5708 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005709 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005710 int _mark = p->mark;
5711 { // as_pattern
5712 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005713 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005714 return NULL;
5715 }
5716 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "as_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005717 pattern_ty as_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005718 if (
5719 (as_pattern_var = as_pattern_rule(p)) // as_pattern
5720 )
5721 {
5722 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "as_pattern"));
5723 _res = as_pattern_var;
5724 goto done;
5725 }
5726 p->mark = _mark;
5727 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5728 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "as_pattern"));
5729 }
5730 { // or_pattern
5731 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005732 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005733 return NULL;
5734 }
5735 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005736 pattern_ty or_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005737 if (
5738 (or_pattern_var = or_pattern_rule(p)) // or_pattern
5739 )
5740 {
5741 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern"));
5742 _res = or_pattern_var;
5743 goto done;
5744 }
5745 p->mark = _mark;
5746 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern"));
5748 }
5749 _res = NULL;
5750 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005751 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005752 return _res;
5753}
5754
Pablo Galindoa8c418d2021-06-18 22:15:57 +01005755// as_pattern: or_pattern 'as' pattern_capture_target | invalid_as_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005756static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005757as_pattern_rule(Parser *p)
5758{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005759 if (p->level++ == MAXSTACK) {
5760 p->error_indicator = 1;
5761 PyErr_NoMemory();
5762 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005763 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005764 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005765 return NULL;
5766 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005767 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005768 int _mark = p->mark;
5769 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5770 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005771 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005772 return NULL;
5773 }
5774 int _start_lineno = p->tokens[_mark]->lineno;
5775 UNUSED(_start_lineno); // Only used by EXTRA macro
5776 int _start_col_offset = p->tokens[_mark]->col_offset;
5777 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005778 { // or_pattern 'as' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08005779 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005780 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005781 return NULL;
5782 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005783 D(fprintf(stderr, "%*c> as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08005784 Token * _keyword;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005785 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08005786 expr_ty target;
5787 if (
5788 (pattern = or_pattern_rule(p)) // or_pattern
5789 &&
5790 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
5791 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005792 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08005793 )
5794 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005795 D(fprintf(stderr, "%*c+ as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08005796 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5797 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005798 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005799 return NULL;
5800 }
5801 int _end_lineno = _token->end_lineno;
5802 UNUSED(_end_lineno); // Only used by EXTRA macro
5803 int _end_col_offset = _token->end_col_offset;
5804 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005805 _res = _PyAST_MatchAs ( pattern , target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005806 if (_res == NULL && PyErr_Occurred()) {
5807 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005808 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005809 return NULL;
5810 }
5811 goto done;
5812 }
5813 p->mark = _mark;
5814 D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005815 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08005816 }
Pablo Galindoa8c418d2021-06-18 22:15:57 +01005817 if (p->call_invalid_rules) { // invalid_as_pattern
5818 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005819 p->level--;
Pablo Galindoa8c418d2021-06-18 22:15:57 +01005820 return NULL;
5821 }
5822 D(fprintf(stderr, "%*c> as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_as_pattern"));
5823 void *invalid_as_pattern_var;
5824 if (
5825 (invalid_as_pattern_var = invalid_as_pattern_rule(p)) // invalid_as_pattern
5826 )
5827 {
5828 D(fprintf(stderr, "%*c+ as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_as_pattern"));
5829 _res = invalid_as_pattern_var;
5830 goto done;
5831 }
5832 p->mark = _mark;
5833 D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5834 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_as_pattern"));
5835 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005836 _res = NULL;
5837 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005838 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005839 return _res;
5840}
5841
5842// or_pattern: '|'.closed_pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005843static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005844or_pattern_rule(Parser *p)
5845{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005846 if (p->level++ == MAXSTACK) {
5847 p->error_indicator = 1;
5848 PyErr_NoMemory();
5849 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005850 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005851 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005852 return NULL;
5853 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005854 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005855 int _mark = p->mark;
5856 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5857 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005858 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005859 return NULL;
5860 }
5861 int _start_lineno = p->tokens[_mark]->lineno;
5862 UNUSED(_start_lineno); // Only used by EXTRA macro
5863 int _start_col_offset = p->tokens[_mark]->col_offset;
5864 UNUSED(_start_col_offset); // Only used by EXTRA macro
5865 { // '|'.closed_pattern+
5866 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005867 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005868 return NULL;
5869 }
5870 D(fprintf(stderr, "%*c> or_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005871 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08005872 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005873 (patterns = (asdl_pattern_seq*)_gather_51_rule(p)) // '|'.closed_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08005874 )
5875 {
5876 D(fprintf(stderr, "%*c+ or_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
5877 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5878 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005879 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005880 return NULL;
5881 }
5882 int _end_lineno = _token->end_lineno;
5883 UNUSED(_end_lineno); // Only used by EXTRA macro
5884 int _end_col_offset = _token->end_col_offset;
5885 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005886 _res = asdl_seq_LEN ( patterns ) == 1 ? asdl_seq_GET ( patterns , 0 ) : _PyAST_MatchOr ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005887 if (_res == NULL && PyErr_Occurred()) {
5888 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005889 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005890 return NULL;
5891 }
5892 goto done;
5893 }
5894 p->mark = _mark;
5895 D(fprintf(stderr, "%*c%s or_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5896 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|'.closed_pattern+"));
5897 }
5898 _res = NULL;
5899 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005900 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005901 return _res;
5902}
5903
5904// closed_pattern:
5905// | literal_pattern
5906// | capture_pattern
5907// | wildcard_pattern
5908// | value_pattern
5909// | group_pattern
5910// | sequence_pattern
5911// | mapping_pattern
5912// | class_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005913static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005914closed_pattern_rule(Parser *p)
5915{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005916 if (p->level++ == MAXSTACK) {
5917 p->error_indicator = 1;
5918 PyErr_NoMemory();
5919 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005920 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005921 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005922 return NULL;
5923 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005924 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005925 int _mark = p->mark;
5926 { // literal_pattern
5927 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005928 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005929 return NULL;
5930 }
5931 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005932 pattern_ty literal_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005933 if (
5934 (literal_pattern_var = literal_pattern_rule(p)) // literal_pattern
5935 )
5936 {
5937 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
5938 _res = literal_pattern_var;
5939 goto done;
5940 }
5941 p->mark = _mark;
5942 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5943 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern"));
5944 }
5945 { // capture_pattern
5946 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005947 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005948 return NULL;
5949 }
5950 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005951 pattern_ty capture_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005952 if (
5953 (capture_pattern_var = capture_pattern_rule(p)) // capture_pattern
5954 )
5955 {
5956 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
5957 _res = capture_pattern_var;
5958 goto done;
5959 }
5960 p->mark = _mark;
5961 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5962 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern"));
5963 }
5964 { // wildcard_pattern
5965 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005966 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005967 return NULL;
5968 }
5969 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005970 pattern_ty wildcard_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005971 if (
5972 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
5973 )
5974 {
5975 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
5976 _res = wildcard_pattern_var;
5977 goto done;
5978 }
5979 p->mark = _mark;
5980 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5981 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern"));
5982 }
5983 { // value_pattern
5984 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00005985 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08005986 return NULL;
5987 }
5988 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005989 pattern_ty value_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005990 if (
5991 (value_pattern_var = value_pattern_rule(p)) // value_pattern
5992 )
5993 {
5994 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
5995 _res = value_pattern_var;
5996 goto done;
5997 }
5998 p->mark = _mark;
5999 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6000 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern"));
6001 }
6002 { // group_pattern
6003 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006004 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006005 return NULL;
6006 }
6007 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006008 pattern_ty group_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08006009 if (
6010 (group_pattern_var = group_pattern_rule(p)) // group_pattern
6011 )
6012 {
6013 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group_pattern"));
6014 _res = group_pattern_var;
6015 goto done;
6016 }
6017 p->mark = _mark;
6018 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6019 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group_pattern"));
6020 }
6021 { // sequence_pattern
6022 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006023 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006024 return NULL;
6025 }
6026 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006027 pattern_ty sequence_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08006028 if (
6029 (sequence_pattern_var = sequence_pattern_rule(p)) // sequence_pattern
6030 )
6031 {
6032 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
6033 _res = sequence_pattern_var;
6034 goto done;
6035 }
6036 p->mark = _mark;
6037 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6038 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sequence_pattern"));
6039 }
6040 { // mapping_pattern
6041 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006042 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006043 return NULL;
6044 }
6045 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006046 pattern_ty mapping_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08006047 if (
6048 (mapping_pattern_var = mapping_pattern_rule(p)) // mapping_pattern
6049 )
6050 {
6051 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
6052 _res = mapping_pattern_var;
6053 goto done;
6054 }
6055 p->mark = _mark;
6056 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6057 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "mapping_pattern"));
6058 }
6059 { // class_pattern
6060 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006061 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006062 return NULL;
6063 }
6064 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006065 pattern_ty class_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08006066 if (
6067 (class_pattern_var = class_pattern_rule(p)) // class_pattern
6068 )
6069 {
6070 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_pattern"));
6071 _res = class_pattern_var;
6072 goto done;
6073 }
6074 p->mark = _mark;
6075 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6076 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_pattern"));
6077 }
6078 _res = NULL;
6079 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006080 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006081 return _res;
6082}
6083
6084// literal_pattern:
6085// | signed_number !('+' | '-')
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006086// | complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08006087// | strings
6088// | 'None'
6089// | 'True'
6090// | 'False'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006091static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006092literal_pattern_rule(Parser *p)
6093{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006094 if (p->level++ == MAXSTACK) {
6095 p->error_indicator = 1;
6096 PyErr_NoMemory();
6097 }
Brandt Bucher145bf262021-02-26 14:51:55 -08006098 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006099 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006100 return NULL;
6101 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006102 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08006103 int _mark = p->mark;
6104 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6105 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006106 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006107 return NULL;
6108 }
6109 int _start_lineno = p->tokens[_mark]->lineno;
6110 UNUSED(_start_lineno); // Only used by EXTRA macro
6111 int _start_col_offset = p->tokens[_mark]->col_offset;
6112 UNUSED(_start_col_offset); // Only used by EXTRA macro
6113 { // signed_number !('+' | '-')
6114 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006115 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006116 return NULL;
6117 }
6118 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006119 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08006120 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006121 (value = signed_number_rule(p)) // signed_number
Brandt Bucher145bf262021-02-26 14:51:55 -08006122 &&
6123 _PyPegen_lookahead(0, _tmp_53_rule, p)
6124 )
6125 {
6126 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006127 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6128 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006129 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006130 return NULL;
6131 }
6132 int _end_lineno = _token->end_lineno;
6133 UNUSED(_end_lineno); // Only used by EXTRA macro
6134 int _end_col_offset = _token->end_col_offset;
6135 UNUSED(_end_col_offset); // Only used by EXTRA macro
6136 _res = _PyAST_MatchValue ( value , EXTRA );
6137 if (_res == NULL && PyErr_Occurred()) {
6138 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006139 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006140 return NULL;
6141 }
Brandt Bucher145bf262021-02-26 14:51:55 -08006142 goto done;
6143 }
6144 p->mark = _mark;
6145 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
6147 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006148 { // complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08006149 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006150 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006151 return NULL;
6152 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006153 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "complex_number"));
6154 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08006155 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006156 (value = complex_number_rule(p)) // complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08006157 )
6158 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006159 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "complex_number"));
Brandt Bucher145bf262021-02-26 14:51:55 -08006160 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6161 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006162 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006163 return NULL;
6164 }
6165 int _end_lineno = _token->end_lineno;
6166 UNUSED(_end_lineno); // Only used by EXTRA macro
6167 int _end_col_offset = _token->end_col_offset;
6168 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006169 _res = _PyAST_MatchValue ( value , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006170 if (_res == NULL && PyErr_Occurred()) {
6171 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006172 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006173 return NULL;
6174 }
6175 goto done;
6176 }
6177 p->mark = _mark;
6178 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006179 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number"));
Brandt Bucher145bf262021-02-26 14:51:55 -08006180 }
6181 { // strings
6182 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006183 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006184 return NULL;
6185 }
6186 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006187 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08006188 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006189 (value = strings_rule(p)) // strings
Brandt Bucher145bf262021-02-26 14:51:55 -08006190 )
6191 {
6192 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006193 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6194 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006195 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006196 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
6202 _res = _PyAST_MatchValue ( value , EXTRA );
6203 if (_res == NULL && PyErr_Occurred()) {
6204 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006205 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006206 return NULL;
6207 }
Brandt Bucher145bf262021-02-26 14:51:55 -08006208 goto done;
6209 }
6210 p->mark = _mark;
6211 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
6213 }
6214 { // 'None'
6215 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006216 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006217 return NULL;
6218 }
6219 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
6220 Token * _keyword;
6221 if (
6222 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
6223 )
6224 {
6225 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
6226 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6227 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006228 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006229 return NULL;
6230 }
6231 int _end_lineno = _token->end_lineno;
6232 UNUSED(_end_lineno); // Only used by EXTRA macro
6233 int _end_col_offset = _token->end_col_offset;
6234 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006235 _res = _PyAST_MatchSingleton ( Py_None , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006236 if (_res == NULL && PyErr_Occurred()) {
6237 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006238 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006239 return NULL;
6240 }
6241 goto done;
6242 }
6243 p->mark = _mark;
6244 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6245 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
6246 }
6247 { // 'True'
6248 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006249 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006250 return NULL;
6251 }
6252 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
6253 Token * _keyword;
6254 if (
6255 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
6256 )
6257 {
6258 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
6259 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6260 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006261 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006262 return NULL;
6263 }
6264 int _end_lineno = _token->end_lineno;
6265 UNUSED(_end_lineno); // Only used by EXTRA macro
6266 int _end_col_offset = _token->end_col_offset;
6267 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006268 _res = _PyAST_MatchSingleton ( Py_True , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006269 if (_res == NULL && PyErr_Occurred()) {
6270 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006271 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006272 return NULL;
6273 }
6274 goto done;
6275 }
6276 p->mark = _mark;
6277 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6278 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
6279 }
6280 { // 'False'
6281 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006282 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006283 return NULL;
6284 }
6285 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
6286 Token * _keyword;
6287 if (
6288 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
6289 )
6290 {
6291 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
6292 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6293 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006294 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006295 return NULL;
6296 }
6297 int _end_lineno = _token->end_lineno;
6298 UNUSED(_end_lineno); // Only used by EXTRA macro
6299 int _end_col_offset = _token->end_col_offset;
6300 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006301 _res = _PyAST_MatchSingleton ( Py_False , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006302 if (_res == NULL && PyErr_Occurred()) {
6303 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006304 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006305 return NULL;
6306 }
6307 goto done;
6308 }
6309 p->mark = _mark;
6310 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6311 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
6312 }
6313 _res = NULL;
6314 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006315 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006316 return _res;
6317}
6318
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006319// literal_expr:
6320// | signed_number !('+' | '-')
6321// | complex_number
6322// | strings
6323// | 'None'
6324// | 'True'
6325// | 'False'
6326static expr_ty
6327literal_expr_rule(Parser *p)
6328{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006329 if (p->level++ == MAXSTACK) {
6330 p->error_indicator = 1;
6331 PyErr_NoMemory();
6332 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006333 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006334 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006335 return NULL;
6336 }
6337 expr_ty _res = NULL;
6338 int _mark = p->mark;
6339 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6340 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006341 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006342 return NULL;
6343 }
6344 int _start_lineno = p->tokens[_mark]->lineno;
6345 UNUSED(_start_lineno); // Only used by EXTRA macro
6346 int _start_col_offset = p->tokens[_mark]->col_offset;
6347 UNUSED(_start_col_offset); // Only used by EXTRA macro
6348 { // signed_number !('+' | '-')
6349 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006350 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006351 return NULL;
6352 }
6353 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
6354 expr_ty signed_number_var;
6355 if (
6356 (signed_number_var = signed_number_rule(p)) // signed_number
6357 &&
6358 _PyPegen_lookahead(0, _tmp_54_rule, p)
6359 )
6360 {
6361 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
6362 _res = signed_number_var;
6363 goto done;
6364 }
6365 p->mark = _mark;
6366 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6367 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
6368 }
6369 { // complex_number
6370 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006371 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006372 return NULL;
6373 }
6374 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "complex_number"));
6375 expr_ty complex_number_var;
6376 if (
6377 (complex_number_var = complex_number_rule(p)) // complex_number
6378 )
6379 {
6380 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "complex_number"));
6381 _res = complex_number_var;
6382 goto done;
6383 }
6384 p->mark = _mark;
6385 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6386 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number"));
6387 }
6388 { // strings
6389 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006390 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006391 return NULL;
6392 }
6393 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
6394 expr_ty strings_var;
6395 if (
6396 (strings_var = strings_rule(p)) // strings
6397 )
6398 {
6399 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
6400 _res = strings_var;
6401 goto done;
6402 }
6403 p->mark = _mark;
6404 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6405 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
6406 }
6407 { // 'None'
6408 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006409 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006410 return NULL;
6411 }
6412 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
6413 Token * _keyword;
6414 if (
6415 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
6416 )
6417 {
6418 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
6419 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6420 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006421 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006422 return NULL;
6423 }
6424 int _end_lineno = _token->end_lineno;
6425 UNUSED(_end_lineno); // Only used by EXTRA macro
6426 int _end_col_offset = _token->end_col_offset;
6427 UNUSED(_end_col_offset); // Only used by EXTRA macro
6428 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
6429 if (_res == NULL && PyErr_Occurred()) {
6430 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006431 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006432 return NULL;
6433 }
6434 goto done;
6435 }
6436 p->mark = _mark;
6437 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
6439 }
6440 { // 'True'
6441 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006442 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006443 return NULL;
6444 }
6445 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
6446 Token * _keyword;
6447 if (
6448 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
6449 )
6450 {
6451 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
6452 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6453 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006454 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006455 return NULL;
6456 }
6457 int _end_lineno = _token->end_lineno;
6458 UNUSED(_end_lineno); // Only used by EXTRA macro
6459 int _end_col_offset = _token->end_col_offset;
6460 UNUSED(_end_col_offset); // Only used by EXTRA macro
6461 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
6462 if (_res == NULL && PyErr_Occurred()) {
6463 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006464 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006465 return NULL;
6466 }
6467 goto done;
6468 }
6469 p->mark = _mark;
6470 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
6472 }
6473 { // 'False'
6474 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006475 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006476 return NULL;
6477 }
6478 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
6479 Token * _keyword;
6480 if (
6481 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
6482 )
6483 {
6484 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
6485 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6486 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006487 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006488 return NULL;
6489 }
6490 int _end_lineno = _token->end_lineno;
6491 UNUSED(_end_lineno); // Only used by EXTRA macro
6492 int _end_col_offset = _token->end_col_offset;
6493 UNUSED(_end_col_offset); // Only used by EXTRA macro
6494 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
6495 if (_res == NULL && PyErr_Occurred()) {
6496 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006497 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006498 return NULL;
6499 }
6500 goto done;
6501 }
6502 p->mark = _mark;
6503 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6504 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
6505 }
6506 _res = NULL;
6507 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006508 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006509 return _res;
6510}
6511
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006512// complex_number:
6513// | signed_real_number '+' imaginary_number
6514// | signed_real_number '-' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006515static expr_ty
6516complex_number_rule(Parser *p)
6517{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006518 if (p->level++ == MAXSTACK) {
6519 p->error_indicator = 1;
6520 PyErr_NoMemory();
6521 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006522 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006523 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006524 return NULL;
6525 }
6526 expr_ty _res = NULL;
6527 int _mark = p->mark;
6528 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6529 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006530 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006531 return NULL;
6532 }
6533 int _start_lineno = p->tokens[_mark]->lineno;
6534 UNUSED(_start_lineno); // Only used by EXTRA macro
6535 int _start_col_offset = p->tokens[_mark]->col_offset;
6536 UNUSED(_start_col_offset); // Only used by EXTRA macro
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006537 { // signed_real_number '+' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006538 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006539 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006540 return NULL;
6541 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006542 D(fprintf(stderr, "%*c> complex_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_real_number '+' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006543 Token * _literal;
6544 expr_ty imag;
6545 expr_ty real;
6546 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006547 (real = signed_real_number_rule(p)) // signed_real_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006548 &&
6549 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
6550 &&
6551 (imag = imaginary_number_rule(p)) // imaginary_number
6552 )
6553 {
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006554 D(fprintf(stderr, "%*c+ complex_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_real_number '+' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006555 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6556 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006557 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006558 return NULL;
6559 }
6560 int _end_lineno = _token->end_lineno;
6561 UNUSED(_end_lineno); // Only used by EXTRA macro
6562 int _end_col_offset = _token->end_col_offset;
6563 UNUSED(_end_col_offset); // Only used by EXTRA macro
6564 _res = _PyAST_BinOp ( real , Add , imag , EXTRA );
6565 if (_res == NULL && PyErr_Occurred()) {
6566 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006567 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006568 return NULL;
6569 }
6570 goto done;
6571 }
6572 p->mark = _mark;
6573 D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006574 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_real_number '+' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006575 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006576 { // signed_real_number '-' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006577 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006578 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006579 return NULL;
6580 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006581 D(fprintf(stderr, "%*c> complex_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_real_number '-' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006582 Token * _literal;
6583 expr_ty imag;
6584 expr_ty real;
6585 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006586 (real = signed_real_number_rule(p)) // signed_real_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006587 &&
6588 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6589 &&
6590 (imag = imaginary_number_rule(p)) // imaginary_number
6591 )
6592 {
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006593 D(fprintf(stderr, "%*c+ complex_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_real_number '-' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006594 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6595 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006596 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006597 return NULL;
6598 }
6599 int _end_lineno = _token->end_lineno;
6600 UNUSED(_end_lineno); // Only used by EXTRA macro
6601 int _end_col_offset = _token->end_col_offset;
6602 UNUSED(_end_col_offset); // Only used by EXTRA macro
6603 _res = _PyAST_BinOp ( real , Sub , imag , EXTRA );
6604 if (_res == NULL && PyErr_Occurred()) {
6605 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006606 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006607 return NULL;
6608 }
6609 goto done;
6610 }
6611 p->mark = _mark;
6612 D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006613 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_real_number '-' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006614 }
6615 _res = NULL;
6616 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006617 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006618 return _res;
6619}
6620
Brandt Bucher145bf262021-02-26 14:51:55 -08006621// signed_number: NUMBER | '-' NUMBER
6622static expr_ty
6623signed_number_rule(Parser *p)
6624{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006625 if (p->level++ == MAXSTACK) {
6626 p->error_indicator = 1;
6627 PyErr_NoMemory();
6628 }
Brandt Bucher145bf262021-02-26 14:51:55 -08006629 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006630 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006631 return NULL;
6632 }
6633 expr_ty _res = NULL;
6634 int _mark = p->mark;
6635 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6636 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006637 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006638 return NULL;
6639 }
6640 int _start_lineno = p->tokens[_mark]->lineno;
6641 UNUSED(_start_lineno); // Only used by EXTRA macro
6642 int _start_col_offset = p->tokens[_mark]->col_offset;
6643 UNUSED(_start_col_offset); // Only used by EXTRA macro
6644 { // NUMBER
6645 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006646 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006647 return NULL;
6648 }
6649 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6650 expr_ty number_var;
6651 if (
6652 (number_var = _PyPegen_number_token(p)) // NUMBER
6653 )
6654 {
6655 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6656 _res = number_var;
6657 goto done;
6658 }
6659 p->mark = _mark;
6660 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6661 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6662 }
6663 { // '-' NUMBER
6664 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006665 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006666 return NULL;
6667 }
6668 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6669 Token * _literal;
6670 expr_ty number;
6671 if (
6672 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6673 &&
6674 (number = _PyPegen_number_token(p)) // NUMBER
6675 )
6676 {
6677 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6678 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6679 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006680 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006681 return NULL;
6682 }
6683 int _end_lineno = _token->end_lineno;
6684 UNUSED(_end_lineno); // Only used by EXTRA macro
6685 int _end_col_offset = _token->end_col_offset;
6686 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006687 _res = _PyAST_UnaryOp ( USub , number , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006688 if (_res == NULL && PyErr_Occurred()) {
6689 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006690 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006691 return NULL;
6692 }
6693 goto done;
6694 }
6695 p->mark = _mark;
6696 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6697 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' NUMBER"));
6698 }
6699 _res = NULL;
6700 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006701 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006702 return _res;
6703}
6704
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006705// signed_real_number: real_number | '-' real_number
6706static expr_ty
6707signed_real_number_rule(Parser *p)
6708{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006709 if (p->level++ == MAXSTACK) {
6710 p->error_indicator = 1;
6711 PyErr_NoMemory();
6712 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006713 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006714 p->level--;
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006715 return NULL;
6716 }
6717 expr_ty _res = NULL;
6718 int _mark = p->mark;
6719 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6720 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006721 p->level--;
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006722 return NULL;
6723 }
6724 int _start_lineno = p->tokens[_mark]->lineno;
6725 UNUSED(_start_lineno); // Only used by EXTRA macro
6726 int _start_col_offset = p->tokens[_mark]->col_offset;
6727 UNUSED(_start_col_offset); // Only used by EXTRA macro
6728 { // real_number
6729 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006730 p->level--;
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006731 return NULL;
6732 }
6733 D(fprintf(stderr, "%*c> signed_real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "real_number"));
6734 expr_ty real_number_var;
6735 if (
6736 (real_number_var = real_number_rule(p)) // real_number
6737 )
6738 {
6739 D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "real_number"));
6740 _res = real_number_var;
6741 goto done;
6742 }
6743 p->mark = _mark;
6744 D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ',
6745 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "real_number"));
6746 }
6747 { // '-' real_number
6748 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006749 p->level--;
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006750 return NULL;
6751 }
6752 D(fprintf(stderr, "%*c> signed_real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' real_number"));
6753 Token * _literal;
6754 expr_ty real;
6755 if (
6756 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6757 &&
6758 (real = real_number_rule(p)) // real_number
6759 )
6760 {
6761 D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' real_number"));
6762 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6763 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006764 p->level--;
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006765 return NULL;
6766 }
6767 int _end_lineno = _token->end_lineno;
6768 UNUSED(_end_lineno); // Only used by EXTRA macro
6769 int _end_col_offset = _token->end_col_offset;
6770 UNUSED(_end_col_offset); // Only used by EXTRA macro
6771 _res = _PyAST_UnaryOp ( USub , real , EXTRA );
6772 if (_res == NULL && PyErr_Occurred()) {
6773 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006774 p->level--;
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006775 return NULL;
6776 }
6777 goto done;
6778 }
6779 p->mark = _mark;
6780 D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ',
6781 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' real_number"));
6782 }
6783 _res = NULL;
6784 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006785 p->level--;
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006786 return _res;
6787}
6788
6789// real_number: NUMBER
6790static expr_ty
6791real_number_rule(Parser *p)
6792{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006793 if (p->level++ == MAXSTACK) {
6794 p->error_indicator = 1;
6795 PyErr_NoMemory();
6796 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006797 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006798 p->level--;
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006799 return NULL;
6800 }
6801 expr_ty _res = NULL;
6802 int _mark = p->mark;
6803 { // NUMBER
6804 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006805 p->level--;
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006806 return NULL;
6807 }
6808 D(fprintf(stderr, "%*c> real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6809 expr_ty real;
6810 if (
6811 (real = _PyPegen_number_token(p)) // NUMBER
6812 )
6813 {
6814 D(fprintf(stderr, "%*c+ real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6815 _res = _PyPegen_ensure_real ( p , real );
6816 if (_res == NULL && PyErr_Occurred()) {
6817 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006818 p->level--;
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006819 return NULL;
6820 }
6821 goto done;
6822 }
6823 p->mark = _mark;
6824 D(fprintf(stderr, "%*c%s real_number[%d-%d]: %s failed!\n", p->level, ' ',
6825 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6826 }
6827 _res = NULL;
6828 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006829 p->level--;
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006830 return _res;
6831}
6832
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006833// imaginary_number: NUMBER
Brandt Bucher145bf262021-02-26 14:51:55 -08006834static expr_ty
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006835imaginary_number_rule(Parser *p)
6836{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006837 if (p->level++ == MAXSTACK) {
6838 p->error_indicator = 1;
6839 PyErr_NoMemory();
6840 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006841 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006842 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006843 return NULL;
6844 }
6845 expr_ty _res = NULL;
6846 int _mark = p->mark;
6847 { // NUMBER
6848 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006849 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006850 return NULL;
6851 }
6852 D(fprintf(stderr, "%*c> imaginary_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6853 expr_ty imag;
6854 if (
6855 (imag = _PyPegen_number_token(p)) // NUMBER
6856 )
6857 {
6858 D(fprintf(stderr, "%*c+ imaginary_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6859 _res = _PyPegen_ensure_imaginary ( p , imag );
6860 if (_res == NULL && PyErr_Occurred()) {
6861 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006862 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006863 return NULL;
6864 }
6865 goto done;
6866 }
6867 p->mark = _mark;
6868 D(fprintf(stderr, "%*c%s imaginary_number[%d-%d]: %s failed!\n", p->level, ' ',
6869 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6870 }
6871 _res = NULL;
6872 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006873 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006874 return _res;
6875}
6876
6877// capture_pattern: pattern_capture_target
6878static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006879capture_pattern_rule(Parser *p)
6880{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006881 if (p->level++ == MAXSTACK) {
6882 p->error_indicator = 1;
6883 PyErr_NoMemory();
6884 }
Brandt Bucher145bf262021-02-26 14:51:55 -08006885 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006886 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006887 return NULL;
6888 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006889 pattern_ty _res = NULL;
6890 int _mark = p->mark;
6891 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6892 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006893 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006894 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 { // pattern_capture_target
6901 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006902 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006903 return NULL;
6904 }
6905 D(fprintf(stderr, "%*c> capture_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern_capture_target"));
6906 expr_ty target;
6907 if (
6908 (target = pattern_capture_target_rule(p)) // pattern_capture_target
6909 )
6910 {
6911 D(fprintf(stderr, "%*c+ capture_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern_capture_target"));
6912 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6913 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006914 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006915 return NULL;
6916 }
6917 int _end_lineno = _token->end_lineno;
6918 UNUSED(_end_lineno); // Only used by EXTRA macro
6919 int _end_col_offset = _token->end_col_offset;
6920 UNUSED(_end_col_offset); // Only used by EXTRA macro
6921 _res = _PyAST_MatchAs ( NULL , target -> v . Name . id , EXTRA );
6922 if (_res == NULL && PyErr_Occurred()) {
6923 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006924 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006925 return NULL;
6926 }
6927 goto done;
6928 }
6929 p->mark = _mark;
6930 D(fprintf(stderr, "%*c%s capture_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern_capture_target"));
6932 }
6933 _res = NULL;
6934 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006935 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006936 return _res;
6937}
6938
6939// pattern_capture_target: !"_" NAME !('.' | '(' | '=')
6940static expr_ty
6941pattern_capture_target_rule(Parser *p)
6942{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006943 if (p->level++ == MAXSTACK) {
6944 p->error_indicator = 1;
6945 PyErr_NoMemory();
6946 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006947 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006948 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006949 return NULL;
6950 }
Brandt Bucher145bf262021-02-26 14:51:55 -08006951 expr_ty _res = NULL;
6952 int _mark = p->mark;
6953 { // !"_" NAME !('.' | '(' | '=')
6954 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006955 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006956 return NULL;
6957 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006958 D(fprintf(stderr, "%*c> pattern_capture_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
Brandt Bucher145bf262021-02-26 14:51:55 -08006959 expr_ty name;
6960 if (
6961 _PyPegen_lookahead_with_string(0, _PyPegen_expect_soft_keyword, p, "_")
6962 &&
6963 (name = _PyPegen_name_token(p)) // NAME
6964 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006965 _PyPegen_lookahead(0, _tmp_55_rule, p)
Brandt Bucher145bf262021-02-26 14:51:55 -08006966 )
6967 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006968 D(fprintf(stderr, "%*c+ pattern_capture_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
Brandt Bucher145bf262021-02-26 14:51:55 -08006969 _res = _PyPegen_set_expr_context ( p , name , Store );
6970 if (_res == NULL && PyErr_Occurred()) {
6971 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006972 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006973 return NULL;
6974 }
6975 goto done;
6976 }
6977 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006978 D(fprintf(stderr, "%*c%s pattern_capture_target[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -08006979 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
6980 }
6981 _res = NULL;
6982 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006983 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006984 return _res;
6985}
6986
6987// wildcard_pattern: "_"
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006988static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006989wildcard_pattern_rule(Parser *p)
6990{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006991 if (p->level++ == MAXSTACK) {
6992 p->error_indicator = 1;
6993 PyErr_NoMemory();
6994 }
Brandt Bucher145bf262021-02-26 14:51:55 -08006995 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00006996 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006997 return NULL;
6998 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006999 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007000 int _mark = p->mark;
7001 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7002 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007003 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007004 return NULL;
7005 }
7006 int _start_lineno = p->tokens[_mark]->lineno;
7007 UNUSED(_start_lineno); // Only used by EXTRA macro
7008 int _start_col_offset = p->tokens[_mark]->col_offset;
7009 UNUSED(_start_col_offset); // Only used by EXTRA macro
7010 { // "_"
7011 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007012 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007013 return NULL;
7014 }
7015 D(fprintf(stderr, "%*c> wildcard_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"_\""));
7016 expr_ty _keyword;
7017 if (
7018 (_keyword = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"'
7019 )
7020 {
7021 D(fprintf(stderr, "%*c+ wildcard_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"_\""));
7022 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7023 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007024 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007025 return NULL;
7026 }
7027 int _end_lineno = _token->end_lineno;
7028 UNUSED(_end_lineno); // Only used by EXTRA macro
7029 int _end_col_offset = _token->end_col_offset;
7030 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007031 _res = _PyAST_MatchAs ( NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007032 if (_res == NULL && PyErr_Occurred()) {
7033 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007034 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007035 return NULL;
7036 }
7037 goto done;
7038 }
7039 p->mark = _mark;
7040 D(fprintf(stderr, "%*c%s wildcard_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7041 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"_\""));
7042 }
7043 _res = NULL;
7044 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007045 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007046 return _res;
7047}
7048
7049// value_pattern: attr !('.' | '(' | '=')
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007050static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007051value_pattern_rule(Parser *p)
7052{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007053 if (p->level++ == MAXSTACK) {
7054 p->error_indicator = 1;
7055 PyErr_NoMemory();
7056 }
Brandt Bucher145bf262021-02-26 14:51:55 -08007057 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007058 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007059 return NULL;
7060 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007061 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007062 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007063 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7064 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007065 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007066 return NULL;
7067 }
7068 int _start_lineno = p->tokens[_mark]->lineno;
7069 UNUSED(_start_lineno); // Only used by EXTRA macro
7070 int _start_col_offset = p->tokens[_mark]->col_offset;
7071 UNUSED(_start_col_offset); // Only used by EXTRA macro
Brandt Bucher145bf262021-02-26 14:51:55 -08007072 { // attr !('.' | '(' | '=')
7073 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007074 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007075 return NULL;
7076 }
7077 D(fprintf(stderr, "%*c> value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
7078 expr_ty attr;
7079 if (
7080 (attr = attr_rule(p)) // attr
7081 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007082 _PyPegen_lookahead(0, _tmp_56_rule, p)
Brandt Bucher145bf262021-02-26 14:51:55 -08007083 )
7084 {
7085 D(fprintf(stderr, "%*c+ value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007086 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7087 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007088 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007089 return NULL;
7090 }
7091 int _end_lineno = _token->end_lineno;
7092 UNUSED(_end_lineno); // Only used by EXTRA macro
7093 int _end_col_offset = _token->end_col_offset;
7094 UNUSED(_end_col_offset); // Only used by EXTRA macro
7095 _res = _PyAST_MatchValue ( attr , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007096 if (_res == NULL && PyErr_Occurred()) {
7097 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007098 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007099 return NULL;
7100 }
7101 goto done;
7102 }
7103 p->mark = _mark;
7104 D(fprintf(stderr, "%*c%s value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr !('.' | '(' | '=')"));
7106 }
7107 _res = NULL;
7108 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007109 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007110 return _res;
7111}
7112
7113// Left-recursive
7114// attr: name_or_attr '.' NAME
7115static expr_ty attr_raw(Parser *);
7116static expr_ty
7117attr_rule(Parser *p)
7118{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007119 if (p->level++ == MAXSTACK) {
7120 p->error_indicator = 1;
7121 PyErr_NoMemory();
7122 }
Brandt Bucher145bf262021-02-26 14:51:55 -08007123 expr_ty _res = NULL;
7124 if (_PyPegen_is_memoized(p, attr_type, &_res)) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007125 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007126 return _res;
7127 }
7128 int _mark = p->mark;
7129 int _resmark = p->mark;
7130 while (1) {
7131 int tmpvar_1 = _PyPegen_update_memo(p, _mark, attr_type, _res);
7132 if (tmpvar_1) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007133 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007134 return _res;
7135 }
7136 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07007137 p->in_raw_rule++;
Brandt Bucher145bf262021-02-26 14:51:55 -08007138 void *_raw = attr_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07007139 p->in_raw_rule--;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007140 if (p->error_indicator) {
7141 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007142 return NULL;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007143 }
Brandt Bucher145bf262021-02-26 14:51:55 -08007144 if (_raw == NULL || p->mark <= _resmark)
7145 break;
7146 _resmark = p->mark;
7147 _res = _raw;
7148 }
7149 p->mark = _resmark;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007150 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007151 return _res;
7152}
7153static expr_ty
7154attr_raw(Parser *p)
7155{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007156 if (p->level++ == MAXSTACK) {
7157 p->error_indicator = 1;
7158 PyErr_NoMemory();
7159 }
Brandt Bucher145bf262021-02-26 14:51:55 -08007160 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007161 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007162 return NULL;
7163 }
7164 expr_ty _res = NULL;
7165 int _mark = p->mark;
7166 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7167 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007168 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007169 return NULL;
7170 }
7171 int _start_lineno = p->tokens[_mark]->lineno;
7172 UNUSED(_start_lineno); // Only used by EXTRA macro
7173 int _start_col_offset = p->tokens[_mark]->col_offset;
7174 UNUSED(_start_col_offset); // Only used by EXTRA macro
7175 { // name_or_attr '.' NAME
7176 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007177 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007178 return NULL;
7179 }
7180 D(fprintf(stderr, "%*c> attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
7181 Token * _literal;
7182 expr_ty attr;
7183 expr_ty value;
7184 if (
7185 (value = name_or_attr_rule(p)) // name_or_attr
7186 &&
7187 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
7188 &&
7189 (attr = _PyPegen_name_token(p)) // NAME
7190 )
7191 {
7192 D(fprintf(stderr, "%*c+ attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
7193 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7194 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007195 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007196 return NULL;
7197 }
7198 int _end_lineno = _token->end_lineno;
7199 UNUSED(_end_lineno); // Only used by EXTRA macro
7200 int _end_col_offset = _token->end_col_offset;
7201 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007202 _res = _PyAST_Attribute ( value , attr -> v . Name . id , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007203 if (_res == NULL && PyErr_Occurred()) {
7204 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007205 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007206 return NULL;
7207 }
7208 goto done;
7209 }
7210 p->mark = _mark;
7211 D(fprintf(stderr, "%*c%s attr[%d-%d]: %s failed!\n", p->level, ' ',
7212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '.' NAME"));
7213 }
7214 _res = NULL;
7215 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007216 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007217 return _res;
7218}
7219
7220// Left-recursive
7221// name_or_attr: attr | NAME
7222static expr_ty
7223name_or_attr_rule(Parser *p)
7224{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007225 if (p->level++ == MAXSTACK) {
7226 p->error_indicator = 1;
7227 PyErr_NoMemory();
7228 }
Brandt Bucher145bf262021-02-26 14:51:55 -08007229 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007230 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007231 return NULL;
7232 }
7233 expr_ty _res = NULL;
7234 int _mark = p->mark;
7235 { // attr
7236 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007237 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007238 return NULL;
7239 }
7240 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
7241 expr_ty attr_var;
7242 if (
7243 (attr_var = attr_rule(p)) // attr
7244 )
7245 {
7246 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
7247 _res = attr_var;
7248 goto done;
7249 }
7250 p->mark = _mark;
7251 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
7252 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
7253 }
7254 { // NAME
7255 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007256 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007257 return NULL;
7258 }
7259 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
7260 expr_ty name_var;
7261 if (
7262 (name_var = _PyPegen_name_token(p)) // NAME
7263 )
7264 {
7265 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
7266 _res = name_var;
7267 goto done;
7268 }
7269 p->mark = _mark;
7270 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
7271 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
7272 }
7273 _res = NULL;
7274 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007275 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007276 return _res;
7277}
7278
7279// group_pattern: '(' pattern ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007280static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007281group_pattern_rule(Parser *p)
7282{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007283 if (p->level++ == MAXSTACK) {
7284 p->error_indicator = 1;
7285 PyErr_NoMemory();
7286 }
Brandt Bucher145bf262021-02-26 14:51:55 -08007287 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007288 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007289 return NULL;
7290 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007291 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007292 int _mark = p->mark;
7293 { // '(' pattern ')'
7294 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007295 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007296 return NULL;
7297 }
7298 D(fprintf(stderr, "%*c> group_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
7299 Token * _literal;
7300 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007301 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08007302 if (
7303 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7304 &&
7305 (pattern = pattern_rule(p)) // pattern
7306 &&
7307 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7308 )
7309 {
7310 D(fprintf(stderr, "%*c+ group_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
7311 _res = pattern;
7312 if (_res == NULL && PyErr_Occurred()) {
7313 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007314 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007315 return NULL;
7316 }
7317 goto done;
7318 }
7319 p->mark = _mark;
7320 D(fprintf(stderr, "%*c%s group_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7321 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' pattern ')'"));
7322 }
7323 _res = NULL;
7324 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007325 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007326 return _res;
7327}
7328
7329// sequence_pattern: '[' maybe_sequence_pattern? ']' | '(' open_sequence_pattern? ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007330static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007331sequence_pattern_rule(Parser *p)
7332{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007333 if (p->level++ == MAXSTACK) {
7334 p->error_indicator = 1;
7335 PyErr_NoMemory();
7336 }
Brandt Bucher145bf262021-02-26 14:51:55 -08007337 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007338 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007339 return NULL;
7340 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007341 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007342 int _mark = p->mark;
7343 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7344 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007345 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007346 return NULL;
7347 }
7348 int _start_lineno = p->tokens[_mark]->lineno;
7349 UNUSED(_start_lineno); // Only used by EXTRA macro
7350 int _start_col_offset = p->tokens[_mark]->col_offset;
7351 UNUSED(_start_col_offset); // Only used by EXTRA macro
7352 { // '[' maybe_sequence_pattern? ']'
7353 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007354 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007355 return NULL;
7356 }
7357 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7358 Token * _literal;
7359 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007360 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007361 if (
7362 (_literal = _PyPegen_expect_token(p, 9)) // token='['
7363 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02007364 (patterns = maybe_sequence_pattern_rule(p), !p->error_indicator) // maybe_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007365 &&
7366 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
7367 )
7368 {
7369 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7370 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7371 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007372 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007373 return NULL;
7374 }
7375 int _end_lineno = _token->end_lineno;
7376 UNUSED(_end_lineno); // Only used by EXTRA macro
7377 int _end_col_offset = _token->end_col_offset;
7378 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007379 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007380 if (_res == NULL && PyErr_Occurred()) {
7381 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007382 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007383 return NULL;
7384 }
7385 goto done;
7386 }
7387 p->mark = _mark;
7388 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7389 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7390 }
7391 { // '(' open_sequence_pattern? ')'
7392 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007393 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007394 return NULL;
7395 }
7396 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7397 Token * _literal;
7398 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007399 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007400 if (
7401 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7402 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02007403 (patterns = open_sequence_pattern_rule(p), !p->error_indicator) // open_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007404 &&
7405 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7406 )
7407 {
7408 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7409 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7410 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007411 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007412 return NULL;
7413 }
7414 int _end_lineno = _token->end_lineno;
7415 UNUSED(_end_lineno); // Only used by EXTRA macro
7416 int _end_col_offset = _token->end_col_offset;
7417 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007418 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007419 if (_res == NULL && PyErr_Occurred()) {
7420 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007421 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007422 return NULL;
7423 }
7424 goto done;
7425 }
7426 p->mark = _mark;
7427 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7428 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7429 }
7430 _res = NULL;
7431 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007432 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007433 return _res;
7434}
7435
7436// open_sequence_pattern: maybe_star_pattern ',' maybe_sequence_pattern?
7437static asdl_seq*
7438open_sequence_pattern_rule(Parser *p)
7439{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007440 if (p->level++ == MAXSTACK) {
7441 p->error_indicator = 1;
7442 PyErr_NoMemory();
7443 }
Brandt Bucher145bf262021-02-26 14:51:55 -08007444 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007445 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007446 return NULL;
7447 }
7448 asdl_seq* _res = NULL;
7449 int _mark = p->mark;
7450 { // maybe_star_pattern ',' maybe_sequence_pattern?
7451 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007452 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007453 return NULL;
7454 }
7455 D(fprintf(stderr, "%*c> open_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
7456 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007457 pattern_ty pattern;
7458 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007459 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007460 (pattern = maybe_star_pattern_rule(p)) // maybe_star_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007461 &&
7462 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7463 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02007464 (patterns = maybe_sequence_pattern_rule(p), !p->error_indicator) // maybe_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007465 )
7466 {
7467 D(fprintf(stderr, "%*c+ open_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007468 _res = _PyPegen_seq_insert_in_front ( p , pattern , patterns );
Brandt Bucher145bf262021-02-26 14:51:55 -08007469 if (_res == NULL && PyErr_Occurred()) {
7470 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007471 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007472 return NULL;
7473 }
7474 goto done;
7475 }
7476 p->mark = _mark;
7477 D(fprintf(stderr, "%*c%s open_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
7479 }
7480 _res = NULL;
7481 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007482 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007483 return _res;
7484}
7485
7486// maybe_sequence_pattern: ','.maybe_star_pattern+ ','?
7487static asdl_seq*
7488maybe_sequence_pattern_rule(Parser *p)
7489{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007490 if (p->level++ == MAXSTACK) {
7491 p->error_indicator = 1;
7492 PyErr_NoMemory();
7493 }
Brandt Bucher145bf262021-02-26 14:51:55 -08007494 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007495 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007496 return NULL;
7497 }
7498 asdl_seq* _res = NULL;
7499 int _mark = p->mark;
7500 { // ','.maybe_star_pattern+ ','?
7501 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007502 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007503 return NULL;
7504 }
7505 D(fprintf(stderr, "%*c> maybe_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
7506 void *_opt_var;
7507 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007508 asdl_seq * patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007509 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007510 (patterns = _gather_57_rule(p)) // ','.maybe_star_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007511 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02007512 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Brandt Bucher145bf262021-02-26 14:51:55 -08007513 )
7514 {
7515 D(fprintf(stderr, "%*c+ maybe_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007516 _res = patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007517 if (_res == NULL && PyErr_Occurred()) {
7518 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007519 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007520 return NULL;
7521 }
7522 goto done;
7523 }
7524 p->mark = _mark;
7525 D(fprintf(stderr, "%*c%s maybe_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7526 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.maybe_star_pattern+ ','?"));
7527 }
7528 _res = NULL;
7529 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007530 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007531 return _res;
7532}
7533
7534// maybe_star_pattern: star_pattern | pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007535static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007536maybe_star_pattern_rule(Parser *p)
7537{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007538 if (p->level++ == MAXSTACK) {
7539 p->error_indicator = 1;
7540 PyErr_NoMemory();
7541 }
Brandt Bucher145bf262021-02-26 14:51:55 -08007542 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007543 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007544 return NULL;
7545 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007546 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007547 int _mark = p->mark;
7548 { // star_pattern
7549 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007550 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007551 return NULL;
7552 }
7553 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007554 pattern_ty star_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007555 if (
7556 (star_pattern_var = star_pattern_rule(p)) // star_pattern
7557 )
7558 {
7559 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_pattern"));
7560 _res = star_pattern_var;
7561 goto done;
7562 }
7563 p->mark = _mark;
7564 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7565 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_pattern"));
7566 }
7567 { // pattern
7568 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007569 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007570 return NULL;
7571 }
7572 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007573 pattern_ty pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007574 if (
7575 (pattern_var = pattern_rule(p)) // pattern
7576 )
7577 {
7578 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
7579 _res = pattern_var;
7580 goto done;
7581 }
7582 p->mark = _mark;
7583 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
7585 }
7586 _res = NULL;
7587 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007588 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007589 return _res;
7590}
7591
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007592// star_pattern: '*' pattern_capture_target | '*' wildcard_pattern
7593static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007594star_pattern_rule(Parser *p)
7595{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007596 if (p->level++ == MAXSTACK) {
7597 p->error_indicator = 1;
7598 PyErr_NoMemory();
7599 }
Brandt Bucher145bf262021-02-26 14:51:55 -08007600 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007601 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007602 return NULL;
7603 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007604 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007605 int _mark = p->mark;
7606 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7607 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007608 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007609 return NULL;
7610 }
7611 int _start_lineno = p->tokens[_mark]->lineno;
7612 UNUSED(_start_lineno); // Only used by EXTRA macro
7613 int _start_col_offset = p->tokens[_mark]->col_offset;
7614 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007615 { // '*' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007616 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007617 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007618 return NULL;
7619 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007620 D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007621 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007622 expr_ty target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007623 if (
7624 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7625 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007626 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007627 )
7628 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007629 D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007630 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7631 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007632 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007633 return NULL;
7634 }
7635 int _end_lineno = _token->end_lineno;
7636 UNUSED(_end_lineno); // Only used by EXTRA macro
7637 int _end_col_offset = _token->end_col_offset;
7638 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007639 _res = _PyAST_MatchStar ( target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007640 if (_res == NULL && PyErr_Occurred()) {
7641 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007642 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007643 return NULL;
7644 }
7645 goto done;
7646 }
7647 p->mark = _mark;
7648 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' pattern_capture_target"));
7650 }
7651 { // '*' wildcard_pattern
7652 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007653 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007654 return NULL;
7655 }
7656 D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
7657 Token * _literal;
7658 pattern_ty wildcard_pattern_var;
7659 if (
7660 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7661 &&
7662 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
7663 )
7664 {
7665 D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
7666 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7667 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007668 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007669 return NULL;
7670 }
7671 int _end_lineno = _token->end_lineno;
7672 UNUSED(_end_lineno); // Only used by EXTRA macro
7673 int _end_col_offset = _token->end_col_offset;
7674 UNUSED(_end_col_offset); // Only used by EXTRA macro
7675 _res = _PyAST_MatchStar ( NULL , EXTRA );
7676 if (_res == NULL && PyErr_Occurred()) {
7677 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007678 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007679 return NULL;
7680 }
7681 goto done;
7682 }
7683 p->mark = _mark;
7684 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' wildcard_pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007686 }
7687 _res = NULL;
7688 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007689 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007690 return _res;
7691}
7692
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007693// mapping_pattern:
7694// | '{' '}'
7695// | '{' double_star_pattern ','? '}'
7696// | '{' items_pattern ',' double_star_pattern ','? '}'
7697// | '{' items_pattern ','? '}'
7698static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007699mapping_pattern_rule(Parser *p)
7700{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007701 if (p->level++ == MAXSTACK) {
7702 p->error_indicator = 1;
7703 PyErr_NoMemory();
7704 }
Brandt Bucher145bf262021-02-26 14:51:55 -08007705 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007706 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007707 return NULL;
7708 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007709 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007710 int _mark = p->mark;
7711 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7712 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007713 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007714 return NULL;
7715 }
7716 int _start_lineno = p->tokens[_mark]->lineno;
7717 UNUSED(_start_lineno); // Only used by EXTRA macro
7718 int _start_col_offset = p->tokens[_mark]->col_offset;
7719 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007720 { // '{' '}'
Brandt Bucher145bf262021-02-26 14:51:55 -08007721 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007722 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007723 return NULL;
7724 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007725 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007726 Token * _literal;
7727 Token * _literal_1;
Brandt Bucher145bf262021-02-26 14:51:55 -08007728 if (
7729 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7730 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007731 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7732 )
7733 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007734 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007735 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7736 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007737 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007738 return NULL;
7739 }
7740 int _end_lineno = _token->end_lineno;
7741 UNUSED(_end_lineno); // Only used by EXTRA macro
7742 int _end_col_offset = _token->end_col_offset;
7743 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007744 _res = _PyAST_MatchMapping ( NULL , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007745 if (_res == NULL && PyErr_Occurred()) {
7746 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007747 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007748 return NULL;
7749 }
7750 goto done;
7751 }
7752 p->mark = _mark;
7753 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007754 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '}'"));
7755 }
7756 { // '{' double_star_pattern ','? '}'
7757 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007758 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007759 return NULL;
7760 }
7761 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7762 Token * _literal;
7763 Token * _literal_1;
7764 void *_opt_var;
7765 UNUSED(_opt_var); // Silence compiler warnings
7766 expr_ty rest;
7767 if (
7768 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7769 &&
7770 (rest = double_star_pattern_rule(p)) // double_star_pattern
7771 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02007772 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007773 &&
7774 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7775 )
7776 {
7777 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7778 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7779 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007780 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007781 return NULL;
7782 }
7783 int _end_lineno = _token->end_lineno;
7784 UNUSED(_end_lineno); // Only used by EXTRA macro
7785 int _end_col_offset = _token->end_col_offset;
7786 UNUSED(_end_col_offset); // Only used by EXTRA macro
7787 _res = _PyAST_MatchMapping ( NULL , NULL , rest -> v . Name . id , EXTRA );
7788 if (_res == NULL && PyErr_Occurred()) {
7789 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007790 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007791 return NULL;
7792 }
7793 goto done;
7794 }
7795 p->mark = _mark;
7796 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7797 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7798 }
7799 { // '{' items_pattern ',' double_star_pattern ','? '}'
7800 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007801 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007802 return NULL;
7803 }
7804 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7805 Token * _literal;
7806 Token * _literal_1;
7807 Token * _literal_2;
7808 void *_opt_var;
7809 UNUSED(_opt_var); // Silence compiler warnings
7810 asdl_seq* items;
7811 expr_ty rest;
7812 if (
7813 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7814 &&
7815 (items = items_pattern_rule(p)) // items_pattern
7816 &&
7817 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7818 &&
7819 (rest = double_star_pattern_rule(p)) // double_star_pattern
7820 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02007821 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007822 &&
7823 (_literal_2 = _PyPegen_expect_token(p, 26)) // token='}'
7824 )
7825 {
7826 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7827 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7828 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007829 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007830 return NULL;
7831 }
7832 int _end_lineno = _token->end_lineno;
7833 UNUSED(_end_lineno); // Only used by EXTRA macro
7834 int _end_col_offset = _token->end_col_offset;
7835 UNUSED(_end_col_offset); // Only used by EXTRA macro
7836 _res = _PyAST_MatchMapping ( CHECK ( asdl_expr_seq * , _PyPegen_get_pattern_keys ( p , items ) ) , CHECK ( asdl_pattern_seq * , _PyPegen_get_patterns ( p , items ) ) , rest -> v . Name . id , EXTRA );
7837 if (_res == NULL && PyErr_Occurred()) {
7838 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007839 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007840 return NULL;
7841 }
7842 goto done;
7843 }
7844 p->mark = _mark;
7845 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7846 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7847 }
7848 { // '{' items_pattern ','? '}'
7849 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007850 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007851 return NULL;
7852 }
7853 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'"));
7854 Token * _literal;
7855 Token * _literal_1;
7856 void *_opt_var;
7857 UNUSED(_opt_var); // Silence compiler warnings
7858 asdl_seq* items;
7859 if (
7860 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7861 &&
7862 (items = items_pattern_rule(p)) // items_pattern
7863 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02007864 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007865 &&
7866 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7867 )
7868 {
7869 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'"));
7870 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7871 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007872 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007873 return NULL;
7874 }
7875 int _end_lineno = _token->end_lineno;
7876 UNUSED(_end_lineno); // Only used by EXTRA macro
7877 int _end_col_offset = _token->end_col_offset;
7878 UNUSED(_end_col_offset); // Only used by EXTRA macro
7879 _res = _PyAST_MatchMapping ( CHECK ( asdl_expr_seq * , _PyPegen_get_pattern_keys ( p , items ) ) , CHECK ( asdl_pattern_seq * , _PyPegen_get_patterns ( p , items ) ) , NULL , EXTRA );
7880 if (_res == NULL && PyErr_Occurred()) {
7881 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007882 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007883 return NULL;
7884 }
7885 goto done;
7886 }
7887 p->mark = _mark;
7888 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ','? '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007890 }
7891 _res = NULL;
7892 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007893 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007894 return _res;
7895}
7896
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007897// items_pattern: ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007898static asdl_seq*
7899items_pattern_rule(Parser *p)
7900{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007901 if (p->level++ == MAXSTACK) {
7902 p->error_indicator = 1;
7903 PyErr_NoMemory();
7904 }
Brandt Bucher145bf262021-02-26 14:51:55 -08007905 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007906 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007907 return NULL;
7908 }
7909 asdl_seq* _res = NULL;
7910 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007911 { // ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007912 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007913 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007914 return NULL;
7915 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007916 D(fprintf(stderr, "%*c> items_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+"));
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07007917 asdl_seq * _gather_59_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007918 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07007919 (_gather_59_var = _gather_59_rule(p)) // ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007920 )
7921 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007922 D(fprintf(stderr, "%*c+ items_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+"));
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07007923 _res = _gather_59_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007924 goto done;
7925 }
7926 p->mark = _mark;
7927 D(fprintf(stderr, "%*c%s items_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.key_value_pattern+"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007929 }
7930 _res = NULL;
7931 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007932 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007933 return _res;
7934}
7935
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007936// key_value_pattern: (literal_expr | attr) ':' pattern
7937static KeyPatternPair*
Brandt Bucher145bf262021-02-26 14:51:55 -08007938key_value_pattern_rule(Parser *p)
7939{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007940 if (p->level++ == MAXSTACK) {
7941 p->error_indicator = 1;
7942 PyErr_NoMemory();
7943 }
Brandt Bucher145bf262021-02-26 14:51:55 -08007944 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007945 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007946 return NULL;
7947 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007948 KeyPatternPair* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007949 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007950 { // (literal_expr | attr) ':' pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007951 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007952 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007953 return NULL;
7954 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007955 D(fprintf(stderr, "%*c> key_value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(literal_expr | attr) ':' pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007956 Token * _literal;
7957 void *key;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007958 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08007959 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007960 (key = _tmp_61_rule(p)) // literal_expr | attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007961 &&
7962 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
7963 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007964 (pattern = pattern_rule(p)) // pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007965 )
7966 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007967 D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(literal_expr | attr) ':' pattern"));
7968 _res = _PyPegen_key_pattern_pair ( p , key , pattern );
Brandt Bucher145bf262021-02-26 14:51:55 -08007969 if (_res == NULL && PyErr_Occurred()) {
7970 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007971 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007972 return NULL;
7973 }
7974 goto done;
7975 }
7976 p->mark = _mark;
7977 D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007978 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(literal_expr | attr) ':' pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007979 }
7980 _res = NULL;
7981 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007982 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007983 return _res;
7984}
7985
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007986// double_star_pattern: '**' pattern_capture_target
7987static expr_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007988double_star_pattern_rule(Parser *p)
7989{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007990 if (p->level++ == MAXSTACK) {
7991 p->error_indicator = 1;
7992 PyErr_NoMemory();
7993 }
Brandt Bucher145bf262021-02-26 14:51:55 -08007994 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00007995 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08007996 return NULL;
7997 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007998 expr_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007999 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008000 { // '**' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08008001 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008002 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08008003 return NULL;
8004 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008005 D(fprintf(stderr, "%*c> double_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08008006 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008007 expr_ty target;
Brandt Bucher145bf262021-02-26 14:51:55 -08008008 if (
8009 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
8010 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008011 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08008012 )
8013 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008014 D(fprintf(stderr, "%*c+ double_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' pattern_capture_target"));
8015 _res = target;
Brandt Bucher145bf262021-02-26 14:51:55 -08008016 if (_res == NULL && PyErr_Occurred()) {
8017 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008018 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08008019 return NULL;
8020 }
8021 goto done;
8022 }
8023 p->mark = _mark;
8024 D(fprintf(stderr, "%*c%s double_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008025 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08008026 }
8027 _res = NULL;
8028 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008029 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08008030 return _res;
8031}
8032
8033// class_pattern:
8034// | name_or_attr '(' ')'
8035// | name_or_attr '(' positional_patterns ','? ')'
8036// | name_or_attr '(' keyword_patterns ','? ')'
8037// | name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
Miss Islington (bot)11f1a302021-06-24 08:34:28 -07008038// | invalid_class_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008039static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08008040class_pattern_rule(Parser *p)
8041{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008042 if (p->level++ == MAXSTACK) {
8043 p->error_indicator = 1;
8044 PyErr_NoMemory();
8045 }
Brandt Bucher145bf262021-02-26 14:51:55 -08008046 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008047 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08008048 return NULL;
8049 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008050 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008051 int _mark = p->mark;
8052 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8053 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008054 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08008055 return NULL;
8056 }
8057 int _start_lineno = p->tokens[_mark]->lineno;
8058 UNUSED(_start_lineno); // Only used by EXTRA macro
8059 int _start_col_offset = p->tokens[_mark]->col_offset;
8060 UNUSED(_start_col_offset); // Only used by EXTRA macro
8061 { // name_or_attr '(' ')'
8062 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008063 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08008064 return NULL;
8065 }
8066 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
8067 Token * _literal;
8068 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008069 expr_ty cls;
Brandt Bucher145bf262021-02-26 14:51:55 -08008070 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008071 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08008072 &&
8073 (_literal = _PyPegen_expect_token(p, 7)) // token='('
8074 &&
8075 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
8076 )
8077 {
8078 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
8079 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8080 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008081 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08008082 return NULL;
8083 }
8084 int _end_lineno = _token->end_lineno;
8085 UNUSED(_end_lineno); // Only used by EXTRA macro
8086 int _end_col_offset = _token->end_col_offset;
8087 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008088 _res = _PyAST_MatchClass ( cls , NULL , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08008089 if (_res == NULL && PyErr_Occurred()) {
8090 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008091 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08008092 return NULL;
8093 }
8094 goto done;
8095 }
8096 p->mark = _mark;
8097 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8098 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' ')'"));
8099 }
8100 { // name_or_attr '(' positional_patterns ','? ')'
8101 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008102 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08008103 return NULL;
8104 }
8105 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
8106 Token * _literal;
8107 Token * _literal_1;
8108 void *_opt_var;
8109 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008110 expr_ty cls;
8111 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08008112 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008113 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08008114 &&
8115 (_literal = _PyPegen_expect_token(p, 7)) // token='('
8116 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008117 (patterns = positional_patterns_rule(p)) // positional_patterns
Brandt Bucher145bf262021-02-26 14:51:55 -08008118 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008119 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Brandt Bucher145bf262021-02-26 14:51:55 -08008120 &&
8121 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
8122 )
8123 {
8124 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
8125 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8126 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008127 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08008128 return NULL;
8129 }
8130 int _end_lineno = _token->end_lineno;
8131 UNUSED(_end_lineno); // Only used by EXTRA macro
8132 int _end_col_offset = _token->end_col_offset;
8133 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008134 _res = _PyAST_MatchClass ( cls , patterns , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08008135 if (_res == NULL && PyErr_Occurred()) {
8136 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008137 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08008138 return NULL;
8139 }
8140 goto done;
8141 }
8142 p->mark = _mark;
8143 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8144 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
8145 }
8146 { // name_or_attr '(' keyword_patterns ','? ')'
8147 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008148 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08008149 return NULL;
8150 }
8151 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
8152 Token * _literal;
8153 Token * _literal_1;
8154 void *_opt_var;
8155 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008156 expr_ty cls;
8157 asdl_seq* keywords;
Brandt Bucher145bf262021-02-26 14:51:55 -08008158 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008159 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08008160 &&
8161 (_literal = _PyPegen_expect_token(p, 7)) // token='('
8162 &&
8163 (keywords = keyword_patterns_rule(p)) // keyword_patterns
8164 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008165 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Brandt Bucher145bf262021-02-26 14:51:55 -08008166 &&
8167 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
8168 )
8169 {
8170 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
8171 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8172 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008173 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08008174 return NULL;
8175 }
8176 int _end_lineno = _token->end_lineno;
8177 UNUSED(_end_lineno); // Only used by EXTRA macro
8178 int _end_col_offset = _token->end_col_offset;
8179 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008180 _res = _PyAST_MatchClass ( cls , NULL , CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , CHECK ( asdl_expr_seq * , _PyPegen_get_pattern_keys ( p , keywords ) ) ) ) , CHECK ( asdl_pattern_seq * , _PyPegen_get_patterns ( p , keywords ) ) , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08008181 if (_res == NULL && PyErr_Occurred()) {
8182 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008183 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08008184 return NULL;
8185 }
8186 goto done;
8187 }
8188 p->mark = _mark;
8189 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
8191 }
8192 { // name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
8193 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008194 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08008195 return NULL;
8196 }
8197 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
8198 Token * _literal;
8199 Token * _literal_1;
8200 Token * _literal_2;
8201 void *_opt_var;
8202 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008203 expr_ty cls;
8204 asdl_seq* keywords;
8205 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08008206 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008207 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08008208 &&
8209 (_literal = _PyPegen_expect_token(p, 7)) // token='('
8210 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008211 (patterns = positional_patterns_rule(p)) // positional_patterns
Brandt Bucher145bf262021-02-26 14:51:55 -08008212 &&
8213 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8214 &&
8215 (keywords = keyword_patterns_rule(p)) // keyword_patterns
8216 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008217 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Brandt Bucher145bf262021-02-26 14:51:55 -08008218 &&
8219 (_literal_2 = _PyPegen_expect_token(p, 8)) // token=')'
8220 )
8221 {
8222 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
8223 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8224 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008225 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08008226 return NULL;
8227 }
8228 int _end_lineno = _token->end_lineno;
8229 UNUSED(_end_lineno); // Only used by EXTRA macro
8230 int _end_col_offset = _token->end_col_offset;
8231 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008232 _res = _PyAST_MatchClass ( cls , patterns , CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , CHECK ( asdl_expr_seq * , _PyPegen_get_pattern_keys ( p , keywords ) ) ) ) , CHECK ( asdl_pattern_seq * , _PyPegen_get_patterns ( p , keywords ) ) , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08008233 if (_res == NULL && PyErr_Occurred()) {
8234 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008235 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08008236 return NULL;
8237 }
8238 goto done;
8239 }
8240 p->mark = _mark;
8241 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
8243 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -07008244 if (p->call_invalid_rules) { // invalid_class_pattern
8245 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008246 p->level--;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -07008247 return NULL;
8248 }
8249 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_class_pattern"));
8250 void *invalid_class_pattern_var;
8251 if (
8252 (invalid_class_pattern_var = invalid_class_pattern_rule(p)) // invalid_class_pattern
8253 )
8254 {
8255 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_class_pattern"));
8256 _res = invalid_class_pattern_var;
8257 goto done;
8258 }
8259 p->mark = _mark;
8260 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8261 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_class_pattern"));
8262 }
Brandt Bucher145bf262021-02-26 14:51:55 -08008263 _res = NULL;
8264 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008265 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08008266 return _res;
8267}
8268
8269// positional_patterns: ','.pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008270static asdl_pattern_seq*
Brandt Bucher145bf262021-02-26 14:51:55 -08008271positional_patterns_rule(Parser *p)
8272{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008273 if (p->level++ == MAXSTACK) {
8274 p->error_indicator = 1;
8275 PyErr_NoMemory();
8276 }
Brandt Bucher145bf262021-02-26 14:51:55 -08008277 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008278 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08008279 return NULL;
8280 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008281 asdl_pattern_seq* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008282 int _mark = p->mark;
8283 { // ','.pattern+
8284 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008285 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08008286 return NULL;
8287 }
8288 D(fprintf(stderr, "%*c> positional_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008289 asdl_pattern_seq* args;
Brandt Bucher145bf262021-02-26 14:51:55 -08008290 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008291 (args = (asdl_pattern_seq*)_gather_62_rule(p)) // ','.pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08008292 )
8293 {
8294 D(fprintf(stderr, "%*c+ positional_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
8295 _res = args;
8296 if (_res == NULL && PyErr_Occurred()) {
8297 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008298 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08008299 return NULL;
8300 }
8301 goto done;
8302 }
8303 p->mark = _mark;
8304 D(fprintf(stderr, "%*c%s positional_patterns[%d-%d]: %s failed!\n", p->level, ' ',
8305 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.pattern+"));
8306 }
8307 _res = NULL;
8308 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008309 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08008310 return _res;
8311}
8312
8313// keyword_patterns: ','.keyword_pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008314static asdl_seq*
Brandt Bucher145bf262021-02-26 14:51:55 -08008315keyword_patterns_rule(Parser *p)
8316{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008317 if (p->level++ == MAXSTACK) {
8318 p->error_indicator = 1;
8319 PyErr_NoMemory();
8320 }
Brandt Bucher145bf262021-02-26 14:51:55 -08008321 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008322 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08008323 return NULL;
8324 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008325 asdl_seq* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008326 int _mark = p->mark;
8327 { // ','.keyword_pattern+
8328 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008329 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08008330 return NULL;
8331 }
8332 D(fprintf(stderr, "%*c> keyword_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07008333 asdl_seq * _gather_64_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08008334 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07008335 (_gather_64_var = _gather_64_rule(p)) // ','.keyword_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08008336 )
8337 {
8338 D(fprintf(stderr, "%*c+ keyword_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07008339 _res = _gather_64_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08008340 goto done;
8341 }
8342 p->mark = _mark;
8343 D(fprintf(stderr, "%*c%s keyword_patterns[%d-%d]: %s failed!\n", p->level, ' ',
8344 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.keyword_pattern+"));
8345 }
8346 _res = NULL;
8347 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008348 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08008349 return _res;
8350}
8351
8352// keyword_pattern: NAME '=' pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008353static KeyPatternPair*
Brandt Bucher145bf262021-02-26 14:51:55 -08008354keyword_pattern_rule(Parser *p)
8355{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008356 if (p->level++ == MAXSTACK) {
8357 p->error_indicator = 1;
8358 PyErr_NoMemory();
8359 }
Brandt Bucher145bf262021-02-26 14:51:55 -08008360 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008361 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08008362 return NULL;
8363 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008364 KeyPatternPair* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008365 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -08008366 { // NAME '=' pattern
8367 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008368 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08008369 return NULL;
8370 }
8371 D(fprintf(stderr, "%*c> keyword_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
8372 Token * _literal;
8373 expr_ty arg;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008374 pattern_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08008375 if (
8376 (arg = _PyPegen_name_token(p)) // NAME
8377 &&
8378 (_literal = _PyPegen_expect_token(p, 22)) // token='='
8379 &&
8380 (value = pattern_rule(p)) // pattern
8381 )
8382 {
8383 D(fprintf(stderr, "%*c+ keyword_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008384 _res = _PyPegen_key_pattern_pair ( p , arg , value );
Brandt Bucher145bf262021-02-26 14:51:55 -08008385 if (_res == NULL && PyErr_Occurred()) {
8386 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008387 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08008388 return NULL;
8389 }
8390 goto done;
8391 }
8392 p->mark = _mark;
8393 D(fprintf(stderr, "%*c%s keyword_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8394 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' pattern"));
8395 }
8396 _res = NULL;
8397 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008398 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -08008399 return _res;
8400}
8401
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008402// return_stmt: 'return' star_expressions?
8403static stmt_ty
8404return_stmt_rule(Parser *p)
8405{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008406 if (p->level++ == MAXSTACK) {
8407 p->error_indicator = 1;
8408 PyErr_NoMemory();
8409 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008410 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008411 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008412 return NULL;
8413 }
8414 stmt_ty _res = NULL;
8415 int _mark = p->mark;
8416 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8417 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008418 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008419 return NULL;
8420 }
8421 int _start_lineno = p->tokens[_mark]->lineno;
8422 UNUSED(_start_lineno); // Only used by EXTRA macro
8423 int _start_col_offset = p->tokens[_mark]->col_offset;
8424 UNUSED(_start_col_offset); // Only used by EXTRA macro
8425 { // 'return' star_expressions?
8426 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008427 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008428 return NULL;
8429 }
8430 D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
8431 Token * _keyword;
8432 void *a;
8433 if (
8434 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
8435 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008436 (a = star_expressions_rule(p), !p->error_indicator) // star_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008437 )
8438 {
8439 D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
8440 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8441 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008442 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008443 return NULL;
8444 }
8445 int _end_lineno = _token->end_lineno;
8446 UNUSED(_end_lineno); // Only used by EXTRA macro
8447 int _end_col_offset = _token->end_col_offset;
8448 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008449 _res = _PyAST_Return ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008450 if (_res == NULL && PyErr_Occurred()) {
8451 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008452 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008453 return NULL;
8454 }
8455 goto done;
8456 }
8457 p->mark = _mark;
8458 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8459 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
8460 }
8461 _res = NULL;
8462 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008463 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008464 return _res;
8465}
8466
8467// raise_stmt: 'raise' expression ['from' expression] | 'raise'
8468static stmt_ty
8469raise_stmt_rule(Parser *p)
8470{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008471 if (p->level++ == MAXSTACK) {
8472 p->error_indicator = 1;
8473 PyErr_NoMemory();
8474 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008475 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008476 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008477 return NULL;
8478 }
8479 stmt_ty _res = NULL;
8480 int _mark = p->mark;
8481 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8482 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008483 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008484 return NULL;
8485 }
8486 int _start_lineno = p->tokens[_mark]->lineno;
8487 UNUSED(_start_lineno); // Only used by EXTRA macro
8488 int _start_col_offset = p->tokens[_mark]->col_offset;
8489 UNUSED(_start_col_offset); // Only used by EXTRA macro
8490 { // 'raise' expression ['from' expression]
8491 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008492 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008493 return NULL;
8494 }
8495 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
8496 Token * _keyword;
8497 expr_ty a;
8498 void *b;
8499 if (
8500 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
8501 &&
8502 (a = expression_rule(p)) // expression
8503 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008504 (b = _tmp_66_rule(p), !p->error_indicator) // ['from' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008505 )
8506 {
8507 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
8508 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8509 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008510 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008511 return NULL;
8512 }
8513 int _end_lineno = _token->end_lineno;
8514 UNUSED(_end_lineno); // Only used by EXTRA macro
8515 int _end_col_offset = _token->end_col_offset;
8516 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008517 _res = _PyAST_Raise ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008518 if (_res == NULL && PyErr_Occurred()) {
8519 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008520 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008521 return NULL;
8522 }
8523 goto done;
8524 }
8525 p->mark = _mark;
8526 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8527 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
8528 }
8529 { // 'raise'
8530 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008531 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008532 return NULL;
8533 }
8534 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
8535 Token * _keyword;
8536 if (
8537 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
8538 )
8539 {
8540 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
8541 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8542 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008543 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008544 return NULL;
8545 }
8546 int _end_lineno = _token->end_lineno;
8547 UNUSED(_end_lineno); // Only used by EXTRA macro
8548 int _end_col_offset = _token->end_col_offset;
8549 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008550 _res = _PyAST_Raise ( NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008551 if (_res == NULL && PyErr_Occurred()) {
8552 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008553 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008554 return NULL;
8555 }
8556 goto done;
8557 }
8558 p->mark = _mark;
8559 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8560 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
8561 }
8562 _res = NULL;
8563 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008564 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008565 return _res;
8566}
8567
8568// function_def: decorators function_def_raw | function_def_raw
8569static stmt_ty
8570function_def_rule(Parser *p)
8571{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008572 if (p->level++ == MAXSTACK) {
8573 p->error_indicator = 1;
8574 PyErr_NoMemory();
8575 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008576 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008577 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008578 return NULL;
8579 }
8580 stmt_ty _res = NULL;
8581 int _mark = p->mark;
8582 { // decorators function_def_raw
8583 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008584 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008585 return NULL;
8586 }
8587 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 +01008588 asdl_expr_seq* d;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008589 stmt_ty f;
8590 if (
8591 (d = decorators_rule(p)) // decorators
8592 &&
8593 (f = function_def_raw_rule(p)) // function_def_raw
8594 )
8595 {
8596 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
8597 _res = _PyPegen_function_def_decorators ( p , d , f );
8598 if (_res == NULL && PyErr_Occurred()) {
8599 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008600 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008601 return NULL;
8602 }
8603 goto done;
8604 }
8605 p->mark = _mark;
8606 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
8607 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
8608 }
8609 { // function_def_raw
8610 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008611 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008612 return NULL;
8613 }
8614 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
8615 stmt_ty function_def_raw_var;
8616 if (
8617 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
8618 )
8619 {
8620 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
8621 _res = function_def_raw_var;
8622 goto done;
8623 }
8624 p->mark = _mark;
8625 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
8626 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
8627 }
8628 _res = NULL;
8629 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008630 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008631 return _res;
8632}
8633
8634// function_def_raw:
Pablo Galindo56c95df2021-04-21 15:28:21 +01008635// | invalid_def_raw
Pablo Galindo58fb1562021-02-02 19:54:22 +00008636// | 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
8637// | ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008638static stmt_ty
8639function_def_raw_rule(Parser *p)
8640{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008641 if (p->level++ == MAXSTACK) {
8642 p->error_indicator = 1;
8643 PyErr_NoMemory();
8644 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008645 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008646 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008647 return NULL;
8648 }
8649 stmt_ty _res = NULL;
8650 int _mark = p->mark;
8651 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8652 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008653 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008654 return NULL;
8655 }
8656 int _start_lineno = p->tokens[_mark]->lineno;
8657 UNUSED(_start_lineno); // Only used by EXTRA macro
8658 int _start_col_offset = p->tokens[_mark]->col_offset;
8659 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01008660 if (p->call_invalid_rules) { // invalid_def_raw
8661 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008662 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +01008663 return NULL;
8664 }
8665 D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
8666 void *invalid_def_raw_var;
8667 if (
8668 (invalid_def_raw_var = invalid_def_raw_rule(p)) // invalid_def_raw
8669 )
8670 {
8671 D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
8672 _res = invalid_def_raw_var;
8673 goto done;
8674 }
8675 p->mark = _mark;
8676 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
8677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_def_raw"));
8678 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008679 { // 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008680 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008681 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008682 return NULL;
8683 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008684 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 +01008685 Token * _keyword;
8686 Token * _literal;
8687 Token * _literal_1;
8688 Token * _literal_2;
8689 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008690 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008691 expr_ty n;
8692 void *params;
8693 void *tc;
8694 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008695 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008696 &&
8697 (n = _PyPegen_name_token(p)) // NAME
8698 &&
8699 (_literal = _PyPegen_expect_token(p, 7)) // token='('
8700 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008701 (params = params_rule(p), !p->error_indicator) // params?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008702 &&
8703 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
8704 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008705 (a = _tmp_67_rule(p), !p->error_indicator) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008706 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008707 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008708 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008709 (tc = func_type_comment_rule(p), !p->error_indicator) // func_type_comment?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008710 &&
8711 (b = block_rule(p)) // block
8712 )
8713 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008714 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 +01008715 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8716 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008717 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008718 return NULL;
8719 }
8720 int _end_lineno = _token->end_lineno;
8721 UNUSED(_end_lineno); // Only used by EXTRA macro
8722 int _end_col_offset = _token->end_col_offset;
8723 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008724 _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 +01008725 if (_res == NULL && PyErr_Occurred()) {
8726 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008727 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008728 return NULL;
8729 }
8730 goto done;
8731 }
8732 p->mark = _mark;
8733 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008734 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008735 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008736 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008737 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008738 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008739 return NULL;
8740 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008741 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 +01008742 Token * _keyword;
8743 Token * _literal;
8744 Token * _literal_1;
8745 Token * _literal_2;
8746 void *a;
8747 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008748 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008749 expr_ty n;
8750 void *params;
8751 void *tc;
8752 if (
8753 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
8754 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008755 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008756 &&
8757 (n = _PyPegen_name_token(p)) // NAME
8758 &&
8759 (_literal = _PyPegen_expect_token(p, 7)) // token='('
8760 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008761 (params = params_rule(p), !p->error_indicator) // params?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008762 &&
8763 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
8764 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008765 (a = _tmp_68_rule(p), !p->error_indicator) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008766 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008767 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008768 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008769 (tc = func_type_comment_rule(p), !p->error_indicator) // func_type_comment?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008770 &&
8771 (b = block_rule(p)) // block
8772 )
8773 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008774 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 +01008775 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8776 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008777 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008778 return NULL;
8779 }
8780 int _end_lineno = _token->end_lineno;
8781 UNUSED(_end_lineno); // Only used by EXTRA macro
8782 int _end_col_offset = _token->end_col_offset;
8783 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008784 _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 +01008785 if (_res == NULL && PyErr_Occurred()) {
8786 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008787 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008788 return NULL;
8789 }
8790 goto done;
8791 }
8792 p->mark = _mark;
8793 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008794 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008795 }
8796 _res = NULL;
8797 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008798 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008799 return _res;
8800}
8801
8802// func_type_comment:
8803// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
8804// | invalid_double_type_comments
8805// | TYPE_COMMENT
8806static Token*
8807func_type_comment_rule(Parser *p)
8808{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008809 if (p->level++ == MAXSTACK) {
8810 p->error_indicator = 1;
8811 PyErr_NoMemory();
8812 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008813 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008814 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008815 return NULL;
8816 }
8817 Token* _res = NULL;
8818 int _mark = p->mark;
8819 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
8820 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008821 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008822 return NULL;
8823 }
8824 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8825 Token * newline_var;
8826 Token * t;
8827 if (
8828 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
8829 &&
8830 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
8831 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008832 _PyPegen_lookahead(1, _tmp_69_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008833 )
8834 {
8835 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8836 _res = t;
8837 if (_res == NULL && PyErr_Occurred()) {
8838 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008839 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008840 return NULL;
8841 }
8842 goto done;
8843 }
8844 p->mark = _mark;
8845 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8846 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8847 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008848 if (p->call_invalid_rules) { // invalid_double_type_comments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008849 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008850 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008851 return NULL;
8852 }
8853 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
8854 void *invalid_double_type_comments_var;
8855 if (
8856 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
8857 )
8858 {
8859 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
8860 _res = invalid_double_type_comments_var;
8861 goto done;
8862 }
8863 p->mark = _mark;
8864 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
8866 }
8867 { // TYPE_COMMENT
8868 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008869 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008870 return NULL;
8871 }
8872 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
8873 Token * type_comment_var;
8874 if (
8875 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
8876 )
8877 {
8878 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
8879 _res = type_comment_var;
8880 goto done;
8881 }
8882 p->mark = _mark;
8883 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8884 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
8885 }
8886 _res = NULL;
8887 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008888 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008889 return _res;
8890}
8891
8892// params: invalid_parameters | parameters
8893static arguments_ty
8894params_rule(Parser *p)
8895{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008896 if (p->level++ == MAXSTACK) {
8897 p->error_indicator = 1;
8898 PyErr_NoMemory();
8899 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008900 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008901 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008902 return NULL;
8903 }
8904 arguments_ty _res = NULL;
8905 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008906 if (p->call_invalid_rules) { // invalid_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008907 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008908 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008909 return NULL;
8910 }
8911 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
8912 void *invalid_parameters_var;
8913 if (
8914 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
8915 )
8916 {
8917 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
8918 _res = invalid_parameters_var;
8919 goto done;
8920 }
8921 p->mark = _mark;
8922 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
8923 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
8924 }
8925 { // parameters
8926 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008927 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008928 return NULL;
8929 }
8930 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
8931 arguments_ty parameters_var;
8932 if (
8933 (parameters_var = parameters_rule(p)) // parameters
8934 )
8935 {
8936 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
8937 _res = parameters_var;
8938 goto done;
8939 }
8940 p->mark = _mark;
8941 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
8942 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
8943 }
8944 _res = NULL;
8945 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008946 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008947 return _res;
8948}
8949
8950// parameters:
8951// | slash_no_default param_no_default* param_with_default* star_etc?
8952// | slash_with_default param_with_default* star_etc?
8953// | param_no_default+ param_with_default* star_etc?
8954// | param_with_default+ star_etc?
8955// | star_etc
8956static arguments_ty
8957parameters_rule(Parser *p)
8958{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008959 if (p->level++ == MAXSTACK) {
8960 p->error_indicator = 1;
8961 PyErr_NoMemory();
8962 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008963 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008964 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008965 return NULL;
8966 }
8967 arguments_ty _res = NULL;
8968 int _mark = p->mark;
8969 { // slash_no_default param_no_default* param_with_default* star_etc?
8970 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008971 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008972 return NULL;
8973 }
8974 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 +01008975 asdl_arg_seq* a;
8976 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008977 asdl_seq * c;
8978 void *d;
8979 if (
8980 (a = slash_no_default_rule(p)) // slash_no_default
8981 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008982 (b = (asdl_arg_seq*)_loop0_70_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008983 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008984 (c = _loop0_71_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008985 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02008986 (d = star_etc_rule(p), !p->error_indicator) // star_etc?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008987 )
8988 {
8989 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?"));
8990 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
8991 if (_res == NULL && PyErr_Occurred()) {
8992 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00008993 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008994 return NULL;
8995 }
8996 goto done;
8997 }
8998 p->mark = _mark;
8999 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
9000 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
9001 }
9002 { // slash_with_default param_with_default* star_etc?
9003 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009004 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009005 return NULL;
9006 }
9007 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
9008 SlashWithDefault* a;
9009 asdl_seq * b;
9010 void *c;
9011 if (
9012 (a = slash_with_default_rule(p)) // slash_with_default
9013 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009014 (b = _loop0_72_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009015 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009016 (c = star_etc_rule(p), !p->error_indicator) // star_etc?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009017 )
9018 {
9019 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
9020 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
9021 if (_res == NULL && PyErr_Occurred()) {
9022 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009023 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009024 return NULL;
9025 }
9026 goto done;
9027 }
9028 p->mark = _mark;
9029 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
9030 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
9031 }
9032 { // param_no_default+ param_with_default* star_etc?
9033 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009034 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009035 return NULL;
9036 }
9037 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 +01009038 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009039 asdl_seq * b;
9040 void *c;
9041 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009042 (a = (asdl_arg_seq*)_loop1_73_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009043 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009044 (b = _loop0_74_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009045 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009046 (c = star_etc_rule(p), !p->error_indicator) // star_etc?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009047 )
9048 {
9049 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
9050 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
9051 if (_res == NULL && PyErr_Occurred()) {
9052 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009053 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009054 return NULL;
9055 }
9056 goto done;
9057 }
9058 p->mark = _mark;
9059 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
9060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
9061 }
9062 { // param_with_default+ star_etc?
9063 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009064 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009065 return NULL;
9066 }
9067 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
9068 asdl_seq * a;
9069 void *b;
9070 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009071 (a = _loop1_75_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009072 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009073 (b = star_etc_rule(p), !p->error_indicator) // star_etc?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009074 )
9075 {
9076 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
9077 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
9078 if (_res == NULL && PyErr_Occurred()) {
9079 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009080 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009081 return NULL;
9082 }
9083 goto done;
9084 }
9085 p->mark = _mark;
9086 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
9087 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
9088 }
9089 { // star_etc
9090 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009091 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009092 return NULL;
9093 }
9094 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
9095 StarEtc* a;
9096 if (
9097 (a = star_etc_rule(p)) // star_etc
9098 )
9099 {
9100 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
9101 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
9102 if (_res == NULL && PyErr_Occurred()) {
9103 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009104 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009105 return NULL;
9106 }
9107 goto done;
9108 }
9109 p->mark = _mark;
9110 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
9111 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
9112 }
9113 _res = NULL;
9114 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009115 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009116 return _res;
9117}
9118
9119// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoa5634c42020-09-16 19:42:00 +01009120static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009121slash_no_default_rule(Parser *p)
9122{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009123 if (p->level++ == MAXSTACK) {
9124 p->error_indicator = 1;
9125 PyErr_NoMemory();
9126 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009127 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009128 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009129 return NULL;
9130 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009131 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009132 int _mark = p->mark;
9133 { // param_no_default+ '/' ','
9134 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009135 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009136 return NULL;
9137 }
9138 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
9139 Token * _literal;
9140 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01009141 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009142 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009143 (a = (asdl_arg_seq*)_loop1_76_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009144 &&
9145 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
9146 &&
9147 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
9148 )
9149 {
9150 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
9151 _res = a;
9152 if (_res == NULL && PyErr_Occurred()) {
9153 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009154 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009155 return NULL;
9156 }
9157 goto done;
9158 }
9159 p->mark = _mark;
9160 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9161 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
9162 }
9163 { // param_no_default+ '/' &')'
9164 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009165 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009166 return NULL;
9167 }
9168 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
9169 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01009170 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009171 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009172 (a = (asdl_arg_seq*)_loop1_77_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009173 &&
9174 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
9175 &&
9176 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9177 )
9178 {
9179 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
9180 _res = a;
9181 if (_res == NULL && PyErr_Occurred()) {
9182 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009183 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009184 return NULL;
9185 }
9186 goto done;
9187 }
9188 p->mark = _mark;
9189 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
9191 }
9192 _res = NULL;
9193 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009194 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009195 return _res;
9196}
9197
9198// slash_with_default:
9199// | param_no_default* param_with_default+ '/' ','
9200// | param_no_default* param_with_default+ '/' &')'
9201static SlashWithDefault*
9202slash_with_default_rule(Parser *p)
9203{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009204 if (p->level++ == MAXSTACK) {
9205 p->error_indicator = 1;
9206 PyErr_NoMemory();
9207 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009208 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009209 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009210 return NULL;
9211 }
9212 SlashWithDefault* _res = NULL;
9213 int _mark = p->mark;
9214 { // param_no_default* param_with_default+ '/' ','
9215 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009216 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009217 return NULL;
9218 }
9219 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
9220 Token * _literal;
9221 Token * _literal_1;
9222 asdl_seq * a;
9223 asdl_seq * b;
9224 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009225 (a = _loop0_78_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009226 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009227 (b = _loop1_79_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009228 &&
9229 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
9230 &&
9231 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
9232 )
9233 {
9234 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 +01009235 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009236 if (_res == NULL && PyErr_Occurred()) {
9237 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009238 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009239 return NULL;
9240 }
9241 goto done;
9242 }
9243 p->mark = _mark;
9244 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9245 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
9246 }
9247 { // param_no_default* param_with_default+ '/' &')'
9248 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009249 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009250 return NULL;
9251 }
9252 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
9253 Token * _literal;
9254 asdl_seq * a;
9255 asdl_seq * b;
9256 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009257 (a = _loop0_80_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009258 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009259 (b = _loop1_81_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009260 &&
9261 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
9262 &&
9263 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9264 )
9265 {
9266 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 +01009267 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009268 if (_res == NULL && PyErr_Occurred()) {
9269 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009270 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009271 return NULL;
9272 }
9273 goto done;
9274 }
9275 p->mark = _mark;
9276 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9277 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
9278 }
9279 _res = NULL;
9280 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009281 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009282 return _res;
9283}
9284
9285// star_etc:
9286// | '*' param_no_default param_maybe_default* kwds?
9287// | '*' ',' param_maybe_default+ kwds?
9288// | kwds
9289// | invalid_star_etc
9290static StarEtc*
9291star_etc_rule(Parser *p)
9292{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009293 if (p->level++ == MAXSTACK) {
9294 p->error_indicator = 1;
9295 PyErr_NoMemory();
9296 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009297 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009298 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009299 return NULL;
9300 }
9301 StarEtc* _res = NULL;
9302 int _mark = p->mark;
9303 { // '*' param_no_default param_maybe_default* kwds?
9304 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009305 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009306 return NULL;
9307 }
9308 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9309 Token * _literal;
9310 arg_ty a;
9311 asdl_seq * b;
9312 void *c;
9313 if (
9314 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9315 &&
9316 (a = param_no_default_rule(p)) // param_no_default
9317 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009318 (b = _loop0_82_rule(p)) // param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009319 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009320 (c = kwds_rule(p), !p->error_indicator) // kwds?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009321 )
9322 {
9323 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9324 _res = _PyPegen_star_etc ( p , a , b , c );
9325 if (_res == NULL && PyErr_Occurred()) {
9326 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009327 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009328 return NULL;
9329 }
9330 goto done;
9331 }
9332 p->mark = _mark;
9333 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9334 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9335 }
9336 { // '*' ',' param_maybe_default+ kwds?
9337 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009338 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009339 return NULL;
9340 }
9341 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9342 Token * _literal;
9343 Token * _literal_1;
9344 asdl_seq * b;
9345 void *c;
9346 if (
9347 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9348 &&
9349 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
9350 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009351 (b = _loop1_83_rule(p)) // param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009352 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009353 (c = kwds_rule(p), !p->error_indicator) // kwds?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009354 )
9355 {
9356 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9357 _res = _PyPegen_star_etc ( p , NULL , b , c );
9358 if (_res == NULL && PyErr_Occurred()) {
9359 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009360 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009361 return NULL;
9362 }
9363 goto done;
9364 }
9365 p->mark = _mark;
9366 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9367 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9368 }
9369 { // kwds
9370 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009371 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009372 return NULL;
9373 }
9374 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
9375 arg_ty a;
9376 if (
9377 (a = kwds_rule(p)) // kwds
9378 )
9379 {
9380 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
9381 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
9382 if (_res == NULL && PyErr_Occurred()) {
9383 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009384 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009385 return NULL;
9386 }
9387 goto done;
9388 }
9389 p->mark = _mark;
9390 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9391 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
9392 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009393 if (p->call_invalid_rules) { // invalid_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009394 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009395 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009396 return NULL;
9397 }
9398 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
9399 void *invalid_star_etc_var;
9400 if (
9401 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
9402 )
9403 {
9404 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
9405 _res = invalid_star_etc_var;
9406 goto done;
9407 }
9408 p->mark = _mark;
9409 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9410 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
9411 }
9412 _res = NULL;
9413 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009414 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009415 return _res;
9416}
9417
9418// kwds: '**' param_no_default
9419static arg_ty
9420kwds_rule(Parser *p)
9421{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009422 if (p->level++ == MAXSTACK) {
9423 p->error_indicator = 1;
9424 PyErr_NoMemory();
9425 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009426 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009427 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009428 return NULL;
9429 }
9430 arg_ty _res = NULL;
9431 int _mark = p->mark;
9432 { // '**' param_no_default
9433 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009434 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009435 return NULL;
9436 }
9437 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
9438 Token * _literal;
9439 arg_ty a;
9440 if (
9441 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
9442 &&
9443 (a = param_no_default_rule(p)) // param_no_default
9444 )
9445 {
9446 D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
9447 _res = a;
9448 if (_res == NULL && PyErr_Occurred()) {
9449 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009450 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009451 return NULL;
9452 }
9453 goto done;
9454 }
9455 p->mark = _mark;
9456 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
9457 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
9458 }
9459 _res = NULL;
9460 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009461 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009462 return _res;
9463}
9464
9465// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
9466static arg_ty
9467param_no_default_rule(Parser *p)
9468{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009469 if (p->level++ == MAXSTACK) {
9470 p->error_indicator = 1;
9471 PyErr_NoMemory();
9472 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009473 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009474 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009475 return NULL;
9476 }
9477 arg_ty _res = NULL;
9478 int _mark = p->mark;
9479 { // param ',' TYPE_COMMENT?
9480 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009481 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009482 return NULL;
9483 }
9484 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
9485 Token * _literal;
9486 arg_ty a;
9487 void *tc;
9488 if (
9489 (a = param_rule(p)) // param
9490 &&
9491 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9492 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009493 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009494 )
9495 {
9496 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
9497 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
9498 if (_res == NULL && PyErr_Occurred()) {
9499 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009500 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009501 return NULL;
9502 }
9503 goto done;
9504 }
9505 p->mark = _mark;
9506 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9507 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
9508 }
9509 { // param TYPE_COMMENT? &')'
9510 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009511 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009512 return NULL;
9513 }
9514 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
9515 arg_ty a;
9516 void *tc;
9517 if (
9518 (a = param_rule(p)) // param
9519 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009520 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009521 &&
9522 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9523 )
9524 {
9525 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
9526 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
9527 if (_res == NULL && PyErr_Occurred()) {
9528 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009529 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009530 return NULL;
9531 }
9532 goto done;
9533 }
9534 p->mark = _mark;
9535 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9536 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
9537 }
9538 _res = NULL;
9539 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009540 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009541 return _res;
9542}
9543
9544// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
9545static NameDefaultPair*
9546param_with_default_rule(Parser *p)
9547{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009548 if (p->level++ == MAXSTACK) {
9549 p->error_indicator = 1;
9550 PyErr_NoMemory();
9551 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009552 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009553 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009554 return NULL;
9555 }
9556 NameDefaultPair* _res = NULL;
9557 int _mark = p->mark;
9558 { // param default ',' TYPE_COMMENT?
9559 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009560 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009561 return NULL;
9562 }
9563 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9564 Token * _literal;
9565 arg_ty a;
9566 expr_ty c;
9567 void *tc;
9568 if (
9569 (a = param_rule(p)) // param
9570 &&
9571 (c = default_rule(p)) // default
9572 &&
9573 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9574 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009575 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009576 )
9577 {
9578 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9579 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9580 if (_res == NULL && PyErr_Occurred()) {
9581 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009582 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009583 return NULL;
9584 }
9585 goto done;
9586 }
9587 p->mark = _mark;
9588 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9589 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9590 }
9591 { // param default TYPE_COMMENT? &')'
9592 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009593 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009594 return NULL;
9595 }
9596 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9597 arg_ty a;
9598 expr_ty c;
9599 void *tc;
9600 if (
9601 (a = param_rule(p)) // param
9602 &&
9603 (c = default_rule(p)) // default
9604 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009605 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009606 &&
9607 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9608 )
9609 {
9610 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9611 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9612 if (_res == NULL && PyErr_Occurred()) {
9613 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009614 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009615 return NULL;
9616 }
9617 goto done;
9618 }
9619 p->mark = _mark;
9620 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9621 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9622 }
9623 _res = NULL;
9624 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009625 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009626 return _res;
9627}
9628
9629// param_maybe_default:
9630// | param default? ',' TYPE_COMMENT?
9631// | param default? TYPE_COMMENT? &')'
9632static NameDefaultPair*
9633param_maybe_default_rule(Parser *p)
9634{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009635 if (p->level++ == MAXSTACK) {
9636 p->error_indicator = 1;
9637 PyErr_NoMemory();
9638 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009639 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009640 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009641 return NULL;
9642 }
9643 NameDefaultPair* _res = NULL;
9644 int _mark = p->mark;
9645 { // param default? ',' TYPE_COMMENT?
9646 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009647 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009648 return NULL;
9649 }
9650 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9651 Token * _literal;
9652 arg_ty a;
9653 void *c;
9654 void *tc;
9655 if (
9656 (a = param_rule(p)) // param
9657 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009658 (c = default_rule(p), !p->error_indicator) // default?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009659 &&
9660 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9661 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009662 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009663 )
9664 {
9665 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9666 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9667 if (_res == NULL && PyErr_Occurred()) {
9668 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009669 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009670 return NULL;
9671 }
9672 goto done;
9673 }
9674 p->mark = _mark;
9675 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
9676 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9677 }
9678 { // param default? TYPE_COMMENT? &')'
9679 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009680 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009681 return NULL;
9682 }
9683 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9684 arg_ty a;
9685 void *c;
9686 void *tc;
9687 if (
9688 (a = param_rule(p)) // param
9689 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009690 (c = default_rule(p), !p->error_indicator) // default?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009691 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009692 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator) // TYPE_COMMENT?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009693 &&
9694 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9695 )
9696 {
9697 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9698 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9699 if (_res == NULL && PyErr_Occurred()) {
9700 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009701 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009702 return NULL;
9703 }
9704 goto done;
9705 }
9706 p->mark = _mark;
9707 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
9708 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9709 }
9710 _res = NULL;
9711 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009712 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009713 return _res;
9714}
9715
9716// param: NAME annotation?
9717static arg_ty
9718param_rule(Parser *p)
9719{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009720 if (p->level++ == MAXSTACK) {
9721 p->error_indicator = 1;
9722 PyErr_NoMemory();
9723 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009724 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009725 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009726 return NULL;
9727 }
9728 arg_ty _res = NULL;
9729 int _mark = p->mark;
9730 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9731 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009732 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009733 return NULL;
9734 }
9735 int _start_lineno = p->tokens[_mark]->lineno;
9736 UNUSED(_start_lineno); // Only used by EXTRA macro
9737 int _start_col_offset = p->tokens[_mark]->col_offset;
9738 UNUSED(_start_col_offset); // Only used by EXTRA macro
9739 { // NAME annotation?
9740 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009741 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009742 return NULL;
9743 }
9744 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
9745 expr_ty a;
9746 void *b;
9747 if (
9748 (a = _PyPegen_name_token(p)) // NAME
9749 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +02009750 (b = annotation_rule(p), !p->error_indicator) // annotation?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009751 )
9752 {
9753 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
9754 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9755 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009756 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009757 return NULL;
9758 }
9759 int _end_lineno = _token->end_lineno;
9760 UNUSED(_end_lineno); // Only used by EXTRA macro
9761 int _end_col_offset = _token->end_col_offset;
9762 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009763 _res = _PyAST_arg ( a -> v . Name . id , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009764 if (_res == NULL && PyErr_Occurred()) {
9765 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009766 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009767 return NULL;
9768 }
9769 goto done;
9770 }
9771 p->mark = _mark;
9772 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
9773 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
9774 }
9775 _res = NULL;
9776 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009777 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009778 return _res;
9779}
9780
9781// annotation: ':' expression
9782static expr_ty
9783annotation_rule(Parser *p)
9784{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009785 if (p->level++ == MAXSTACK) {
9786 p->error_indicator = 1;
9787 PyErr_NoMemory();
9788 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009789 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009790 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009791 return NULL;
9792 }
9793 expr_ty _res = NULL;
9794 int _mark = p->mark;
9795 { // ':' expression
9796 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009797 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009798 return NULL;
9799 }
9800 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
9801 Token * _literal;
9802 expr_ty a;
9803 if (
9804 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
9805 &&
9806 (a = expression_rule(p)) // expression
9807 )
9808 {
9809 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
9810 _res = a;
9811 if (_res == NULL && PyErr_Occurred()) {
9812 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009813 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009814 return NULL;
9815 }
9816 goto done;
9817 }
9818 p->mark = _mark;
9819 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
9820 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
9821 }
9822 _res = NULL;
9823 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009824 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009825 return _res;
9826}
9827
9828// default: '=' expression
9829static expr_ty
9830default_rule(Parser *p)
9831{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009832 if (p->level++ == MAXSTACK) {
9833 p->error_indicator = 1;
9834 PyErr_NoMemory();
9835 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009836 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009837 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009838 return NULL;
9839 }
9840 expr_ty _res = NULL;
9841 int _mark = p->mark;
9842 { // '=' expression
9843 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009844 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009845 return NULL;
9846 }
9847 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
9848 Token * _literal;
9849 expr_ty a;
9850 if (
9851 (_literal = _PyPegen_expect_token(p, 22)) // token='='
9852 &&
9853 (a = expression_rule(p)) // expression
9854 )
9855 {
9856 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
9857 _res = a;
9858 if (_res == NULL && PyErr_Occurred()) {
9859 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009860 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009861 return NULL;
9862 }
9863 goto done;
9864 }
9865 p->mark = _mark;
9866 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
9867 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
9868 }
9869 _res = NULL;
9870 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009871 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009872 return _res;
9873}
9874
9875// decorators: (('@' named_expression NEWLINE))+
Pablo Galindoa5634c42020-09-16 19:42:00 +01009876static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009877decorators_rule(Parser *p)
9878{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009879 if (p->level++ == MAXSTACK) {
9880 p->error_indicator = 1;
9881 PyErr_NoMemory();
9882 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009883 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009884 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009885 return NULL;
9886 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009887 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009888 int _mark = p->mark;
9889 { // (('@' named_expression NEWLINE))+
9890 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009891 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009892 return NULL;
9893 }
9894 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01009895 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009896 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009897 (a = (asdl_expr_seq*)_loop1_84_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009898 )
9899 {
9900 D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
9901 _res = a;
9902 if (_res == NULL && PyErr_Occurred()) {
9903 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009904 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009905 return NULL;
9906 }
9907 goto done;
9908 }
9909 p->mark = _mark;
9910 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
9911 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
9912 }
9913 _res = NULL;
9914 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009915 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009916 return _res;
9917}
9918
9919// class_def: decorators class_def_raw | class_def_raw
9920static stmt_ty
9921class_def_rule(Parser *p)
9922{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009923 if (p->level++ == MAXSTACK) {
9924 p->error_indicator = 1;
9925 PyErr_NoMemory();
9926 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009927 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009928 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009929 return NULL;
9930 }
9931 stmt_ty _res = NULL;
9932 int _mark = p->mark;
9933 { // decorators class_def_raw
9934 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009935 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009936 return NULL;
9937 }
9938 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 +01009939 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009940 stmt_ty b;
9941 if (
9942 (a = decorators_rule(p)) // decorators
9943 &&
9944 (b = class_def_raw_rule(p)) // class_def_raw
9945 )
9946 {
9947 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
9948 _res = _PyPegen_class_def_decorators ( p , a , b );
9949 if (_res == NULL && PyErr_Occurred()) {
9950 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009951 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009952 return NULL;
9953 }
9954 goto done;
9955 }
9956 p->mark = _mark;
9957 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
9958 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
9959 }
9960 { // class_def_raw
9961 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009962 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009963 return NULL;
9964 }
9965 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
9966 stmt_ty class_def_raw_var;
9967 if (
9968 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
9969 )
9970 {
9971 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
9972 _res = class_def_raw_var;
9973 goto done;
9974 }
9975 p->mark = _mark;
9976 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
9977 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
9978 }
9979 _res = NULL;
9980 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009981 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009982 return _res;
9983}
9984
Pablo Galindo56c95df2021-04-21 15:28:21 +01009985// class_def_raw: invalid_class_def_raw | 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009986static stmt_ty
9987class_def_raw_rule(Parser *p)
9988{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009989 if (p->level++ == MAXSTACK) {
9990 p->error_indicator = 1;
9991 PyErr_NoMemory();
9992 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009993 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +00009994 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009995 return NULL;
9996 }
9997 stmt_ty _res = NULL;
9998 int _mark = p->mark;
9999 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10000 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010001 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010002 return NULL;
10003 }
10004 int _start_lineno = p->tokens[_mark]->lineno;
10005 UNUSED(_start_lineno); // Only used by EXTRA macro
10006 int _start_col_offset = p->tokens[_mark]->col_offset;
10007 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +010010008 if (p->call_invalid_rules) { // invalid_class_def_raw
10009 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010010 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010010011 return NULL;
10012 }
10013 D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
10014 void *invalid_class_def_raw_var;
10015 if (
10016 (invalid_class_def_raw_var = invalid_class_def_raw_rule(p)) // invalid_class_def_raw
10017 )
10018 {
10019 D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
10020 _res = invalid_class_def_raw_var;
10021 goto done;
10022 }
10023 p->mark = _mark;
10024 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
10025 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_class_def_raw"));
10026 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000010027 { // 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010028 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010029 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010030 return NULL;
10031 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000010032 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 +010010033 Token * _keyword;
10034 Token * _literal;
10035 expr_ty a;
10036 void *b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010010037 asdl_stmt_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010038 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010039 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010040 &&
10041 (a = _PyPegen_name_token(p)) // NAME
10042 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020010043 (b = _tmp_85_rule(p), !p->error_indicator) // ['(' arguments? ')']
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010044 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +000010045 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010046 &&
10047 (c = block_rule(p)) // block
10048 )
10049 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000010050 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 +010010051 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10052 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010053 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010054 return NULL;
10055 }
10056 int _end_lineno = _token->end_lineno;
10057 UNUSED(_end_lineno); // Only used by EXTRA macro
10058 int _end_col_offset = _token->end_col_offset;
10059 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010060 _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 +010010061 if (_res == NULL && PyErr_Occurred()) {
10062 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010063 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010064 return NULL;
10065 }
10066 goto done;
10067 }
10068 p->mark = _mark;
10069 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000010070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010071 }
10072 _res = NULL;
10073 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010074 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010075 return _res;
10076}
10077
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000010078// block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block
Pablo Galindoa5634c42020-09-16 19:42:00 +010010079static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010080block_rule(Parser *p)
10081{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010082 if (p->level++ == MAXSTACK) {
10083 p->error_indicator = 1;
10084 PyErr_NoMemory();
10085 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010086 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010087 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010088 return NULL;
10089 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010010090 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010091 if (_PyPegen_is_memoized(p, block_type, &_res)) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010092 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010093 return _res;
10094 }
10095 int _mark = p->mark;
10096 { // NEWLINE INDENT statements DEDENT
10097 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010098 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010099 return NULL;
10100 }
10101 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 +010010102 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010103 Token * dedent_var;
10104 Token * indent_var;
10105 Token * newline_var;
10106 if (
10107 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
10108 &&
10109 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
10110 &&
10111 (a = statements_rule(p)) // statements
10112 &&
10113 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
10114 )
10115 {
10116 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
10117 _res = a;
10118 if (_res == NULL && PyErr_Occurred()) {
10119 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010120 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010121 return NULL;
10122 }
10123 goto done;
10124 }
10125 p->mark = _mark;
10126 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
10127 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
10128 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000010129 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010130 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010131 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010132 return NULL;
10133 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000010134 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
10135 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010136 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000010137 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010138 )
10139 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000010140 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
10141 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010142 goto done;
10143 }
10144 p->mark = _mark;
10145 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000010146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010147 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020010148 if (p->call_invalid_rules) { // invalid_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010149 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010150 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010151 return NULL;
10152 }
10153 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
10154 void *invalid_block_var;
10155 if (
10156 (invalid_block_var = invalid_block_rule(p)) // invalid_block
10157 )
10158 {
10159 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
10160 _res = invalid_block_var;
10161 goto done;
10162 }
10163 p->mark = _mark;
10164 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
10165 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
10166 }
10167 _res = NULL;
10168 done:
10169 _PyPegen_insert_memo(p, _mark, block_type, _res);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010170 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010171 return _res;
10172}
10173
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010174// star_expressions:
10175// | star_expression ((',' star_expression))+ ','?
10176// | star_expression ','
10177// | star_expression
10178static expr_ty
10179star_expressions_rule(Parser *p)
10180{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010181 if (p->level++ == MAXSTACK) {
10182 p->error_indicator = 1;
10183 PyErr_NoMemory();
10184 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010185 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010186 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010187 return NULL;
10188 }
10189 expr_ty _res = NULL;
10190 int _mark = p->mark;
10191 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10192 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010193 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010194 return NULL;
10195 }
10196 int _start_lineno = p->tokens[_mark]->lineno;
10197 UNUSED(_start_lineno); // Only used by EXTRA macro
10198 int _start_col_offset = p->tokens[_mark]->col_offset;
10199 UNUSED(_start_col_offset); // Only used by EXTRA macro
10200 { // star_expression ((',' star_expression))+ ','?
10201 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010202 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010203 return NULL;
10204 }
10205 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
10206 void *_opt_var;
10207 UNUSED(_opt_var); // Silence compiler warnings
10208 expr_ty a;
10209 asdl_seq * b;
10210 if (
10211 (a = star_expression_rule(p)) // star_expression
10212 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010213 (b = _loop1_86_rule(p)) // ((',' star_expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010214 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020010215 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010216 )
10217 {
10218 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
10219 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10220 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010221 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010222 return NULL;
10223 }
10224 int _end_lineno = _token->end_lineno;
10225 UNUSED(_end_lineno); // Only used by EXTRA macro
10226 int _end_col_offset = _token->end_col_offset;
10227 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010228 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010229 if (_res == NULL && PyErr_Occurred()) {
10230 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010231 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010232 return NULL;
10233 }
10234 goto done;
10235 }
10236 p->mark = _mark;
10237 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
10238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
10239 }
10240 { // star_expression ','
10241 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010242 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010243 return NULL;
10244 }
10245 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
10246 Token * _literal;
10247 expr_ty a;
10248 if (
10249 (a = star_expression_rule(p)) // star_expression
10250 &&
10251 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10252 )
10253 {
10254 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
10255 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10256 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010257 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010258 return NULL;
10259 }
10260 int _end_lineno = _token->end_lineno;
10261 UNUSED(_end_lineno); // Only used by EXTRA macro
10262 int _end_col_offset = _token->end_col_offset;
10263 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010264 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010265 if (_res == NULL && PyErr_Occurred()) {
10266 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010267 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010268 return NULL;
10269 }
10270 goto done;
10271 }
10272 p->mark = _mark;
10273 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
10274 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
10275 }
10276 { // star_expression
10277 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010278 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010279 return NULL;
10280 }
10281 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
10282 expr_ty star_expression_var;
10283 if (
10284 (star_expression_var = star_expression_rule(p)) // star_expression
10285 )
10286 {
10287 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
10288 _res = star_expression_var;
10289 goto done;
10290 }
10291 p->mark = _mark;
10292 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
10293 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
10294 }
10295 _res = NULL;
10296 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010297 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010298 return _res;
10299}
10300
10301// star_expression: '*' bitwise_or | expression
10302static expr_ty
10303star_expression_rule(Parser *p)
10304{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010305 if (p->level++ == MAXSTACK) {
10306 p->error_indicator = 1;
10307 PyErr_NoMemory();
10308 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010309 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010310 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010311 return NULL;
10312 }
10313 expr_ty _res = NULL;
10314 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010315 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010316 return _res;
10317 }
10318 int _mark = p->mark;
10319 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10320 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010321 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010322 return NULL;
10323 }
10324 int _start_lineno = p->tokens[_mark]->lineno;
10325 UNUSED(_start_lineno); // Only used by EXTRA macro
10326 int _start_col_offset = p->tokens[_mark]->col_offset;
10327 UNUSED(_start_col_offset); // Only used by EXTRA macro
10328 { // '*' bitwise_or
10329 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010330 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010331 return NULL;
10332 }
10333 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10334 Token * _literal;
10335 expr_ty a;
10336 if (
10337 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10338 &&
10339 (a = bitwise_or_rule(p)) // bitwise_or
10340 )
10341 {
10342 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10343 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10344 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010345 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010346 return NULL;
10347 }
10348 int _end_lineno = _token->end_lineno;
10349 UNUSED(_end_lineno); // Only used by EXTRA macro
10350 int _end_col_offset = _token->end_col_offset;
10351 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010352 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010353 if (_res == NULL && PyErr_Occurred()) {
10354 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010355 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010356 return NULL;
10357 }
10358 goto done;
10359 }
10360 p->mark = _mark;
10361 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
10362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
10363 }
10364 { // expression
10365 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010366 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010367 return NULL;
10368 }
10369 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
10370 expr_ty expression_var;
10371 if (
10372 (expression_var = expression_rule(p)) // expression
10373 )
10374 {
10375 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
10376 _res = expression_var;
10377 goto done;
10378 }
10379 p->mark = _mark;
10380 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
10381 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
10382 }
10383 _res = NULL;
10384 done:
10385 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010386 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010387 return _res;
10388}
10389
10390// star_named_expressions: ','.star_named_expression+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010010391static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010392star_named_expressions_rule(Parser *p)
10393{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010394 if (p->level++ == MAXSTACK) {
10395 p->error_indicator = 1;
10396 PyErr_NoMemory();
10397 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010398 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010399 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010400 return NULL;
10401 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010010402 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010403 int _mark = p->mark;
10404 { // ','.star_named_expression+ ','?
10405 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010406 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010407 return NULL;
10408 }
10409 D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
10410 void *_opt_var;
10411 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010010412 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010413 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010414 (a = (asdl_expr_seq*)_gather_87_rule(p)) // ','.star_named_expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010415 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020010416 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010417 )
10418 {
10419 D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
10420 _res = a;
10421 if (_res == NULL && PyErr_Occurred()) {
10422 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010423 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010424 return NULL;
10425 }
10426 goto done;
10427 }
10428 p->mark = _mark;
10429 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
10430 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
10431 }
10432 _res = NULL;
10433 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010434 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010435 return _res;
10436}
10437
10438// star_named_expression: '*' bitwise_or | named_expression
10439static expr_ty
10440star_named_expression_rule(Parser *p)
10441{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010442 if (p->level++ == MAXSTACK) {
10443 p->error_indicator = 1;
10444 PyErr_NoMemory();
10445 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010446 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010447 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010448 return NULL;
10449 }
10450 expr_ty _res = NULL;
10451 int _mark = p->mark;
10452 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10453 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010454 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010455 return NULL;
10456 }
10457 int _start_lineno = p->tokens[_mark]->lineno;
10458 UNUSED(_start_lineno); // Only used by EXTRA macro
10459 int _start_col_offset = p->tokens[_mark]->col_offset;
10460 UNUSED(_start_col_offset); // Only used by EXTRA macro
10461 { // '*' bitwise_or
10462 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010463 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010464 return NULL;
10465 }
10466 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10467 Token * _literal;
10468 expr_ty a;
10469 if (
10470 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10471 &&
10472 (a = bitwise_or_rule(p)) // bitwise_or
10473 )
10474 {
10475 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10476 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10477 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010478 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010479 return NULL;
10480 }
10481 int _end_lineno = _token->end_lineno;
10482 UNUSED(_end_lineno); // Only used by EXTRA macro
10483 int _end_col_offset = _token->end_col_offset;
10484 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010485 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010486 if (_res == NULL && PyErr_Occurred()) {
10487 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010488 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010489 return NULL;
10490 }
10491 goto done;
10492 }
10493 p->mark = _mark;
10494 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10495 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
10496 }
10497 { // named_expression
10498 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010499 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010500 return NULL;
10501 }
10502 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
10503 expr_ty named_expression_var;
10504 if (
10505 (named_expression_var = named_expression_rule(p)) // named_expression
10506 )
10507 {
10508 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
10509 _res = named_expression_var;
10510 goto done;
10511 }
10512 p->mark = _mark;
10513 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10514 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
10515 }
10516 _res = NULL;
10517 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010518 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010519 return _res;
10520}
10521
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010522// assignment_expression: NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010523static expr_ty
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010524assignment_expression_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010525{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010526 if (p->level++ == MAXSTACK) {
10527 p->error_indicator = 1;
10528 PyErr_NoMemory();
10529 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010530 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010531 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010532 return NULL;
10533 }
10534 expr_ty _res = NULL;
10535 int _mark = p->mark;
10536 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10537 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010538 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010539 return NULL;
10540 }
10541 int _start_lineno = p->tokens[_mark]->lineno;
10542 UNUSED(_start_lineno); // Only used by EXTRA macro
10543 int _start_col_offset = p->tokens[_mark]->col_offset;
10544 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010545 { // NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010546 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010547 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010548 return NULL;
10549 }
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010550 D(fprintf(stderr, "%*c> assignment_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010551 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010552 Token * _literal;
10553 expr_ty a;
10554 expr_ty b;
10555 if (
10556 (a = _PyPegen_name_token(p)) // NAME
10557 &&
10558 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
10559 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010560 (_cut_var = 1)
10561 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010562 (b = expression_rule(p)) // expression
10563 )
10564 {
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010565 D(fprintf(stderr, "%*c+ assignment_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010566 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10567 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010568 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010569 return NULL;
10570 }
10571 int _end_lineno = _token->end_lineno;
10572 UNUSED(_end_lineno); // Only used by EXTRA macro
10573 int _end_col_offset = _token->end_col_offset;
10574 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010575 _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010576 if (_res == NULL && PyErr_Occurred()) {
10577 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010578 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010579 return NULL;
10580 }
10581 goto done;
10582 }
10583 p->mark = _mark;
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010584 D(fprintf(stderr, "%*c%s assignment_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010585 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
10586 if (_cut_var) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010587 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010588 return NULL;
10589 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010590 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010591 _res = NULL;
10592 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010593 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010594 return _res;
10595}
10596
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010597// named_expression: assignment_expression | invalid_named_expression | expression !':='
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010598static expr_ty
10599named_expression_rule(Parser *p)
10600{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010601 if (p->level++ == MAXSTACK) {
10602 p->error_indicator = 1;
10603 PyErr_NoMemory();
10604 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010605 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010606 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010607 return NULL;
10608 }
10609 expr_ty _res = NULL;
10610 int _mark = p->mark;
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010611 { // assignment_expression
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010612 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010613 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010614 return NULL;
10615 }
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010616 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
10617 expr_ty assignment_expression_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010618 if (
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010619 (assignment_expression_var = assignment_expression_rule(p)) // assignment_expression
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010620 )
10621 {
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010622 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
10623 _res = assignment_expression_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010624 goto done;
10625 }
10626 p->mark = _mark;
10627 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000010628 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010629 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010010630 if (p->call_invalid_rules) { // invalid_named_expression
10631 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010632 p->level--;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010010633 return NULL;
10634 }
10635 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
10636 void *invalid_named_expression_var;
10637 if (
10638 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
10639 )
10640 {
10641 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
10642 _res = invalid_named_expression_var;
10643 goto done;
10644 }
10645 p->mark = _mark;
10646 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10647 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
10648 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010649 { // expression !':='
10650 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010651 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010652 return NULL;
10653 }
10654 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10655 expr_ty expression_var;
10656 if (
10657 (expression_var = expression_rule(p)) // expression
10658 &&
10659 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
10660 )
10661 {
10662 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10663 _res = expression_var;
10664 goto done;
10665 }
10666 p->mark = _mark;
10667 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10668 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
10669 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010670 _res = NULL;
10671 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010672 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010673 return _res;
10674}
10675
10676// annotated_rhs: yield_expr | star_expressions
10677static expr_ty
10678annotated_rhs_rule(Parser *p)
10679{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010680 if (p->level++ == MAXSTACK) {
10681 p->error_indicator = 1;
10682 PyErr_NoMemory();
10683 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010684 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010685 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010686 return NULL;
10687 }
10688 expr_ty _res = NULL;
10689 int _mark = p->mark;
10690 { // yield_expr
10691 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010692 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010693 return NULL;
10694 }
10695 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
10696 expr_ty yield_expr_var;
10697 if (
10698 (yield_expr_var = yield_expr_rule(p)) // yield_expr
10699 )
10700 {
10701 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
10702 _res = yield_expr_var;
10703 goto done;
10704 }
10705 p->mark = _mark;
10706 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
10707 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
10708 }
10709 { // star_expressions
10710 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010711 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010712 return NULL;
10713 }
10714 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
10715 expr_ty star_expressions_var;
10716 if (
10717 (star_expressions_var = star_expressions_rule(p)) // star_expressions
10718 )
10719 {
10720 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
10721 _res = star_expressions_var;
10722 goto done;
10723 }
10724 p->mark = _mark;
10725 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
10726 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
10727 }
10728 _res = NULL;
10729 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010730 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010731 return _res;
10732}
10733
10734// expressions: expression ((',' expression))+ ','? | expression ',' | expression
10735static expr_ty
10736expressions_rule(Parser *p)
10737{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010738 if (p->level++ == MAXSTACK) {
10739 p->error_indicator = 1;
10740 PyErr_NoMemory();
10741 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010742 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010743 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010744 return NULL;
10745 }
10746 expr_ty _res = NULL;
10747 int _mark = p->mark;
10748 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10749 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010750 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010751 return NULL;
10752 }
10753 int _start_lineno = p->tokens[_mark]->lineno;
10754 UNUSED(_start_lineno); // Only used by EXTRA macro
10755 int _start_col_offset = p->tokens[_mark]->col_offset;
10756 UNUSED(_start_col_offset); // Only used by EXTRA macro
10757 { // expression ((',' expression))+ ','?
10758 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010759 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010760 return NULL;
10761 }
10762 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
10763 void *_opt_var;
10764 UNUSED(_opt_var); // Silence compiler warnings
10765 expr_ty a;
10766 asdl_seq * b;
10767 if (
10768 (a = expression_rule(p)) // expression
10769 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010770 (b = _loop1_89_rule(p)) // ((',' expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010771 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020010772 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010773 )
10774 {
10775 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
10776 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10777 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010778 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010779 return NULL;
10780 }
10781 int _end_lineno = _token->end_lineno;
10782 UNUSED(_end_lineno); // Only used by EXTRA macro
10783 int _end_col_offset = _token->end_col_offset;
10784 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010785 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010786 if (_res == NULL && PyErr_Occurred()) {
10787 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010788 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010789 return NULL;
10790 }
10791 goto done;
10792 }
10793 p->mark = _mark;
10794 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
10796 }
10797 { // expression ','
10798 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010799 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010800 return NULL;
10801 }
10802 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
10803 Token * _literal;
10804 expr_ty a;
10805 if (
10806 (a = expression_rule(p)) // expression
10807 &&
10808 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10809 )
10810 {
10811 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
10812 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10813 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010814 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010815 return NULL;
10816 }
10817 int _end_lineno = _token->end_lineno;
10818 UNUSED(_end_lineno); // Only used by EXTRA macro
10819 int _end_col_offset = _token->end_col_offset;
10820 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010821 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010822 if (_res == NULL && PyErr_Occurred()) {
10823 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010824 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010825 return NULL;
10826 }
10827 goto done;
10828 }
10829 p->mark = _mark;
10830 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10831 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
10832 }
10833 { // expression
10834 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010835 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010836 return NULL;
10837 }
10838 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
10839 expr_ty expression_var;
10840 if (
10841 (expression_var = expression_rule(p)) // expression
10842 )
10843 {
10844 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
10845 _res = expression_var;
10846 goto done;
10847 }
10848 p->mark = _mark;
10849 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10850 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
10851 }
10852 _res = NULL;
10853 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010854 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010855 return _res;
10856}
10857
Pablo Galindob2802482021-04-15 21:38:45 +010010858// expression:
10859// | invalid_expression
Pablo Galindo Salgado511ee1c2021-11-20 17:39:17 +000010860// | invalid_legacy_expression
Pablo Galindob2802482021-04-15 21:38:45 +010010861// | disjunction 'if' disjunction 'else' expression
10862// | disjunction
10863// | lambdef
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010864static expr_ty
10865expression_rule(Parser *p)
10866{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010867 if (p->level++ == MAXSTACK) {
10868 p->error_indicator = 1;
10869 PyErr_NoMemory();
10870 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010871 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010872 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010873 return NULL;
10874 }
10875 expr_ty _res = NULL;
10876 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010877 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010878 return _res;
10879 }
10880 int _mark = p->mark;
10881 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10882 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010883 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010884 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
Pablo Galindob2802482021-04-15 21:38:45 +010010890 if (p->call_invalid_rules) { // invalid_expression
10891 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010892 p->level--;
Pablo Galindob2802482021-04-15 21:38:45 +010010893 return NULL;
10894 }
10895 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
10896 void *invalid_expression_var;
10897 if (
10898 (invalid_expression_var = invalid_expression_rule(p)) // invalid_expression
10899 )
10900 {
10901 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
10902 _res = invalid_expression_var;
10903 goto done;
10904 }
10905 p->mark = _mark;
10906 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_expression"));
10908 }
Pablo Galindo Salgado511ee1c2021-11-20 17:39:17 +000010909 if (p->call_invalid_rules) { // invalid_legacy_expression
10910 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010911 p->level--;
Pablo Galindo Salgado511ee1c2021-11-20 17:39:17 +000010912 return NULL;
10913 }
10914 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_legacy_expression"));
10915 void *invalid_legacy_expression_var;
10916 if (
10917 (invalid_legacy_expression_var = invalid_legacy_expression_rule(p)) // invalid_legacy_expression
10918 )
10919 {
10920 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_legacy_expression"));
10921 _res = invalid_legacy_expression_var;
10922 goto done;
10923 }
10924 p->mark = _mark;
10925 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_legacy_expression"));
10927 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010928 { // disjunction 'if' disjunction 'else' expression
10929 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010930 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010931 return NULL;
10932 }
10933 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10934 Token * _keyword;
10935 Token * _keyword_1;
10936 expr_ty a;
10937 expr_ty b;
10938 expr_ty c;
10939 if (
10940 (a = disjunction_rule(p)) // disjunction
10941 &&
10942 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
10943 &&
10944 (b = disjunction_rule(p)) // disjunction
10945 &&
10946 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
10947 &&
10948 (c = expression_rule(p)) // expression
10949 )
10950 {
10951 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10952 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10953 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010954 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010955 return NULL;
10956 }
10957 int _end_lineno = _token->end_lineno;
10958 UNUSED(_end_lineno); // Only used by EXTRA macro
10959 int _end_col_offset = _token->end_col_offset;
10960 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010961 _res = _PyAST_IfExp ( b , a , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010962 if (_res == NULL && PyErr_Occurred()) {
10963 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010964 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010965 return NULL;
10966 }
10967 goto done;
10968 }
10969 p->mark = _mark;
10970 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10971 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10972 }
10973 { // disjunction
10974 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010975 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010976 return NULL;
10977 }
10978 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
10979 expr_ty disjunction_var;
10980 if (
10981 (disjunction_var = disjunction_rule(p)) // disjunction
10982 )
10983 {
10984 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
10985 _res = disjunction_var;
10986 goto done;
10987 }
10988 p->mark = _mark;
10989 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10990 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
10991 }
10992 { // lambdef
10993 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000010994 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010995 return NULL;
10996 }
10997 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
10998 expr_ty lambdef_var;
10999 if (
11000 (lambdef_var = lambdef_rule(p)) // lambdef
11001 )
11002 {
11003 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
11004 _res = lambdef_var;
11005 goto done;
11006 }
11007 p->mark = _mark;
11008 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
11009 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
11010 }
11011 _res = NULL;
11012 done:
11013 _PyPegen_insert_memo(p, _mark, expression_type, _res);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011014 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011015 return _res;
11016}
11017
11018// lambdef: 'lambda' lambda_params? ':' expression
11019static expr_ty
11020lambdef_rule(Parser *p)
11021{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011022 if (p->level++ == MAXSTACK) {
11023 p->error_indicator = 1;
11024 PyErr_NoMemory();
11025 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011026 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011027 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011028 return NULL;
11029 }
11030 expr_ty _res = NULL;
11031 int _mark = p->mark;
11032 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11033 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011034 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011035 return NULL;
11036 }
11037 int _start_lineno = p->tokens[_mark]->lineno;
11038 UNUSED(_start_lineno); // Only used by EXTRA macro
11039 int _start_col_offset = p->tokens[_mark]->col_offset;
11040 UNUSED(_start_col_offset); // Only used by EXTRA macro
11041 { // 'lambda' lambda_params? ':' expression
11042 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011043 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011044 return NULL;
11045 }
11046 D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
11047 Token * _keyword;
11048 Token * _literal;
11049 void *a;
11050 expr_ty b;
11051 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011052 (_keyword = _PyPegen_expect_token(p, 528)) // token='lambda'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011053 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020011054 (a = lambda_params_rule(p), !p->error_indicator) // lambda_params?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011055 &&
11056 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
11057 &&
11058 (b = expression_rule(p)) // expression
11059 )
11060 {
11061 D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
11062 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11063 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011064 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011065 return NULL;
11066 }
11067 int _end_lineno = _token->end_lineno;
11068 UNUSED(_end_lineno); // Only used by EXTRA macro
11069 int _end_col_offset = _token->end_col_offset;
11070 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011071 _res = _PyAST_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011072 if (_res == NULL && PyErr_Occurred()) {
11073 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011074 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011075 return NULL;
11076 }
11077 goto done;
11078 }
11079 p->mark = _mark;
11080 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
11081 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
11082 }
11083 _res = NULL;
11084 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011085 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011086 return _res;
11087}
11088
11089// lambda_params: invalid_lambda_parameters | lambda_parameters
11090static arguments_ty
11091lambda_params_rule(Parser *p)
11092{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011093 if (p->level++ == MAXSTACK) {
11094 p->error_indicator = 1;
11095 PyErr_NoMemory();
11096 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011097 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011098 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011099 return NULL;
11100 }
11101 arguments_ty _res = NULL;
11102 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011103 if (p->call_invalid_rules) { // invalid_lambda_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011104 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011105 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011106 return NULL;
11107 }
11108 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
11109 void *invalid_lambda_parameters_var;
11110 if (
11111 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
11112 )
11113 {
11114 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
11115 _res = invalid_lambda_parameters_var;
11116 goto done;
11117 }
11118 p->mark = _mark;
11119 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
11120 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
11121 }
11122 { // lambda_parameters
11123 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011124 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011125 return NULL;
11126 }
11127 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
11128 arguments_ty lambda_parameters_var;
11129 if (
11130 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
11131 )
11132 {
11133 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
11134 _res = lambda_parameters_var;
11135 goto done;
11136 }
11137 p->mark = _mark;
11138 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
11139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
11140 }
11141 _res = NULL;
11142 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011143 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011144 return _res;
11145}
11146
11147// lambda_parameters:
11148// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
11149// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
11150// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
11151// | lambda_param_with_default+ lambda_star_etc?
11152// | lambda_star_etc
11153static arguments_ty
11154lambda_parameters_rule(Parser *p)
11155{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011156 if (p->level++ == MAXSTACK) {
11157 p->error_indicator = 1;
11158 PyErr_NoMemory();
11159 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011160 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011161 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011162 return NULL;
11163 }
11164 arguments_ty _res = NULL;
11165 int _mark = p->mark;
11166 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
11167 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011168 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011169 return NULL;
11170 }
11171 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 +010011172 asdl_arg_seq* a;
11173 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011174 asdl_seq * c;
11175 void *d;
11176 if (
11177 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
11178 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011179 (b = (asdl_arg_seq*)_loop0_90_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011180 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011181 (c = _loop0_91_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011182 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020011183 (d = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011184 )
11185 {
11186 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?"));
11187 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
11188 if (_res == NULL && PyErr_Occurred()) {
11189 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011190 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011191 return NULL;
11192 }
11193 goto done;
11194 }
11195 p->mark = _mark;
11196 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
11197 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
11198 }
11199 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
11200 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011201 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011202 return NULL;
11203 }
11204 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?"));
11205 SlashWithDefault* a;
11206 asdl_seq * b;
11207 void *c;
11208 if (
11209 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
11210 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011211 (b = _loop0_92_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011212 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020011213 (c = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011214 )
11215 {
11216 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?"));
11217 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
11218 if (_res == NULL && PyErr_Occurred()) {
11219 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011220 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011221 return NULL;
11222 }
11223 goto done;
11224 }
11225 p->mark = _mark;
11226 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
11227 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
11228 }
11229 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
11230 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011231 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011232 return NULL;
11233 }
11234 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 +010011235 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011236 asdl_seq * b;
11237 void *c;
11238 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011239 (a = (asdl_arg_seq*)_loop1_93_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011240 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011241 (b = _loop0_94_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011242 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020011243 (c = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011244 )
11245 {
11246 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?"));
11247 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
11248 if (_res == NULL && PyErr_Occurred()) {
11249 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011250 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011251 return NULL;
11252 }
11253 goto done;
11254 }
11255 p->mark = _mark;
11256 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
11257 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
11258 }
11259 { // lambda_param_with_default+ lambda_star_etc?
11260 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011261 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011262 return NULL;
11263 }
11264 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
11265 asdl_seq * a;
11266 void *b;
11267 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011268 (a = _loop1_95_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011269 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020011270 (b = lambda_star_etc_rule(p), !p->error_indicator) // lambda_star_etc?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011271 )
11272 {
11273 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
11274 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
11275 if (_res == NULL && PyErr_Occurred()) {
11276 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011277 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011278 return NULL;
11279 }
11280 goto done;
11281 }
11282 p->mark = _mark;
11283 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
11284 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
11285 }
11286 { // lambda_star_etc
11287 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011288 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011289 return NULL;
11290 }
11291 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
11292 StarEtc* a;
11293 if (
11294 (a = lambda_star_etc_rule(p)) // lambda_star_etc
11295 )
11296 {
11297 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
11298 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
11299 if (_res == NULL && PyErr_Occurred()) {
11300 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011301 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011302 return NULL;
11303 }
11304 goto done;
11305 }
11306 p->mark = _mark;
11307 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
11308 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
11309 }
11310 _res = NULL;
11311 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011312 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011313 return _res;
11314}
11315
11316// lambda_slash_no_default:
11317// | lambda_param_no_default+ '/' ','
11318// | lambda_param_no_default+ '/' &':'
Pablo Galindoa5634c42020-09-16 19:42:00 +010011319static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011320lambda_slash_no_default_rule(Parser *p)
11321{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011322 if (p->level++ == MAXSTACK) {
11323 p->error_indicator = 1;
11324 PyErr_NoMemory();
11325 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011326 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011327 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011328 return NULL;
11329 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010011330 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011331 int _mark = p->mark;
11332 { // lambda_param_no_default+ '/' ','
11333 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011334 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011335 return NULL;
11336 }
11337 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
11338 Token * _literal;
11339 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011340 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011341 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011342 (a = (asdl_arg_seq*)_loop1_96_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011343 &&
11344 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11345 &&
11346 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
11347 )
11348 {
11349 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
11350 _res = a;
11351 if (_res == NULL && PyErr_Occurred()) {
11352 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011353 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011354 return NULL;
11355 }
11356 goto done;
11357 }
11358 p->mark = _mark;
11359 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11360 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
11361 }
11362 { // lambda_param_no_default+ '/' &':'
11363 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011364 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011365 return NULL;
11366 }
11367 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
11368 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011369 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011370 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011371 (a = (asdl_arg_seq*)_loop1_97_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011372 &&
11373 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11374 &&
11375 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11376 )
11377 {
11378 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
11379 _res = a;
11380 if (_res == NULL && PyErr_Occurred()) {
11381 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011382 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011383 return NULL;
11384 }
11385 goto done;
11386 }
11387 p->mark = _mark;
11388 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11389 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
11390 }
11391 _res = NULL;
11392 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011393 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011394 return _res;
11395}
11396
11397// lambda_slash_with_default:
11398// | lambda_param_no_default* lambda_param_with_default+ '/' ','
11399// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
11400static SlashWithDefault*
11401lambda_slash_with_default_rule(Parser *p)
11402{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011403 if (p->level++ == MAXSTACK) {
11404 p->error_indicator = 1;
11405 PyErr_NoMemory();
11406 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011407 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011408 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011409 return NULL;
11410 }
11411 SlashWithDefault* _res = NULL;
11412 int _mark = p->mark;
11413 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
11414 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011415 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011416 return NULL;
11417 }
11418 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+ '/' ','"));
11419 Token * _literal;
11420 Token * _literal_1;
11421 asdl_seq * a;
11422 asdl_seq * b;
11423 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011424 (a = _loop0_98_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011425 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011426 (b = _loop1_99_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011427 &&
11428 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11429 &&
11430 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
11431 )
11432 {
11433 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 +010011434 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011435 if (_res == NULL && PyErr_Occurred()) {
11436 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011437 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011438 return NULL;
11439 }
11440 goto done;
11441 }
11442 p->mark = _mark;
11443 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11444 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
11445 }
11446 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
11447 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011448 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011449 return NULL;
11450 }
11451 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+ '/' &':'"));
11452 Token * _literal;
11453 asdl_seq * a;
11454 asdl_seq * b;
11455 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011456 (a = _loop0_100_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011457 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011458 (b = _loop1_101_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011459 &&
11460 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11461 &&
11462 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11463 )
11464 {
11465 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 +010011466 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011467 if (_res == NULL && PyErr_Occurred()) {
11468 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011469 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011470 return NULL;
11471 }
11472 goto done;
11473 }
11474 p->mark = _mark;
11475 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11476 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
11477 }
11478 _res = NULL;
11479 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011480 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011481 return _res;
11482}
11483
11484// lambda_star_etc:
11485// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
11486// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
11487// | lambda_kwds
11488// | invalid_lambda_star_etc
11489static StarEtc*
11490lambda_star_etc_rule(Parser *p)
11491{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011492 if (p->level++ == MAXSTACK) {
11493 p->error_indicator = 1;
11494 PyErr_NoMemory();
11495 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011496 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011497 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011498 return NULL;
11499 }
11500 StarEtc* _res = NULL;
11501 int _mark = p->mark;
11502 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
11503 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011504 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011505 return NULL;
11506 }
11507 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?"));
11508 Token * _literal;
11509 arg_ty a;
11510 asdl_seq * b;
11511 void *c;
11512 if (
11513 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
11514 &&
11515 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
11516 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011517 (b = _loop0_102_rule(p)) // lambda_param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011518 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020011519 (c = lambda_kwds_rule(p), !p->error_indicator) // lambda_kwds?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011520 )
11521 {
11522 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?"));
11523 _res = _PyPegen_star_etc ( p , a , b , c );
11524 if (_res == NULL && PyErr_Occurred()) {
11525 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011526 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011527 return NULL;
11528 }
11529 goto done;
11530 }
11531 p->mark = _mark;
11532 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11533 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
11534 }
11535 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
11536 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011537 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011538 return NULL;
11539 }
11540 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11541 Token * _literal;
11542 Token * _literal_1;
11543 asdl_seq * b;
11544 void *c;
11545 if (
11546 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
11547 &&
11548 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
11549 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011550 (b = _loop1_103_rule(p)) // lambda_param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011551 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020011552 (c = lambda_kwds_rule(p), !p->error_indicator) // lambda_kwds?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011553 )
11554 {
11555 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11556 _res = _PyPegen_star_etc ( p , NULL , b , c );
11557 if (_res == NULL && PyErr_Occurred()) {
11558 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011559 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011560 return NULL;
11561 }
11562 goto done;
11563 }
11564 p->mark = _mark;
11565 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11566 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11567 }
11568 { // lambda_kwds
11569 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011570 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011571 return NULL;
11572 }
11573 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
11574 arg_ty a;
11575 if (
11576 (a = lambda_kwds_rule(p)) // lambda_kwds
11577 )
11578 {
11579 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
11580 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
11581 if (_res == NULL && PyErr_Occurred()) {
11582 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011583 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011584 return NULL;
11585 }
11586 goto done;
11587 }
11588 p->mark = _mark;
11589 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11590 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
11591 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011592 if (p->call_invalid_rules) { // invalid_lambda_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011593 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011594 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011595 return NULL;
11596 }
11597 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
11598 void *invalid_lambda_star_etc_var;
11599 if (
11600 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
11601 )
11602 {
11603 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
11604 _res = invalid_lambda_star_etc_var;
11605 goto done;
11606 }
11607 p->mark = _mark;
11608 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11609 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
11610 }
11611 _res = NULL;
11612 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011613 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011614 return _res;
11615}
11616
11617// lambda_kwds: '**' lambda_param_no_default
11618static arg_ty
11619lambda_kwds_rule(Parser *p)
11620{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011621 if (p->level++ == MAXSTACK) {
11622 p->error_indicator = 1;
11623 PyErr_NoMemory();
11624 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011625 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011626 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011627 return NULL;
11628 }
11629 arg_ty _res = NULL;
11630 int _mark = p->mark;
11631 { // '**' lambda_param_no_default
11632 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011633 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011634 return NULL;
11635 }
11636 D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
11637 Token * _literal;
11638 arg_ty a;
11639 if (
11640 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
11641 &&
11642 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
11643 )
11644 {
11645 D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
11646 _res = a;
11647 if (_res == NULL && PyErr_Occurred()) {
11648 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011649 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011650 return NULL;
11651 }
11652 goto done;
11653 }
11654 p->mark = _mark;
11655 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
11656 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
11657 }
11658 _res = NULL;
11659 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011660 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011661 return _res;
11662}
11663
11664// lambda_param_no_default: lambda_param ',' | lambda_param &':'
11665static arg_ty
11666lambda_param_no_default_rule(Parser *p)
11667{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011668 if (p->level++ == MAXSTACK) {
11669 p->error_indicator = 1;
11670 PyErr_NoMemory();
11671 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011672 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011673 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011674 return NULL;
11675 }
11676 arg_ty _res = NULL;
11677 int _mark = p->mark;
11678 { // lambda_param ','
11679 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011680 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011681 return NULL;
11682 }
11683 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
11684 Token * _literal;
11685 arg_ty a;
11686 if (
11687 (a = lambda_param_rule(p)) // lambda_param
11688 &&
11689 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11690 )
11691 {
11692 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
11693 _res = a;
11694 if (_res == NULL && PyErr_Occurred()) {
11695 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011696 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011697 return NULL;
11698 }
11699 goto done;
11700 }
11701 p->mark = _mark;
11702 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11703 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
11704 }
11705 { // lambda_param &':'
11706 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011707 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011708 return NULL;
11709 }
11710 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
11711 arg_ty a;
11712 if (
11713 (a = lambda_param_rule(p)) // lambda_param
11714 &&
11715 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11716 )
11717 {
11718 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
11719 _res = a;
11720 if (_res == NULL && PyErr_Occurred()) {
11721 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011722 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011723 return NULL;
11724 }
11725 goto done;
11726 }
11727 p->mark = _mark;
11728 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
11730 }
11731 _res = NULL;
11732 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011733 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011734 return _res;
11735}
11736
11737// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
11738static NameDefaultPair*
11739lambda_param_with_default_rule(Parser *p)
11740{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011741 if (p->level++ == MAXSTACK) {
11742 p->error_indicator = 1;
11743 PyErr_NoMemory();
11744 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011745 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011746 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011747 return NULL;
11748 }
11749 NameDefaultPair* _res = NULL;
11750 int _mark = p->mark;
11751 { // lambda_param default ','
11752 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011753 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011754 return NULL;
11755 }
11756 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
11757 Token * _literal;
11758 arg_ty a;
11759 expr_ty c;
11760 if (
11761 (a = lambda_param_rule(p)) // lambda_param
11762 &&
11763 (c = default_rule(p)) // default
11764 &&
11765 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11766 )
11767 {
11768 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
11769 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11770 if (_res == NULL && PyErr_Occurred()) {
11771 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011772 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011773 return NULL;
11774 }
11775 goto done;
11776 }
11777 p->mark = _mark;
11778 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11779 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
11780 }
11781 { // lambda_param default &':'
11782 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011783 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011784 return NULL;
11785 }
11786 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
11787 arg_ty a;
11788 expr_ty c;
11789 if (
11790 (a = lambda_param_rule(p)) // lambda_param
11791 &&
11792 (c = default_rule(p)) // default
11793 &&
11794 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11795 )
11796 {
11797 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
11798 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11799 if (_res == NULL && PyErr_Occurred()) {
11800 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011801 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011802 return NULL;
11803 }
11804 goto done;
11805 }
11806 p->mark = _mark;
11807 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
11809 }
11810 _res = NULL;
11811 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011812 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011813 return _res;
11814}
11815
11816// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
11817static NameDefaultPair*
11818lambda_param_maybe_default_rule(Parser *p)
11819{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011820 if (p->level++ == MAXSTACK) {
11821 p->error_indicator = 1;
11822 PyErr_NoMemory();
11823 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011824 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011825 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011826 return NULL;
11827 }
11828 NameDefaultPair* _res = NULL;
11829 int _mark = p->mark;
11830 { // lambda_param default? ','
11831 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011832 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011833 return NULL;
11834 }
11835 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
11836 Token * _literal;
11837 arg_ty a;
11838 void *c;
11839 if (
11840 (a = lambda_param_rule(p)) // lambda_param
11841 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020011842 (c = default_rule(p), !p->error_indicator) // default?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011843 &&
11844 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11845 )
11846 {
11847 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
11848 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11849 if (_res == NULL && PyErr_Occurred()) {
11850 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011851 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011852 return NULL;
11853 }
11854 goto done;
11855 }
11856 p->mark = _mark;
11857 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
11858 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
11859 }
11860 { // lambda_param default? &':'
11861 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011862 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011863 return NULL;
11864 }
11865 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
11866 arg_ty a;
11867 void *c;
11868 if (
11869 (a = lambda_param_rule(p)) // lambda_param
11870 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020011871 (c = default_rule(p), !p->error_indicator) // default?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011872 &&
11873 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11874 )
11875 {
11876 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
11877 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11878 if (_res == NULL && PyErr_Occurred()) {
11879 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011880 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011881 return NULL;
11882 }
11883 goto done;
11884 }
11885 p->mark = _mark;
11886 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
11887 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
11888 }
11889 _res = NULL;
11890 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011891 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011892 return _res;
11893}
11894
11895// lambda_param: NAME
11896static arg_ty
11897lambda_param_rule(Parser *p)
11898{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011899 if (p->level++ == MAXSTACK) {
11900 p->error_indicator = 1;
11901 PyErr_NoMemory();
11902 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011903 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011904 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011905 return NULL;
11906 }
11907 arg_ty _res = NULL;
11908 int _mark = p->mark;
11909 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11910 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011911 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011912 return NULL;
11913 }
11914 int _start_lineno = p->tokens[_mark]->lineno;
11915 UNUSED(_start_lineno); // Only used by EXTRA macro
11916 int _start_col_offset = p->tokens[_mark]->col_offset;
11917 UNUSED(_start_col_offset); // Only used by EXTRA macro
11918 { // NAME
11919 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011920 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011921 return NULL;
11922 }
11923 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
11924 expr_ty a;
11925 if (
11926 (a = _PyPegen_name_token(p)) // NAME
11927 )
11928 {
11929 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
11930 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11931 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011932 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011933 return NULL;
11934 }
11935 int _end_lineno = _token->end_lineno;
11936 UNUSED(_end_lineno); // Only used by EXTRA macro
11937 int _end_col_offset = _token->end_col_offset;
11938 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011939 _res = _PyAST_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011940 if (_res == NULL && PyErr_Occurred()) {
11941 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011942 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011943 return NULL;
11944 }
11945 goto done;
11946 }
11947 p->mark = _mark;
11948 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
11949 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
11950 }
11951 _res = NULL;
11952 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011953 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011954 return _res;
11955}
11956
11957// disjunction: conjunction (('or' conjunction))+ | conjunction
11958static expr_ty
11959disjunction_rule(Parser *p)
11960{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011961 if (p->level++ == MAXSTACK) {
11962 p->error_indicator = 1;
11963 PyErr_NoMemory();
11964 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011965 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011966 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011967 return NULL;
11968 }
11969 expr_ty _res = NULL;
11970 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011971 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011972 return _res;
11973 }
11974 int _mark = p->mark;
11975 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11976 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011977 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011978 return NULL;
11979 }
11980 int _start_lineno = p->tokens[_mark]->lineno;
11981 UNUSED(_start_lineno); // Only used by EXTRA macro
11982 int _start_col_offset = p->tokens[_mark]->col_offset;
11983 UNUSED(_start_col_offset); // Only used by EXTRA macro
11984 { // conjunction (('or' conjunction))+
11985 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000011986 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011987 return NULL;
11988 }
11989 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
11990 expr_ty a;
11991 asdl_seq * b;
11992 if (
11993 (a = conjunction_rule(p)) // conjunction
11994 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011995 (b = _loop1_104_rule(p)) // (('or' conjunction))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011996 )
11997 {
11998 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
11999 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12000 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012001 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012002 return NULL;
12003 }
12004 int _end_lineno = _token->end_lineno;
12005 UNUSED(_end_lineno); // Only used by EXTRA macro
12006 int _end_col_offset = _token->end_col_offset;
12007 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012008 _res = _PyAST_BoolOp ( Or , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012009 if (_res == NULL && PyErr_Occurred()) {
12010 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012011 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012012 return NULL;
12013 }
12014 goto done;
12015 }
12016 p->mark = _mark;
12017 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
12018 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
12019 }
12020 { // conjunction
12021 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012022 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012023 return NULL;
12024 }
12025 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
12026 expr_ty conjunction_var;
12027 if (
12028 (conjunction_var = conjunction_rule(p)) // conjunction
12029 )
12030 {
12031 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
12032 _res = conjunction_var;
12033 goto done;
12034 }
12035 p->mark = _mark;
12036 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
12037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
12038 }
12039 _res = NULL;
12040 done:
12041 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012042 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012043 return _res;
12044}
12045
12046// conjunction: inversion (('and' inversion))+ | inversion
12047static expr_ty
12048conjunction_rule(Parser *p)
12049{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012050 if (p->level++ == MAXSTACK) {
12051 p->error_indicator = 1;
12052 PyErr_NoMemory();
12053 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012054 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012055 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012056 return NULL;
12057 }
12058 expr_ty _res = NULL;
12059 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012060 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012061 return _res;
12062 }
12063 int _mark = p->mark;
12064 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12065 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012066 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012067 return NULL;
12068 }
12069 int _start_lineno = p->tokens[_mark]->lineno;
12070 UNUSED(_start_lineno); // Only used by EXTRA macro
12071 int _start_col_offset = p->tokens[_mark]->col_offset;
12072 UNUSED(_start_col_offset); // Only used by EXTRA macro
12073 { // inversion (('and' inversion))+
12074 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012075 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012076 return NULL;
12077 }
12078 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
12079 expr_ty a;
12080 asdl_seq * b;
12081 if (
12082 (a = inversion_rule(p)) // inversion
12083 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080012084 (b = _loop1_105_rule(p)) // (('and' inversion))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012085 )
12086 {
12087 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
12088 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12089 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012090 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012091 return NULL;
12092 }
12093 int _end_lineno = _token->end_lineno;
12094 UNUSED(_end_lineno); // Only used by EXTRA macro
12095 int _end_col_offset = _token->end_col_offset;
12096 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012097 _res = _PyAST_BoolOp ( And , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012098 if (_res == NULL && PyErr_Occurred()) {
12099 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012100 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012101 return NULL;
12102 }
12103 goto done;
12104 }
12105 p->mark = _mark;
12106 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
12107 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
12108 }
12109 { // inversion
12110 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012111 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012112 return NULL;
12113 }
12114 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
12115 expr_ty inversion_var;
12116 if (
12117 (inversion_var = inversion_rule(p)) // inversion
12118 )
12119 {
12120 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
12121 _res = inversion_var;
12122 goto done;
12123 }
12124 p->mark = _mark;
12125 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
12126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
12127 }
12128 _res = NULL;
12129 done:
12130 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012131 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012132 return _res;
12133}
12134
12135// inversion: 'not' inversion | comparison
12136static expr_ty
12137inversion_rule(Parser *p)
12138{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012139 if (p->level++ == MAXSTACK) {
12140 p->error_indicator = 1;
12141 PyErr_NoMemory();
12142 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012143 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012144 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012145 return NULL;
12146 }
12147 expr_ty _res = NULL;
12148 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012149 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012150 return _res;
12151 }
12152 int _mark = p->mark;
12153 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12154 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012155 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012156 return NULL;
12157 }
12158 int _start_lineno = p->tokens[_mark]->lineno;
12159 UNUSED(_start_lineno); // Only used by EXTRA macro
12160 int _start_col_offset = p->tokens[_mark]->col_offset;
12161 UNUSED(_start_col_offset); // Only used by EXTRA macro
12162 { // 'not' inversion
12163 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012164 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012165 return NULL;
12166 }
12167 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
12168 Token * _keyword;
12169 expr_ty a;
12170 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012171 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012172 &&
12173 (a = inversion_rule(p)) // inversion
12174 )
12175 {
12176 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
12177 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12178 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012179 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012180 return NULL;
12181 }
12182 int _end_lineno = _token->end_lineno;
12183 UNUSED(_end_lineno); // Only used by EXTRA macro
12184 int _end_col_offset = _token->end_col_offset;
12185 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012186 _res = _PyAST_UnaryOp ( Not , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012187 if (_res == NULL && PyErr_Occurred()) {
12188 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012189 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012190 return NULL;
12191 }
12192 goto done;
12193 }
12194 p->mark = _mark;
12195 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
12196 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
12197 }
12198 { // comparison
12199 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012200 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012201 return NULL;
12202 }
12203 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
12204 expr_ty comparison_var;
12205 if (
12206 (comparison_var = comparison_rule(p)) // comparison
12207 )
12208 {
12209 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
12210 _res = comparison_var;
12211 goto done;
12212 }
12213 p->mark = _mark;
12214 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
12215 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
12216 }
12217 _res = NULL;
12218 done:
12219 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012220 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012221 return _res;
12222}
12223
12224// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
12225static expr_ty
12226comparison_rule(Parser *p)
12227{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012228 if (p->level++ == MAXSTACK) {
12229 p->error_indicator = 1;
12230 PyErr_NoMemory();
12231 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012232 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012233 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012234 return NULL;
12235 }
12236 expr_ty _res = NULL;
12237 int _mark = p->mark;
12238 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12239 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012240 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012241 return NULL;
12242 }
12243 int _start_lineno = p->tokens[_mark]->lineno;
12244 UNUSED(_start_lineno); // Only used by EXTRA macro
12245 int _start_col_offset = p->tokens[_mark]->col_offset;
12246 UNUSED(_start_col_offset); // Only used by EXTRA macro
12247 { // bitwise_or compare_op_bitwise_or_pair+
12248 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012249 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012250 return NULL;
12251 }
12252 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
12253 expr_ty a;
12254 asdl_seq * b;
12255 if (
12256 (a = bitwise_or_rule(p)) // bitwise_or
12257 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080012258 (b = _loop1_106_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012259 )
12260 {
12261 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
12262 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12263 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012264 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012265 return NULL;
12266 }
12267 int _end_lineno = _token->end_lineno;
12268 UNUSED(_end_lineno); // Only used by EXTRA macro
12269 int _end_col_offset = _token->end_col_offset;
12270 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012271 _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 +010012272 if (_res == NULL && PyErr_Occurred()) {
12273 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012274 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012275 return NULL;
12276 }
12277 goto done;
12278 }
12279 p->mark = _mark;
12280 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
12281 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
12282 }
12283 { // bitwise_or
12284 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012285 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012286 return NULL;
12287 }
12288 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
12289 expr_ty bitwise_or_var;
12290 if (
12291 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
12292 )
12293 {
12294 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
12295 _res = bitwise_or_var;
12296 goto done;
12297 }
12298 p->mark = _mark;
12299 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
12300 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
12301 }
12302 _res = NULL;
12303 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012304 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012305 return _res;
12306}
12307
12308// compare_op_bitwise_or_pair:
12309// | eq_bitwise_or
12310// | noteq_bitwise_or
12311// | lte_bitwise_or
12312// | lt_bitwise_or
12313// | gte_bitwise_or
12314// | gt_bitwise_or
12315// | notin_bitwise_or
12316// | in_bitwise_or
12317// | isnot_bitwise_or
12318// | is_bitwise_or
12319static CmpopExprPair*
12320compare_op_bitwise_or_pair_rule(Parser *p)
12321{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012322 if (p->level++ == MAXSTACK) {
12323 p->error_indicator = 1;
12324 PyErr_NoMemory();
12325 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012326 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012327 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012328 return NULL;
12329 }
12330 CmpopExprPair* _res = NULL;
12331 int _mark = p->mark;
12332 { // eq_bitwise_or
12333 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012334 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012335 return NULL;
12336 }
12337 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
12338 CmpopExprPair* eq_bitwise_or_var;
12339 if (
12340 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
12341 )
12342 {
12343 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
12344 _res = eq_bitwise_or_var;
12345 goto done;
12346 }
12347 p->mark = _mark;
12348 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
12350 }
12351 { // noteq_bitwise_or
12352 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012353 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012354 return NULL;
12355 }
12356 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
12357 CmpopExprPair* noteq_bitwise_or_var;
12358 if (
12359 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
12360 )
12361 {
12362 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
12363 _res = noteq_bitwise_or_var;
12364 goto done;
12365 }
12366 p->mark = _mark;
12367 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12368 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
12369 }
12370 { // lte_bitwise_or
12371 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012372 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012373 return NULL;
12374 }
12375 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
12376 CmpopExprPair* lte_bitwise_or_var;
12377 if (
12378 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
12379 )
12380 {
12381 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
12382 _res = lte_bitwise_or_var;
12383 goto done;
12384 }
12385 p->mark = _mark;
12386 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12387 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
12388 }
12389 { // lt_bitwise_or
12390 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012391 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012392 return NULL;
12393 }
12394 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
12395 CmpopExprPair* lt_bitwise_or_var;
12396 if (
12397 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
12398 )
12399 {
12400 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
12401 _res = lt_bitwise_or_var;
12402 goto done;
12403 }
12404 p->mark = _mark;
12405 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12406 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
12407 }
12408 { // gte_bitwise_or
12409 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012410 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012411 return NULL;
12412 }
12413 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
12414 CmpopExprPair* gte_bitwise_or_var;
12415 if (
12416 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
12417 )
12418 {
12419 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
12420 _res = gte_bitwise_or_var;
12421 goto done;
12422 }
12423 p->mark = _mark;
12424 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12425 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
12426 }
12427 { // gt_bitwise_or
12428 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012429 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012430 return NULL;
12431 }
12432 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
12433 CmpopExprPair* gt_bitwise_or_var;
12434 if (
12435 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
12436 )
12437 {
12438 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
12439 _res = gt_bitwise_or_var;
12440 goto done;
12441 }
12442 p->mark = _mark;
12443 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12444 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
12445 }
12446 { // notin_bitwise_or
12447 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012448 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012449 return NULL;
12450 }
12451 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
12452 CmpopExprPair* notin_bitwise_or_var;
12453 if (
12454 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
12455 )
12456 {
12457 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
12458 _res = notin_bitwise_or_var;
12459 goto done;
12460 }
12461 p->mark = _mark;
12462 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12463 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
12464 }
12465 { // in_bitwise_or
12466 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012467 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012468 return NULL;
12469 }
12470 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
12471 CmpopExprPair* in_bitwise_or_var;
12472 if (
12473 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
12474 )
12475 {
12476 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
12477 _res = in_bitwise_or_var;
12478 goto done;
12479 }
12480 p->mark = _mark;
12481 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12482 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
12483 }
12484 { // isnot_bitwise_or
12485 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012486 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012487 return NULL;
12488 }
12489 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
12490 CmpopExprPair* isnot_bitwise_or_var;
12491 if (
12492 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
12493 )
12494 {
12495 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
12496 _res = isnot_bitwise_or_var;
12497 goto done;
12498 }
12499 p->mark = _mark;
12500 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12501 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
12502 }
12503 { // is_bitwise_or
12504 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012505 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012506 return NULL;
12507 }
12508 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
12509 CmpopExprPair* is_bitwise_or_var;
12510 if (
12511 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
12512 )
12513 {
12514 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
12515 _res = is_bitwise_or_var;
12516 goto done;
12517 }
12518 p->mark = _mark;
12519 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12520 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
12521 }
12522 _res = NULL;
12523 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012524 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012525 return _res;
12526}
12527
12528// eq_bitwise_or: '==' bitwise_or
12529static CmpopExprPair*
12530eq_bitwise_or_rule(Parser *p)
12531{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012532 if (p->level++ == MAXSTACK) {
12533 p->error_indicator = 1;
12534 PyErr_NoMemory();
12535 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012536 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012537 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012538 return NULL;
12539 }
12540 CmpopExprPair* _res = NULL;
12541 int _mark = p->mark;
12542 { // '==' bitwise_or
12543 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012544 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012545 return NULL;
12546 }
12547 D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
12548 Token * _literal;
12549 expr_ty a;
12550 if (
12551 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
12552 &&
12553 (a = bitwise_or_rule(p)) // bitwise_or
12554 )
12555 {
12556 D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
12557 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
12558 if (_res == NULL && PyErr_Occurred()) {
12559 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012560 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012561 return NULL;
12562 }
12563 goto done;
12564 }
12565 p->mark = _mark;
12566 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12567 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
12568 }
12569 _res = NULL;
12570 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012571 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012572 return _res;
12573}
12574
12575// noteq_bitwise_or: ('!=') bitwise_or
12576static CmpopExprPair*
12577noteq_bitwise_or_rule(Parser *p)
12578{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012579 if (p->level++ == MAXSTACK) {
12580 p->error_indicator = 1;
12581 PyErr_NoMemory();
12582 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012583 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012584 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012585 return NULL;
12586 }
12587 CmpopExprPair* _res = NULL;
12588 int _mark = p->mark;
12589 { // ('!=') bitwise_or
12590 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012591 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012592 return NULL;
12593 }
12594 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 -080012595 void *_tmp_107_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012596 expr_ty a;
12597 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012598 (_tmp_107_var = _tmp_107_rule(p)) // '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012599 &&
12600 (a = bitwise_or_rule(p)) // bitwise_or
12601 )
12602 {
12603 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
12604 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
12605 if (_res == NULL && PyErr_Occurred()) {
12606 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012607 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012608 return NULL;
12609 }
12610 goto done;
12611 }
12612 p->mark = _mark;
12613 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12614 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
12615 }
12616 _res = NULL;
12617 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012618 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012619 return _res;
12620}
12621
12622// lte_bitwise_or: '<=' bitwise_or
12623static CmpopExprPair*
12624lte_bitwise_or_rule(Parser *p)
12625{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012626 if (p->level++ == MAXSTACK) {
12627 p->error_indicator = 1;
12628 PyErr_NoMemory();
12629 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012630 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012631 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012632 return NULL;
12633 }
12634 CmpopExprPair* _res = NULL;
12635 int _mark = p->mark;
12636 { // '<=' bitwise_or
12637 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012638 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012639 return NULL;
12640 }
12641 D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
12642 Token * _literal;
12643 expr_ty a;
12644 if (
12645 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
12646 &&
12647 (a = bitwise_or_rule(p)) // bitwise_or
12648 )
12649 {
12650 D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
12651 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
12652 if (_res == NULL && PyErr_Occurred()) {
12653 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012654 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012655 return NULL;
12656 }
12657 goto done;
12658 }
12659 p->mark = _mark;
12660 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12661 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
12662 }
12663 _res = NULL;
12664 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012665 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012666 return _res;
12667}
12668
12669// lt_bitwise_or: '<' bitwise_or
12670static CmpopExprPair*
12671lt_bitwise_or_rule(Parser *p)
12672{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012673 if (p->level++ == MAXSTACK) {
12674 p->error_indicator = 1;
12675 PyErr_NoMemory();
12676 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012677 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012678 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012679 return NULL;
12680 }
12681 CmpopExprPair* _res = NULL;
12682 int _mark = p->mark;
12683 { // '<' bitwise_or
12684 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012685 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012686 return NULL;
12687 }
12688 D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
12689 Token * _literal;
12690 expr_ty a;
12691 if (
12692 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
12693 &&
12694 (a = bitwise_or_rule(p)) // bitwise_or
12695 )
12696 {
12697 D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
12698 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
12699 if (_res == NULL && PyErr_Occurred()) {
12700 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012701 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012702 return NULL;
12703 }
12704 goto done;
12705 }
12706 p->mark = _mark;
12707 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12708 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
12709 }
12710 _res = NULL;
12711 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012712 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012713 return _res;
12714}
12715
12716// gte_bitwise_or: '>=' bitwise_or
12717static CmpopExprPair*
12718gte_bitwise_or_rule(Parser *p)
12719{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012720 if (p->level++ == MAXSTACK) {
12721 p->error_indicator = 1;
12722 PyErr_NoMemory();
12723 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012724 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012725 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012726 return NULL;
12727 }
12728 CmpopExprPair* _res = NULL;
12729 int _mark = p->mark;
12730 { // '>=' bitwise_or
12731 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012732 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012733 return NULL;
12734 }
12735 D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
12736 Token * _literal;
12737 expr_ty a;
12738 if (
12739 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
12740 &&
12741 (a = bitwise_or_rule(p)) // bitwise_or
12742 )
12743 {
12744 D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
12745 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
12746 if (_res == NULL && PyErr_Occurred()) {
12747 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012748 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012749 return NULL;
12750 }
12751 goto done;
12752 }
12753 p->mark = _mark;
12754 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12755 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
12756 }
12757 _res = NULL;
12758 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012759 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012760 return _res;
12761}
12762
12763// gt_bitwise_or: '>' bitwise_or
12764static CmpopExprPair*
12765gt_bitwise_or_rule(Parser *p)
12766{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012767 if (p->level++ == MAXSTACK) {
12768 p->error_indicator = 1;
12769 PyErr_NoMemory();
12770 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012771 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012772 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012773 return NULL;
12774 }
12775 CmpopExprPair* _res = NULL;
12776 int _mark = p->mark;
12777 { // '>' bitwise_or
12778 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012779 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012780 return NULL;
12781 }
12782 D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
12783 Token * _literal;
12784 expr_ty a;
12785 if (
12786 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
12787 &&
12788 (a = bitwise_or_rule(p)) // bitwise_or
12789 )
12790 {
12791 D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
12792 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
12793 if (_res == NULL && PyErr_Occurred()) {
12794 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012795 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012796 return NULL;
12797 }
12798 goto done;
12799 }
12800 p->mark = _mark;
12801 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
12803 }
12804 _res = NULL;
12805 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012806 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012807 return _res;
12808}
12809
12810// notin_bitwise_or: 'not' 'in' bitwise_or
12811static CmpopExprPair*
12812notin_bitwise_or_rule(Parser *p)
12813{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012814 if (p->level++ == MAXSTACK) {
12815 p->error_indicator = 1;
12816 PyErr_NoMemory();
12817 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012818 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012819 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012820 return NULL;
12821 }
12822 CmpopExprPair* _res = NULL;
12823 int _mark = p->mark;
12824 { // 'not' 'in' bitwise_or
12825 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012826 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012827 return NULL;
12828 }
12829 D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
12830 Token * _keyword;
12831 Token * _keyword_1;
12832 expr_ty a;
12833 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012834 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012835 &&
12836 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
12837 &&
12838 (a = bitwise_or_rule(p)) // bitwise_or
12839 )
12840 {
12841 D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
12842 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
12843 if (_res == NULL && PyErr_Occurred()) {
12844 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012845 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012846 return NULL;
12847 }
12848 goto done;
12849 }
12850 p->mark = _mark;
12851 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12852 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
12853 }
12854 _res = NULL;
12855 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012856 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012857 return _res;
12858}
12859
12860// in_bitwise_or: 'in' bitwise_or
12861static CmpopExprPair*
12862in_bitwise_or_rule(Parser *p)
12863{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012864 if (p->level++ == MAXSTACK) {
12865 p->error_indicator = 1;
12866 PyErr_NoMemory();
12867 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012868 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012869 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012870 return NULL;
12871 }
12872 CmpopExprPair* _res = NULL;
12873 int _mark = p->mark;
12874 { // 'in' bitwise_or
12875 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012876 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012877 return NULL;
12878 }
12879 D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
12880 Token * _keyword;
12881 expr_ty a;
12882 if (
12883 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
12884 &&
12885 (a = bitwise_or_rule(p)) // bitwise_or
12886 )
12887 {
12888 D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
12889 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
12890 if (_res == NULL && PyErr_Occurred()) {
12891 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012892 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012893 return NULL;
12894 }
12895 goto done;
12896 }
12897 p->mark = _mark;
12898 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12899 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
12900 }
12901 _res = NULL;
12902 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012903 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012904 return _res;
12905}
12906
12907// isnot_bitwise_or: 'is' 'not' bitwise_or
12908static CmpopExprPair*
12909isnot_bitwise_or_rule(Parser *p)
12910{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012911 if (p->level++ == MAXSTACK) {
12912 p->error_indicator = 1;
12913 PyErr_NoMemory();
12914 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012915 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012916 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012917 return NULL;
12918 }
12919 CmpopExprPair* _res = NULL;
12920 int _mark = p->mark;
12921 { // 'is' 'not' bitwise_or
12922 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012923 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012924 return NULL;
12925 }
12926 D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
12927 Token * _keyword;
12928 Token * _keyword_1;
12929 expr_ty a;
12930 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012931 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012932 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080012933 (_keyword_1 = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012934 &&
12935 (a = bitwise_or_rule(p)) // bitwise_or
12936 )
12937 {
12938 D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
12939 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
12940 if (_res == NULL && PyErr_Occurred()) {
12941 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012942 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012943 return NULL;
12944 }
12945 goto done;
12946 }
12947 p->mark = _mark;
12948 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12949 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
12950 }
12951 _res = NULL;
12952 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012953 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012954 return _res;
12955}
12956
12957// is_bitwise_or: 'is' bitwise_or
12958static CmpopExprPair*
12959is_bitwise_or_rule(Parser *p)
12960{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012961 if (p->level++ == MAXSTACK) {
12962 p->error_indicator = 1;
12963 PyErr_NoMemory();
12964 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012965 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012966 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012967 return NULL;
12968 }
12969 CmpopExprPair* _res = NULL;
12970 int _mark = p->mark;
12971 { // 'is' bitwise_or
12972 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012973 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012974 return NULL;
12975 }
12976 D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
12977 Token * _keyword;
12978 expr_ty a;
12979 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012980 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012981 &&
12982 (a = bitwise_or_rule(p)) // bitwise_or
12983 )
12984 {
12985 D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
12986 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
12987 if (_res == NULL && PyErr_Occurred()) {
12988 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000012989 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012990 return NULL;
12991 }
12992 goto done;
12993 }
12994 p->mark = _mark;
12995 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
12997 }
12998 _res = NULL;
12999 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013000 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013001 return _res;
13002}
13003
13004// Left-recursive
13005// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
13006static expr_ty bitwise_or_raw(Parser *);
13007static expr_ty
13008bitwise_or_rule(Parser *p)
13009{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013010 if (p->level++ == MAXSTACK) {
13011 p->error_indicator = 1;
13012 PyErr_NoMemory();
13013 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013014 expr_ty _res = NULL;
13015 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013016 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013017 return _res;
13018 }
13019 int _mark = p->mark;
13020 int _resmark = p->mark;
13021 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013022 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
13023 if (tmpvar_2) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013024 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013025 return _res;
13026 }
13027 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013028 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013029 void *_raw = bitwise_or_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013030 p->in_raw_rule--;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013031 if (p->error_indicator) {
13032 p->level--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013033 return NULL;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013034 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013035 if (_raw == NULL || p->mark <= _resmark)
13036 break;
13037 _resmark = p->mark;
13038 _res = _raw;
13039 }
13040 p->mark = _resmark;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013041 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013042 return _res;
13043}
13044static expr_ty
13045bitwise_or_raw(Parser *p)
13046{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013047 if (p->level++ == MAXSTACK) {
13048 p->error_indicator = 1;
13049 PyErr_NoMemory();
13050 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013051 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013052 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013053 return NULL;
13054 }
13055 expr_ty _res = NULL;
13056 int _mark = p->mark;
13057 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13058 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013059 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013060 return NULL;
13061 }
13062 int _start_lineno = p->tokens[_mark]->lineno;
13063 UNUSED(_start_lineno); // Only used by EXTRA macro
13064 int _start_col_offset = p->tokens[_mark]->col_offset;
13065 UNUSED(_start_col_offset); // Only used by EXTRA macro
13066 { // bitwise_or '|' bitwise_xor
13067 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013068 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013069 return NULL;
13070 }
13071 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
13072 Token * _literal;
13073 expr_ty a;
13074 expr_ty b;
13075 if (
13076 (a = bitwise_or_rule(p)) // bitwise_or
13077 &&
13078 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
13079 &&
13080 (b = bitwise_xor_rule(p)) // bitwise_xor
13081 )
13082 {
13083 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
13084 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13085 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013086 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013087 return NULL;
13088 }
13089 int _end_lineno = _token->end_lineno;
13090 UNUSED(_end_lineno); // Only used by EXTRA macro
13091 int _end_col_offset = _token->end_col_offset;
13092 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013093 _res = _PyAST_BinOp ( a , BitOr , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013094 if (_res == NULL && PyErr_Occurred()) {
13095 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013096 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013097 return NULL;
13098 }
13099 goto done;
13100 }
13101 p->mark = _mark;
13102 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
13103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
13104 }
13105 { // bitwise_xor
13106 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013107 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013108 return NULL;
13109 }
13110 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
13111 expr_ty bitwise_xor_var;
13112 if (
13113 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
13114 )
13115 {
13116 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
13117 _res = bitwise_xor_var;
13118 goto done;
13119 }
13120 p->mark = _mark;
13121 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
13122 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
13123 }
13124 _res = NULL;
13125 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013126 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013127 return _res;
13128}
13129
13130// Left-recursive
13131// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
13132static expr_ty bitwise_xor_raw(Parser *);
13133static expr_ty
13134bitwise_xor_rule(Parser *p)
13135{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013136 if (p->level++ == MAXSTACK) {
13137 p->error_indicator = 1;
13138 PyErr_NoMemory();
13139 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013140 expr_ty _res = NULL;
13141 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013142 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013143 return _res;
13144 }
13145 int _mark = p->mark;
13146 int _resmark = p->mark;
13147 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013148 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
13149 if (tmpvar_3) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013150 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013151 return _res;
13152 }
13153 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013154 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013155 void *_raw = bitwise_xor_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013156 p->in_raw_rule--;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013157 if (p->error_indicator) {
13158 p->level--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013159 return NULL;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013160 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013161 if (_raw == NULL || p->mark <= _resmark)
13162 break;
13163 _resmark = p->mark;
13164 _res = _raw;
13165 }
13166 p->mark = _resmark;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013167 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013168 return _res;
13169}
13170static expr_ty
13171bitwise_xor_raw(Parser *p)
13172{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013173 if (p->level++ == MAXSTACK) {
13174 p->error_indicator = 1;
13175 PyErr_NoMemory();
13176 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013177 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013178 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013179 return NULL;
13180 }
13181 expr_ty _res = NULL;
13182 int _mark = p->mark;
13183 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13184 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013185 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013186 return NULL;
13187 }
13188 int _start_lineno = p->tokens[_mark]->lineno;
13189 UNUSED(_start_lineno); // Only used by EXTRA macro
13190 int _start_col_offset = p->tokens[_mark]->col_offset;
13191 UNUSED(_start_col_offset); // Only used by EXTRA macro
13192 { // bitwise_xor '^' bitwise_and
13193 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013194 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013195 return NULL;
13196 }
13197 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
13198 Token * _literal;
13199 expr_ty a;
13200 expr_ty b;
13201 if (
13202 (a = bitwise_xor_rule(p)) // bitwise_xor
13203 &&
13204 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
13205 &&
13206 (b = bitwise_and_rule(p)) // bitwise_and
13207 )
13208 {
13209 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
13210 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13211 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013212 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013213 return NULL;
13214 }
13215 int _end_lineno = _token->end_lineno;
13216 UNUSED(_end_lineno); // Only used by EXTRA macro
13217 int _end_col_offset = _token->end_col_offset;
13218 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013219 _res = _PyAST_BinOp ( a , BitXor , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013220 if (_res == NULL && PyErr_Occurred()) {
13221 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013222 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013223 return NULL;
13224 }
13225 goto done;
13226 }
13227 p->mark = _mark;
13228 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
13229 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
13230 }
13231 { // bitwise_and
13232 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013233 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013234 return NULL;
13235 }
13236 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
13237 expr_ty bitwise_and_var;
13238 if (
13239 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
13240 )
13241 {
13242 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
13243 _res = bitwise_and_var;
13244 goto done;
13245 }
13246 p->mark = _mark;
13247 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
13248 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
13249 }
13250 _res = NULL;
13251 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013252 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013253 return _res;
13254}
13255
13256// Left-recursive
13257// bitwise_and: bitwise_and '&' shift_expr | shift_expr
13258static expr_ty bitwise_and_raw(Parser *);
13259static expr_ty
13260bitwise_and_rule(Parser *p)
13261{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013262 if (p->level++ == MAXSTACK) {
13263 p->error_indicator = 1;
13264 PyErr_NoMemory();
13265 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013266 expr_ty _res = NULL;
13267 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013268 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013269 return _res;
13270 }
13271 int _mark = p->mark;
13272 int _resmark = p->mark;
13273 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013274 int tmpvar_4 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
13275 if (tmpvar_4) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013276 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013277 return _res;
13278 }
13279 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013280 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013281 void *_raw = bitwise_and_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013282 p->in_raw_rule--;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013283 if (p->error_indicator) {
13284 p->level--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013285 return NULL;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013286 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013287 if (_raw == NULL || p->mark <= _resmark)
13288 break;
13289 _resmark = p->mark;
13290 _res = _raw;
13291 }
13292 p->mark = _resmark;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013293 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013294 return _res;
13295}
13296static expr_ty
13297bitwise_and_raw(Parser *p)
13298{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013299 if (p->level++ == MAXSTACK) {
13300 p->error_indicator = 1;
13301 PyErr_NoMemory();
13302 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013303 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013304 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013305 return NULL;
13306 }
13307 expr_ty _res = NULL;
13308 int _mark = p->mark;
13309 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13310 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013311 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013312 return NULL;
13313 }
13314 int _start_lineno = p->tokens[_mark]->lineno;
13315 UNUSED(_start_lineno); // Only used by EXTRA macro
13316 int _start_col_offset = p->tokens[_mark]->col_offset;
13317 UNUSED(_start_col_offset); // Only used by EXTRA macro
13318 { // bitwise_and '&' shift_expr
13319 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013320 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013321 return NULL;
13322 }
13323 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
13324 Token * _literal;
13325 expr_ty a;
13326 expr_ty b;
13327 if (
13328 (a = bitwise_and_rule(p)) // bitwise_and
13329 &&
13330 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
13331 &&
13332 (b = shift_expr_rule(p)) // shift_expr
13333 )
13334 {
13335 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
13336 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13337 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013338 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013339 return NULL;
13340 }
13341 int _end_lineno = _token->end_lineno;
13342 UNUSED(_end_lineno); // Only used by EXTRA macro
13343 int _end_col_offset = _token->end_col_offset;
13344 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013345 _res = _PyAST_BinOp ( a , BitAnd , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013346 if (_res == NULL && PyErr_Occurred()) {
13347 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013348 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013349 return NULL;
13350 }
13351 goto done;
13352 }
13353 p->mark = _mark;
13354 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
13355 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
13356 }
13357 { // shift_expr
13358 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013359 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013360 return NULL;
13361 }
13362 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
13363 expr_ty shift_expr_var;
13364 if (
13365 (shift_expr_var = shift_expr_rule(p)) // shift_expr
13366 )
13367 {
13368 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
13369 _res = shift_expr_var;
13370 goto done;
13371 }
13372 p->mark = _mark;
13373 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
13374 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
13375 }
13376 _res = NULL;
13377 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013378 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013379 return _res;
13380}
13381
13382// Left-recursive
13383// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
13384static expr_ty shift_expr_raw(Parser *);
13385static expr_ty
13386shift_expr_rule(Parser *p)
13387{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013388 if (p->level++ == MAXSTACK) {
13389 p->error_indicator = 1;
13390 PyErr_NoMemory();
13391 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013392 expr_ty _res = NULL;
13393 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013394 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013395 return _res;
13396 }
13397 int _mark = p->mark;
13398 int _resmark = p->mark;
13399 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013400 int tmpvar_5 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
13401 if (tmpvar_5) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013402 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013403 return _res;
13404 }
13405 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013406 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013407 void *_raw = shift_expr_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013408 p->in_raw_rule--;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013409 if (p->error_indicator) {
13410 p->level--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013411 return NULL;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013412 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013413 if (_raw == NULL || p->mark <= _resmark)
13414 break;
13415 _resmark = p->mark;
13416 _res = _raw;
13417 }
13418 p->mark = _resmark;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013419 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013420 return _res;
13421}
13422static expr_ty
13423shift_expr_raw(Parser *p)
13424{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013425 if (p->level++ == MAXSTACK) {
13426 p->error_indicator = 1;
13427 PyErr_NoMemory();
13428 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013429 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013430 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013431 return NULL;
13432 }
13433 expr_ty _res = NULL;
13434 int _mark = p->mark;
13435 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13436 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013437 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013438 return NULL;
13439 }
13440 int _start_lineno = p->tokens[_mark]->lineno;
13441 UNUSED(_start_lineno); // Only used by EXTRA macro
13442 int _start_col_offset = p->tokens[_mark]->col_offset;
13443 UNUSED(_start_col_offset); // Only used by EXTRA macro
13444 { // shift_expr '<<' sum
13445 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013446 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013447 return NULL;
13448 }
13449 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
13450 Token * _literal;
13451 expr_ty a;
13452 expr_ty b;
13453 if (
13454 (a = shift_expr_rule(p)) // shift_expr
13455 &&
13456 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
13457 &&
13458 (b = sum_rule(p)) // sum
13459 )
13460 {
13461 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
13462 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13463 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013464 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013465 return NULL;
13466 }
13467 int _end_lineno = _token->end_lineno;
13468 UNUSED(_end_lineno); // Only used by EXTRA macro
13469 int _end_col_offset = _token->end_col_offset;
13470 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013471 _res = _PyAST_BinOp ( a , LShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013472 if (_res == NULL && PyErr_Occurred()) {
13473 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013474 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013475 return NULL;
13476 }
13477 goto done;
13478 }
13479 p->mark = _mark;
13480 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13481 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
13482 }
13483 { // shift_expr '>>' sum
13484 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013485 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013486 return NULL;
13487 }
13488 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
13489 Token * _literal;
13490 expr_ty a;
13491 expr_ty b;
13492 if (
13493 (a = shift_expr_rule(p)) // shift_expr
13494 &&
13495 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
13496 &&
13497 (b = sum_rule(p)) // sum
13498 )
13499 {
13500 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
13501 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13502 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013503 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013504 return NULL;
13505 }
13506 int _end_lineno = _token->end_lineno;
13507 UNUSED(_end_lineno); // Only used by EXTRA macro
13508 int _end_col_offset = _token->end_col_offset;
13509 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013510 _res = _PyAST_BinOp ( a , RShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013511 if (_res == NULL && PyErr_Occurred()) {
13512 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013513 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013514 return NULL;
13515 }
13516 goto done;
13517 }
13518 p->mark = _mark;
13519 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13520 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
13521 }
13522 { // sum
13523 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013524 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013525 return NULL;
13526 }
13527 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
13528 expr_ty sum_var;
13529 if (
13530 (sum_var = sum_rule(p)) // sum
13531 )
13532 {
13533 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
13534 _res = sum_var;
13535 goto done;
13536 }
13537 p->mark = _mark;
13538 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13539 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
13540 }
13541 _res = NULL;
13542 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013543 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013544 return _res;
13545}
13546
13547// Left-recursive
13548// sum: sum '+' term | sum '-' term | term
13549static expr_ty sum_raw(Parser *);
13550static expr_ty
13551sum_rule(Parser *p)
13552{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013553 if (p->level++ == MAXSTACK) {
13554 p->error_indicator = 1;
13555 PyErr_NoMemory();
13556 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013557 expr_ty _res = NULL;
13558 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013559 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013560 return _res;
13561 }
13562 int _mark = p->mark;
13563 int _resmark = p->mark;
13564 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013565 int tmpvar_6 = _PyPegen_update_memo(p, _mark, sum_type, _res);
13566 if (tmpvar_6) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013567 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013568 return _res;
13569 }
13570 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013571 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013572 void *_raw = sum_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013573 p->in_raw_rule--;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013574 if (p->error_indicator) {
13575 p->level--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013576 return NULL;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013577 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013578 if (_raw == NULL || p->mark <= _resmark)
13579 break;
13580 _resmark = p->mark;
13581 _res = _raw;
13582 }
13583 p->mark = _resmark;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013584 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013585 return _res;
13586}
13587static expr_ty
13588sum_raw(Parser *p)
13589{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013590 if (p->level++ == MAXSTACK) {
13591 p->error_indicator = 1;
13592 PyErr_NoMemory();
13593 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013594 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013595 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013596 return NULL;
13597 }
13598 expr_ty _res = NULL;
13599 int _mark = p->mark;
13600 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13601 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013602 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013603 return NULL;
13604 }
13605 int _start_lineno = p->tokens[_mark]->lineno;
13606 UNUSED(_start_lineno); // Only used by EXTRA macro
13607 int _start_col_offset = p->tokens[_mark]->col_offset;
13608 UNUSED(_start_col_offset); // Only used by EXTRA macro
13609 { // sum '+' term
13610 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013611 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013612 return NULL;
13613 }
13614 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
13615 Token * _literal;
13616 expr_ty a;
13617 expr_ty b;
13618 if (
13619 (a = sum_rule(p)) // sum
13620 &&
13621 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
13622 &&
13623 (b = term_rule(p)) // term
13624 )
13625 {
13626 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
13627 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13628 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013629 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013630 return NULL;
13631 }
13632 int _end_lineno = _token->end_lineno;
13633 UNUSED(_end_lineno); // Only used by EXTRA macro
13634 int _end_col_offset = _token->end_col_offset;
13635 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013636 _res = _PyAST_BinOp ( a , Add , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013637 if (_res == NULL && PyErr_Occurred()) {
13638 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013639 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013640 return NULL;
13641 }
13642 goto done;
13643 }
13644 p->mark = _mark;
13645 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13646 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
13647 }
13648 { // sum '-' term
13649 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013650 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013651 return NULL;
13652 }
13653 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
13654 Token * _literal;
13655 expr_ty a;
13656 expr_ty b;
13657 if (
13658 (a = sum_rule(p)) // sum
13659 &&
13660 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
13661 &&
13662 (b = term_rule(p)) // term
13663 )
13664 {
13665 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
13666 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13667 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013668 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013669 return NULL;
13670 }
13671 int _end_lineno = _token->end_lineno;
13672 UNUSED(_end_lineno); // Only used by EXTRA macro
13673 int _end_col_offset = _token->end_col_offset;
13674 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013675 _res = _PyAST_BinOp ( a , Sub , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013676 if (_res == NULL && PyErr_Occurred()) {
13677 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013678 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013679 return NULL;
13680 }
13681 goto done;
13682 }
13683 p->mark = _mark;
13684 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
13686 }
13687 { // term
13688 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013689 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013690 return NULL;
13691 }
13692 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
13693 expr_ty term_var;
13694 if (
13695 (term_var = term_rule(p)) // term
13696 )
13697 {
13698 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
13699 _res = term_var;
13700 goto done;
13701 }
13702 p->mark = _mark;
13703 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13704 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
13705 }
13706 _res = NULL;
13707 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013708 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013709 return _res;
13710}
13711
13712// Left-recursive
13713// term:
13714// | term '*' factor
13715// | term '/' factor
13716// | term '//' factor
13717// | term '%' factor
13718// | term '@' factor
13719// | factor
13720static expr_ty term_raw(Parser *);
13721static expr_ty
13722term_rule(Parser *p)
13723{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013724 if (p->level++ == MAXSTACK) {
13725 p->error_indicator = 1;
13726 PyErr_NoMemory();
13727 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013728 expr_ty _res = NULL;
13729 if (_PyPegen_is_memoized(p, term_type, &_res)) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013730 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013731 return _res;
13732 }
13733 int _mark = p->mark;
13734 int _resmark = p->mark;
13735 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013736 int tmpvar_7 = _PyPegen_update_memo(p, _mark, term_type, _res);
13737 if (tmpvar_7) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013738 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013739 return _res;
13740 }
13741 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013742 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013743 void *_raw = term_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013744 p->in_raw_rule--;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013745 if (p->error_indicator) {
13746 p->level--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013747 return NULL;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013748 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013749 if (_raw == NULL || p->mark <= _resmark)
13750 break;
13751 _resmark = p->mark;
13752 _res = _raw;
13753 }
13754 p->mark = _resmark;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013755 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013756 return _res;
13757}
13758static expr_ty
13759term_raw(Parser *p)
13760{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013761 if (p->level++ == MAXSTACK) {
13762 p->error_indicator = 1;
13763 PyErr_NoMemory();
13764 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013765 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013766 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013767 return NULL;
13768 }
13769 expr_ty _res = NULL;
13770 int _mark = p->mark;
13771 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13772 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013773 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013774 return NULL;
13775 }
13776 int _start_lineno = p->tokens[_mark]->lineno;
13777 UNUSED(_start_lineno); // Only used by EXTRA macro
13778 int _start_col_offset = p->tokens[_mark]->col_offset;
13779 UNUSED(_start_col_offset); // Only used by EXTRA macro
13780 { // term '*' factor
13781 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013782 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013783 return NULL;
13784 }
13785 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
13786 Token * _literal;
13787 expr_ty a;
13788 expr_ty b;
13789 if (
13790 (a = term_rule(p)) // term
13791 &&
13792 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
13793 &&
13794 (b = factor_rule(p)) // factor
13795 )
13796 {
13797 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
13798 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13799 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013800 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013801 return NULL;
13802 }
13803 int _end_lineno = _token->end_lineno;
13804 UNUSED(_end_lineno); // Only used by EXTRA macro
13805 int _end_col_offset = _token->end_col_offset;
13806 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013807 _res = _PyAST_BinOp ( a , Mult , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013808 if (_res == NULL && PyErr_Occurred()) {
13809 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013810 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013811 return NULL;
13812 }
13813 goto done;
13814 }
13815 p->mark = _mark;
13816 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13817 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
13818 }
13819 { // term '/' factor
13820 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013821 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013822 return NULL;
13823 }
13824 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
13825 Token * _literal;
13826 expr_ty a;
13827 expr_ty b;
13828 if (
13829 (a = term_rule(p)) // term
13830 &&
13831 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
13832 &&
13833 (b = factor_rule(p)) // factor
13834 )
13835 {
13836 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
13837 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13838 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013839 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013840 return NULL;
13841 }
13842 int _end_lineno = _token->end_lineno;
13843 UNUSED(_end_lineno); // Only used by EXTRA macro
13844 int _end_col_offset = _token->end_col_offset;
13845 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013846 _res = _PyAST_BinOp ( a , Div , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013847 if (_res == NULL && PyErr_Occurred()) {
13848 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013849 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013850 return NULL;
13851 }
13852 goto done;
13853 }
13854 p->mark = _mark;
13855 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13856 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
13857 }
13858 { // term '//' factor
13859 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013860 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013861 return NULL;
13862 }
13863 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
13864 Token * _literal;
13865 expr_ty a;
13866 expr_ty b;
13867 if (
13868 (a = term_rule(p)) // term
13869 &&
13870 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
13871 &&
13872 (b = factor_rule(p)) // factor
13873 )
13874 {
13875 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
13876 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13877 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013878 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013879 return NULL;
13880 }
13881 int _end_lineno = _token->end_lineno;
13882 UNUSED(_end_lineno); // Only used by EXTRA macro
13883 int _end_col_offset = _token->end_col_offset;
13884 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013885 _res = _PyAST_BinOp ( a , FloorDiv , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013886 if (_res == NULL && PyErr_Occurred()) {
13887 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013888 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013889 return NULL;
13890 }
13891 goto done;
13892 }
13893 p->mark = _mark;
13894 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
13896 }
13897 { // term '%' factor
13898 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013899 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013900 return NULL;
13901 }
13902 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
13903 Token * _literal;
13904 expr_ty a;
13905 expr_ty b;
13906 if (
13907 (a = term_rule(p)) // term
13908 &&
13909 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
13910 &&
13911 (b = factor_rule(p)) // factor
13912 )
13913 {
13914 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
13915 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13916 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013917 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013918 return NULL;
13919 }
13920 int _end_lineno = _token->end_lineno;
13921 UNUSED(_end_lineno); // Only used by EXTRA macro
13922 int _end_col_offset = _token->end_col_offset;
13923 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013924 _res = _PyAST_BinOp ( a , Mod , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013925 if (_res == NULL && PyErr_Occurred()) {
13926 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013927 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013928 return NULL;
13929 }
13930 goto done;
13931 }
13932 p->mark = _mark;
13933 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
13935 }
13936 { // term '@' factor
13937 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013938 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013939 return NULL;
13940 }
13941 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
13942 Token * _literal;
13943 expr_ty a;
13944 expr_ty b;
13945 if (
13946 (a = term_rule(p)) // term
13947 &&
13948 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
13949 &&
13950 (b = factor_rule(p)) // factor
13951 )
13952 {
13953 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
13954 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13955 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013956 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013957 return NULL;
13958 }
13959 int _end_lineno = _token->end_lineno;
13960 UNUSED(_end_lineno); // Only used by EXTRA macro
13961 int _end_col_offset = _token->end_col_offset;
13962 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013963 _res = CHECK_VERSION ( expr_ty , 5 , "The '@' operator is" , _PyAST_BinOp ( a , MatMult , b , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013964 if (_res == NULL && PyErr_Occurred()) {
13965 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013966 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013967 return NULL;
13968 }
13969 goto done;
13970 }
13971 p->mark = _mark;
13972 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13973 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
13974 }
13975 { // factor
13976 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013977 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013978 return NULL;
13979 }
13980 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
13981 expr_ty factor_var;
13982 if (
13983 (factor_var = factor_rule(p)) // factor
13984 )
13985 {
13986 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
13987 _res = factor_var;
13988 goto done;
13989 }
13990 p->mark = _mark;
13991 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13992 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
13993 }
13994 _res = NULL;
13995 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000013996 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013997 return _res;
13998}
13999
14000// factor: '+' factor | '-' factor | '~' factor | power
14001static expr_ty
14002factor_rule(Parser *p)
14003{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014004 if (p->level++ == MAXSTACK) {
14005 p->error_indicator = 1;
14006 PyErr_NoMemory();
14007 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014008 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014009 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014010 return NULL;
14011 }
14012 expr_ty _res = NULL;
14013 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014014 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014015 return _res;
14016 }
14017 int _mark = p->mark;
14018 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14019 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014020 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014021 return NULL;
14022 }
14023 int _start_lineno = p->tokens[_mark]->lineno;
14024 UNUSED(_start_lineno); // Only used by EXTRA macro
14025 int _start_col_offset = p->tokens[_mark]->col_offset;
14026 UNUSED(_start_col_offset); // Only used by EXTRA macro
14027 { // '+' factor
14028 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014029 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014030 return NULL;
14031 }
14032 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
14033 Token * _literal;
14034 expr_ty a;
14035 if (
14036 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
14037 &&
14038 (a = factor_rule(p)) // factor
14039 )
14040 {
14041 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
14042 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14043 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014044 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014045 return NULL;
14046 }
14047 int _end_lineno = _token->end_lineno;
14048 UNUSED(_end_lineno); // Only used by EXTRA macro
14049 int _end_col_offset = _token->end_col_offset;
14050 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014051 _res = _PyAST_UnaryOp ( UAdd , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014052 if (_res == NULL && PyErr_Occurred()) {
14053 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014054 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014055 return NULL;
14056 }
14057 goto done;
14058 }
14059 p->mark = _mark;
14060 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
14061 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
14062 }
14063 { // '-' factor
14064 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014065 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014066 return NULL;
14067 }
14068 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
14069 Token * _literal;
14070 expr_ty a;
14071 if (
14072 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
14073 &&
14074 (a = factor_rule(p)) // factor
14075 )
14076 {
14077 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
14078 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14079 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014080 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014081 return NULL;
14082 }
14083 int _end_lineno = _token->end_lineno;
14084 UNUSED(_end_lineno); // Only used by EXTRA macro
14085 int _end_col_offset = _token->end_col_offset;
14086 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014087 _res = _PyAST_UnaryOp ( USub , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014088 if (_res == NULL && PyErr_Occurred()) {
14089 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014090 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014091 return NULL;
14092 }
14093 goto done;
14094 }
14095 p->mark = _mark;
14096 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
14097 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
14098 }
14099 { // '~' factor
14100 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014101 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014102 return NULL;
14103 }
14104 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
14105 Token * _literal;
14106 expr_ty a;
14107 if (
14108 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
14109 &&
14110 (a = factor_rule(p)) // factor
14111 )
14112 {
14113 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
14114 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14115 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014116 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014117 return NULL;
14118 }
14119 int _end_lineno = _token->end_lineno;
14120 UNUSED(_end_lineno); // Only used by EXTRA macro
14121 int _end_col_offset = _token->end_col_offset;
14122 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014123 _res = _PyAST_UnaryOp ( Invert , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014124 if (_res == NULL && PyErr_Occurred()) {
14125 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014126 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014127 return NULL;
14128 }
14129 goto done;
14130 }
14131 p->mark = _mark;
14132 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
14133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
14134 }
14135 { // power
14136 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014137 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014138 return NULL;
14139 }
14140 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
14141 expr_ty power_var;
14142 if (
14143 (power_var = power_rule(p)) // power
14144 )
14145 {
14146 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
14147 _res = power_var;
14148 goto done;
14149 }
14150 p->mark = _mark;
14151 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
14152 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
14153 }
14154 _res = NULL;
14155 done:
14156 _PyPegen_insert_memo(p, _mark, factor_type, _res);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014157 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014158 return _res;
14159}
14160
14161// power: await_primary '**' factor | await_primary
14162static expr_ty
14163power_rule(Parser *p)
14164{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014165 if (p->level++ == MAXSTACK) {
14166 p->error_indicator = 1;
14167 PyErr_NoMemory();
14168 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014169 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014170 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014171 return NULL;
14172 }
14173 expr_ty _res = NULL;
14174 int _mark = p->mark;
14175 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14176 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014177 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014178 return NULL;
14179 }
14180 int _start_lineno = p->tokens[_mark]->lineno;
14181 UNUSED(_start_lineno); // Only used by EXTRA macro
14182 int _start_col_offset = p->tokens[_mark]->col_offset;
14183 UNUSED(_start_col_offset); // Only used by EXTRA macro
14184 { // await_primary '**' factor
14185 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014186 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014187 return NULL;
14188 }
14189 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
14190 Token * _literal;
14191 expr_ty a;
14192 expr_ty b;
14193 if (
14194 (a = await_primary_rule(p)) // await_primary
14195 &&
14196 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
14197 &&
14198 (b = factor_rule(p)) // factor
14199 )
14200 {
14201 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
14202 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14203 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014204 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014205 return NULL;
14206 }
14207 int _end_lineno = _token->end_lineno;
14208 UNUSED(_end_lineno); // Only used by EXTRA macro
14209 int _end_col_offset = _token->end_col_offset;
14210 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014211 _res = _PyAST_BinOp ( a , Pow , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014212 if (_res == NULL && PyErr_Occurred()) {
14213 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014214 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014215 return NULL;
14216 }
14217 goto done;
14218 }
14219 p->mark = _mark;
14220 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
14221 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
14222 }
14223 { // await_primary
14224 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014225 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014226 return NULL;
14227 }
14228 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
14229 expr_ty await_primary_var;
14230 if (
14231 (await_primary_var = await_primary_rule(p)) // await_primary
14232 )
14233 {
14234 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
14235 _res = await_primary_var;
14236 goto done;
14237 }
14238 p->mark = _mark;
14239 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
14240 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
14241 }
14242 _res = NULL;
14243 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014244 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014245 return _res;
14246}
14247
14248// await_primary: AWAIT primary | primary
14249static expr_ty
14250await_primary_rule(Parser *p)
14251{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014252 if (p->level++ == MAXSTACK) {
14253 p->error_indicator = 1;
14254 PyErr_NoMemory();
14255 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014256 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014257 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014258 return NULL;
14259 }
14260 expr_ty _res = NULL;
14261 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014262 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014263 return _res;
14264 }
14265 int _mark = p->mark;
14266 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14267 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014268 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014269 return NULL;
14270 }
14271 int _start_lineno = p->tokens[_mark]->lineno;
14272 UNUSED(_start_lineno); // Only used by EXTRA macro
14273 int _start_col_offset = p->tokens[_mark]->col_offset;
14274 UNUSED(_start_col_offset); // Only used by EXTRA macro
14275 { // AWAIT primary
14276 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014277 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014278 return NULL;
14279 }
14280 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
14281 expr_ty a;
14282 Token * await_var;
14283 if (
14284 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
14285 &&
14286 (a = primary_rule(p)) // primary
14287 )
14288 {
14289 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
14290 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14291 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014292 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014293 return NULL;
14294 }
14295 int _end_lineno = _token->end_lineno;
14296 UNUSED(_end_lineno); // Only used by EXTRA macro
14297 int _end_col_offset = _token->end_col_offset;
14298 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014299 _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _PyAST_Await ( a , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014300 if (_res == NULL && PyErr_Occurred()) {
14301 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014302 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014303 return NULL;
14304 }
14305 goto done;
14306 }
14307 p->mark = _mark;
14308 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
14309 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
14310 }
14311 { // primary
14312 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014313 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014314 return NULL;
14315 }
14316 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
14317 expr_ty primary_var;
14318 if (
14319 (primary_var = primary_rule(p)) // primary
14320 )
14321 {
14322 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
14323 _res = primary_var;
14324 goto done;
14325 }
14326 p->mark = _mark;
14327 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
14328 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
14329 }
14330 _res = NULL;
14331 done:
14332 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014333 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014334 return _res;
14335}
14336
14337// Left-recursive
14338// primary:
14339// | primary '.' NAME
14340// | primary genexp
14341// | primary '(' arguments? ')'
14342// | primary '[' slices ']'
14343// | atom
14344static expr_ty primary_raw(Parser *);
14345static expr_ty
14346primary_rule(Parser *p)
14347{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014348 if (p->level++ == MAXSTACK) {
14349 p->error_indicator = 1;
14350 PyErr_NoMemory();
14351 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014352 expr_ty _res = NULL;
14353 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014354 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014355 return _res;
14356 }
14357 int _mark = p->mark;
14358 int _resmark = p->mark;
14359 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080014360 int tmpvar_8 = _PyPegen_update_memo(p, _mark, primary_type, _res);
14361 if (tmpvar_8) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014362 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014363 return _res;
14364 }
14365 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014366 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014367 void *_raw = primary_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014368 p->in_raw_rule--;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014369 if (p->error_indicator) {
14370 p->level--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020014371 return NULL;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014372 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014373 if (_raw == NULL || p->mark <= _resmark)
14374 break;
14375 _resmark = p->mark;
14376 _res = _raw;
14377 }
14378 p->mark = _resmark;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014379 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014380 return _res;
14381}
14382static expr_ty
14383primary_raw(Parser *p)
14384{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014385 if (p->level++ == MAXSTACK) {
14386 p->error_indicator = 1;
14387 PyErr_NoMemory();
14388 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014389 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014390 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014391 return NULL;
14392 }
14393 expr_ty _res = NULL;
14394 int _mark = p->mark;
14395 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14396 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014397 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014398 return NULL;
14399 }
14400 int _start_lineno = p->tokens[_mark]->lineno;
14401 UNUSED(_start_lineno); // Only used by EXTRA macro
14402 int _start_col_offset = p->tokens[_mark]->col_offset;
14403 UNUSED(_start_col_offset); // Only used by EXTRA macro
14404 { // primary '.' NAME
14405 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014406 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014407 return NULL;
14408 }
14409 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
14410 Token * _literal;
14411 expr_ty a;
14412 expr_ty b;
14413 if (
14414 (a = primary_rule(p)) // primary
14415 &&
14416 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
14417 &&
14418 (b = _PyPegen_name_token(p)) // NAME
14419 )
14420 {
14421 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
14422 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14423 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014424 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014425 return NULL;
14426 }
14427 int _end_lineno = _token->end_lineno;
14428 UNUSED(_end_lineno); // Only used by EXTRA macro
14429 int _end_col_offset = _token->end_col_offset;
14430 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014431 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014432 if (_res == NULL && PyErr_Occurred()) {
14433 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014434 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014435 return NULL;
14436 }
14437 goto done;
14438 }
14439 p->mark = _mark;
14440 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14441 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
14442 }
14443 { // primary genexp
14444 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014445 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014446 return NULL;
14447 }
14448 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
14449 expr_ty a;
14450 expr_ty b;
14451 if (
14452 (a = primary_rule(p)) // primary
14453 &&
14454 (b = genexp_rule(p)) // genexp
14455 )
14456 {
14457 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
14458 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14459 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014460 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014461 return NULL;
14462 }
14463 int _end_lineno = _token->end_lineno;
14464 UNUSED(_end_lineno); // Only used by EXTRA macro
14465 int _end_col_offset = _token->end_col_offset;
14466 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014467 _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 +010014468 if (_res == NULL && PyErr_Occurred()) {
14469 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014470 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014471 return NULL;
14472 }
14473 goto done;
14474 }
14475 p->mark = _mark;
14476 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14477 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
14478 }
14479 { // primary '(' arguments? ')'
14480 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014481 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014482 return NULL;
14483 }
14484 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
14485 Token * _literal;
14486 Token * _literal_1;
14487 expr_ty a;
14488 void *b;
14489 if (
14490 (a = primary_rule(p)) // primary
14491 &&
14492 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14493 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020014494 (b = arguments_rule(p), !p->error_indicator) // arguments?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014495 &&
14496 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14497 )
14498 {
14499 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
14500 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14501 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014502 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014503 return NULL;
14504 }
14505 int _end_lineno = _token->end_lineno;
14506 UNUSED(_end_lineno); // Only used by EXTRA macro
14507 int _end_col_offset = _token->end_col_offset;
14508 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014509 _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 +010014510 if (_res == NULL && PyErr_Occurred()) {
14511 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014512 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014513 return NULL;
14514 }
14515 goto done;
14516 }
14517 p->mark = _mark;
14518 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14519 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
14520 }
14521 { // primary '[' slices ']'
14522 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014523 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014524 return NULL;
14525 }
14526 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
14527 Token * _literal;
14528 Token * _literal_1;
14529 expr_ty a;
14530 expr_ty b;
14531 if (
14532 (a = primary_rule(p)) // primary
14533 &&
14534 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14535 &&
14536 (b = slices_rule(p)) // slices
14537 &&
14538 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14539 )
14540 {
14541 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
14542 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14543 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014544 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014545 return NULL;
14546 }
14547 int _end_lineno = _token->end_lineno;
14548 UNUSED(_end_lineno); // Only used by EXTRA macro
14549 int _end_col_offset = _token->end_col_offset;
14550 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014551 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014552 if (_res == NULL && PyErr_Occurred()) {
14553 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014554 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014555 return NULL;
14556 }
14557 goto done;
14558 }
14559 p->mark = _mark;
14560 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
14562 }
14563 { // atom
14564 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014565 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014566 return NULL;
14567 }
14568 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
14569 expr_ty atom_var;
14570 if (
14571 (atom_var = atom_rule(p)) // atom
14572 )
14573 {
14574 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
14575 _res = atom_var;
14576 goto done;
14577 }
14578 p->mark = _mark;
14579 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
14581 }
14582 _res = NULL;
14583 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014584 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014585 return _res;
14586}
14587
14588// slices: slice !',' | ','.slice+ ','?
14589static expr_ty
14590slices_rule(Parser *p)
14591{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014592 if (p->level++ == MAXSTACK) {
14593 p->error_indicator = 1;
14594 PyErr_NoMemory();
14595 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014596 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014597 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014598 return NULL;
14599 }
14600 expr_ty _res = NULL;
14601 int _mark = p->mark;
14602 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14603 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014604 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014605 return NULL;
14606 }
14607 int _start_lineno = p->tokens[_mark]->lineno;
14608 UNUSED(_start_lineno); // Only used by EXTRA macro
14609 int _start_col_offset = p->tokens[_mark]->col_offset;
14610 UNUSED(_start_col_offset); // Only used by EXTRA macro
14611 { // slice !','
14612 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014613 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014614 return NULL;
14615 }
14616 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
14617 expr_ty a;
14618 if (
14619 (a = slice_rule(p)) // slice
14620 &&
14621 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
14622 )
14623 {
14624 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
14625 _res = a;
14626 if (_res == NULL && PyErr_Occurred()) {
14627 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014628 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014629 return NULL;
14630 }
14631 goto done;
14632 }
14633 p->mark = _mark;
14634 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
14635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
14636 }
14637 { // ','.slice+ ','?
14638 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014639 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014640 return NULL;
14641 }
14642 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
14643 void *_opt_var;
14644 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010014645 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014646 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014647 (a = (asdl_expr_seq*)_gather_108_rule(p)) // ','.slice+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014648 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020014649 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014650 )
14651 {
14652 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
14653 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14654 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014655 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014656 return NULL;
14657 }
14658 int _end_lineno = _token->end_lineno;
14659 UNUSED(_end_lineno); // Only used by EXTRA macro
14660 int _end_col_offset = _token->end_col_offset;
14661 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014662 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014663 if (_res == NULL && PyErr_Occurred()) {
14664 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014665 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014666 return NULL;
14667 }
14668 goto done;
14669 }
14670 p->mark = _mark;
14671 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
14672 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
14673 }
14674 _res = NULL;
14675 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014676 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014677 return _res;
14678}
14679
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014680// slice: expression? ':' expression? [':' expression?] | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014681static expr_ty
14682slice_rule(Parser *p)
14683{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014684 if (p->level++ == MAXSTACK) {
14685 p->error_indicator = 1;
14686 PyErr_NoMemory();
14687 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014688 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014689 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014690 return NULL;
14691 }
14692 expr_ty _res = NULL;
14693 int _mark = p->mark;
14694 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14695 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014696 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014697 return NULL;
14698 }
14699 int _start_lineno = p->tokens[_mark]->lineno;
14700 UNUSED(_start_lineno); // Only used by EXTRA macro
14701 int _start_col_offset = p->tokens[_mark]->col_offset;
14702 UNUSED(_start_col_offset); // Only used by EXTRA macro
14703 { // expression? ':' expression? [':' expression?]
14704 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014705 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014706 return NULL;
14707 }
14708 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14709 Token * _literal;
14710 void *a;
14711 void *b;
14712 void *c;
14713 if (
Łukasz Langa5c9cab52021-10-19 22:31:18 +020014714 (a = expression_rule(p), !p->error_indicator) // expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014715 &&
14716 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
14717 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020014718 (b = expression_rule(p), !p->error_indicator) // expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014719 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020014720 (c = _tmp_110_rule(p), !p->error_indicator) // [':' expression?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014721 )
14722 {
14723 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14724 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14725 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014726 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014727 return NULL;
14728 }
14729 int _end_lineno = _token->end_lineno;
14730 UNUSED(_end_lineno); // Only used by EXTRA macro
14731 int _end_col_offset = _token->end_col_offset;
14732 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014733 _res = _PyAST_Slice ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014734 if (_res == NULL && PyErr_Occurred()) {
14735 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014736 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014737 return NULL;
14738 }
14739 goto done;
14740 }
14741 p->mark = _mark;
14742 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
14743 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14744 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014745 { // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014746 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014747 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014748 return NULL;
14749 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014750 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014751 expr_ty a;
14752 if (
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014753 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014754 )
14755 {
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014756 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014757 _res = a;
14758 if (_res == NULL && PyErr_Occurred()) {
14759 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014760 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014761 return NULL;
14762 }
14763 goto done;
14764 }
14765 p->mark = _mark;
14766 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014767 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014768 }
14769 _res = NULL;
14770 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014771 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014772 return _res;
14773}
14774
14775// atom:
14776// | NAME
14777// | 'True'
14778// | 'False'
14779// | 'None'
14780// | &STRING strings
14781// | NUMBER
14782// | &'(' (tuple | group | genexp)
14783// | &'[' (list | listcomp)
14784// | &'{' (dict | set | dictcomp | setcomp)
14785// | '...'
14786static expr_ty
14787atom_rule(Parser *p)
14788{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014789 if (p->level++ == MAXSTACK) {
14790 p->error_indicator = 1;
14791 PyErr_NoMemory();
14792 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014793 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014794 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014795 return NULL;
14796 }
14797 expr_ty _res = NULL;
14798 int _mark = p->mark;
14799 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14800 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014801 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014802 return NULL;
14803 }
14804 int _start_lineno = p->tokens[_mark]->lineno;
14805 UNUSED(_start_lineno); // Only used by EXTRA macro
14806 int _start_col_offset = p->tokens[_mark]->col_offset;
14807 UNUSED(_start_col_offset); // Only used by EXTRA macro
14808 { // NAME
14809 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014810 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014811 return NULL;
14812 }
14813 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
14814 expr_ty name_var;
14815 if (
14816 (name_var = _PyPegen_name_token(p)) // NAME
14817 )
14818 {
14819 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
14820 _res = name_var;
14821 goto done;
14822 }
14823 p->mark = _mark;
14824 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14825 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
14826 }
14827 { // 'True'
14828 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014829 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014830 return NULL;
14831 }
14832 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
14833 Token * _keyword;
14834 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014835 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014836 )
14837 {
14838 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
14839 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14840 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014841 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014842 return NULL;
14843 }
14844 int _end_lineno = _token->end_lineno;
14845 UNUSED(_end_lineno); // Only used by EXTRA macro
14846 int _end_col_offset = _token->end_col_offset;
14847 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014848 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014849 if (_res == NULL && PyErr_Occurred()) {
14850 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014851 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014852 return NULL;
14853 }
14854 goto done;
14855 }
14856 p->mark = _mark;
14857 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14858 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
14859 }
14860 { // 'False'
14861 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014862 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014863 return NULL;
14864 }
14865 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
14866 Token * _keyword;
14867 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014868 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014869 )
14870 {
14871 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
14872 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14873 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014874 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014875 return NULL;
14876 }
14877 int _end_lineno = _token->end_lineno;
14878 UNUSED(_end_lineno); // Only used by EXTRA macro
14879 int _end_col_offset = _token->end_col_offset;
14880 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014881 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014882 if (_res == NULL && PyErr_Occurred()) {
14883 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014884 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014885 return NULL;
14886 }
14887 goto done;
14888 }
14889 p->mark = _mark;
14890 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14891 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
14892 }
14893 { // 'None'
14894 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014895 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014896 return NULL;
14897 }
14898 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
14899 Token * _keyword;
14900 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014901 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014902 )
14903 {
14904 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
14905 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14906 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014907 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014908 return NULL;
14909 }
14910 int _end_lineno = _token->end_lineno;
14911 UNUSED(_end_lineno); // Only used by EXTRA macro
14912 int _end_col_offset = _token->end_col_offset;
14913 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014914 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014915 if (_res == NULL && PyErr_Occurred()) {
14916 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014917 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014918 return NULL;
14919 }
14920 goto done;
14921 }
14922 p->mark = _mark;
14923 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
14925 }
14926 { // &STRING strings
14927 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014928 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014929 return NULL;
14930 }
14931 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
14932 expr_ty strings_var;
14933 if (
14934 _PyPegen_lookahead(1, _PyPegen_string_token, p)
14935 &&
14936 (strings_var = strings_rule(p)) // strings
14937 )
14938 {
14939 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
14940 _res = strings_var;
14941 goto done;
14942 }
14943 p->mark = _mark;
14944 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14945 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
14946 }
14947 { // NUMBER
14948 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014949 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014950 return NULL;
14951 }
14952 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
14953 expr_ty number_var;
14954 if (
14955 (number_var = _PyPegen_number_token(p)) // NUMBER
14956 )
14957 {
14958 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
14959 _res = number_var;
14960 goto done;
14961 }
14962 p->mark = _mark;
14963 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14964 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
14965 }
14966 { // &'(' (tuple | group | genexp)
14967 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014968 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014969 return NULL;
14970 }
14971 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014972 void *_tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014973 if (
14974 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
14975 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014976 (_tmp_111_var = _tmp_111_rule(p)) // tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014977 )
14978 {
14979 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 -080014980 _res = _tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014981 goto done;
14982 }
14983 p->mark = _mark;
14984 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14985 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
14986 }
14987 { // &'[' (list | listcomp)
14988 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000014989 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014990 return NULL;
14991 }
14992 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014993 void *_tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014994 if (
14995 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
14996 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014997 (_tmp_112_var = _tmp_112_rule(p)) // list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014998 )
14999 {
15000 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080015001 _res = _tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015002 goto done;
15003 }
15004 p->mark = _mark;
15005 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
15006 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
15007 }
15008 { // &'{' (dict | set | dictcomp | setcomp)
15009 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015010 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015011 return NULL;
15012 }
15013 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 -080015014 void *_tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015015 if (
15016 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
15017 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015018 (_tmp_113_var = _tmp_113_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015019 )
15020 {
15021 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 -080015022 _res = _tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015023 goto done;
15024 }
15025 p->mark = _mark;
15026 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
15027 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
15028 }
15029 { // '...'
15030 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015031 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015032 return NULL;
15033 }
15034 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
15035 Token * _literal;
15036 if (
15037 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
15038 )
15039 {
15040 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
15041 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15042 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015043 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015044 return NULL;
15045 }
15046 int _end_lineno = _token->end_lineno;
15047 UNUSED(_end_lineno); // Only used by EXTRA macro
15048 int _end_col_offset = _token->end_col_offset;
15049 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015050 _res = _PyAST_Constant ( Py_Ellipsis , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015051 if (_res == NULL && PyErr_Occurred()) {
15052 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015053 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015054 return NULL;
15055 }
15056 goto done;
15057 }
15058 p->mark = _mark;
15059 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
15060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
15061 }
15062 _res = NULL;
15063 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015064 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015065 return _res;
15066}
15067
15068// strings: STRING+
15069static expr_ty
15070strings_rule(Parser *p)
15071{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015072 if (p->level++ == MAXSTACK) {
15073 p->error_indicator = 1;
15074 PyErr_NoMemory();
15075 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015076 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015077 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015078 return NULL;
15079 }
15080 expr_ty _res = NULL;
15081 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015082 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015083 return _res;
15084 }
15085 int _mark = p->mark;
15086 { // STRING+
15087 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015088 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015089 return NULL;
15090 }
15091 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
15092 asdl_seq * a;
15093 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015094 (a = _loop1_114_rule(p)) // STRING+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015095 )
15096 {
15097 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
15098 _res = _PyPegen_concatenate_strings ( p , a );
15099 if (_res == NULL && PyErr_Occurred()) {
15100 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015101 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015102 return NULL;
15103 }
15104 goto done;
15105 }
15106 p->mark = _mark;
15107 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
15108 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
15109 }
15110 _res = NULL;
15111 done:
15112 _PyPegen_insert_memo(p, _mark, strings_type, _res);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015113 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015114 return _res;
15115}
15116
15117// list: '[' star_named_expressions? ']'
15118static expr_ty
15119list_rule(Parser *p)
15120{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015121 if (p->level++ == MAXSTACK) {
15122 p->error_indicator = 1;
15123 PyErr_NoMemory();
15124 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015125 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015126 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015127 return NULL;
15128 }
15129 expr_ty _res = NULL;
15130 int _mark = p->mark;
15131 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15132 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015133 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015134 return NULL;
15135 }
15136 int _start_lineno = p->tokens[_mark]->lineno;
15137 UNUSED(_start_lineno); // Only used by EXTRA macro
15138 int _start_col_offset = p->tokens[_mark]->col_offset;
15139 UNUSED(_start_col_offset); // Only used by EXTRA macro
15140 { // '[' star_named_expressions? ']'
15141 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015142 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015143 return NULL;
15144 }
15145 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
15146 Token * _literal;
15147 Token * _literal_1;
15148 void *a;
15149 if (
15150 (_literal = _PyPegen_expect_token(p, 9)) // token='['
15151 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020015152 (a = star_named_expressions_rule(p), !p->error_indicator) // star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015153 &&
15154 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
15155 )
15156 {
15157 D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
15158 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15159 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015160 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015161 return NULL;
15162 }
15163 int _end_lineno = _token->end_lineno;
15164 UNUSED(_end_lineno); // Only used by EXTRA macro
15165 int _end_col_offset = _token->end_col_offset;
15166 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015167 _res = _PyAST_List ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015168 if (_res == NULL && PyErr_Occurred()) {
15169 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015170 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015171 return NULL;
15172 }
15173 goto done;
15174 }
15175 p->mark = _mark;
15176 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
15177 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
15178 }
15179 _res = NULL;
15180 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015181 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015182 return _res;
15183}
15184
Pablo Galindo835f14f2021-01-31 22:52:56 +000015185// listcomp: '[' named_expression for_if_clauses ']' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015186static expr_ty
15187listcomp_rule(Parser *p)
15188{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015189 if (p->level++ == MAXSTACK) {
15190 p->error_indicator = 1;
15191 PyErr_NoMemory();
15192 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015193 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015194 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015195 return NULL;
15196 }
15197 expr_ty _res = NULL;
15198 int _mark = p->mark;
15199 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15200 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015201 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015202 return NULL;
15203 }
15204 int _start_lineno = p->tokens[_mark]->lineno;
15205 UNUSED(_start_lineno); // Only used by EXTRA macro
15206 int _start_col_offset = p->tokens[_mark]->col_offset;
15207 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000015208 { // '[' named_expression for_if_clauses ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015209 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015210 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015211 return NULL;
15212 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000015213 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 +010015214 Token * _literal;
15215 Token * _literal_1;
15216 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015217 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015218 if (
15219 (_literal = _PyPegen_expect_token(p, 9)) // token='['
15220 &&
15221 (a = named_expression_rule(p)) // named_expression
15222 &&
15223 (b = for_if_clauses_rule(p)) // for_if_clauses
15224 &&
15225 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
15226 )
15227 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000015228 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 +010015229 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15230 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015231 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015232 return NULL;
15233 }
15234 int _end_lineno = _token->end_lineno;
15235 UNUSED(_end_lineno); // Only used by EXTRA macro
15236 int _end_col_offset = _token->end_col_offset;
15237 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015238 _res = _PyAST_ListComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015239 if (_res == NULL && PyErr_Occurred()) {
15240 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015241 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015242 return NULL;
15243 }
15244 goto done;
15245 }
15246 p->mark = _mark;
15247 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000015248 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015249 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015250 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015251 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015252 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015253 return NULL;
15254 }
15255 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
15256 void *invalid_comprehension_var;
15257 if (
15258 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
15259 )
15260 {
15261 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
15262 _res = invalid_comprehension_var;
15263 goto done;
15264 }
15265 p->mark = _mark;
15266 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
15267 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
15268 }
15269 _res = NULL;
15270 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015271 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015272 return _res;
15273}
15274
15275// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
15276static expr_ty
15277tuple_rule(Parser *p)
15278{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015279 if (p->level++ == MAXSTACK) {
15280 p->error_indicator = 1;
15281 PyErr_NoMemory();
15282 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015283 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015284 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015285 return NULL;
15286 }
15287 expr_ty _res = NULL;
15288 int _mark = p->mark;
15289 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15290 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015291 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015292 return NULL;
15293 }
15294 int _start_lineno = p->tokens[_mark]->lineno;
15295 UNUSED(_start_lineno); // Only used by EXTRA macro
15296 int _start_col_offset = p->tokens[_mark]->col_offset;
15297 UNUSED(_start_col_offset); // Only used by EXTRA macro
15298 { // '(' [star_named_expression ',' star_named_expressions?] ')'
15299 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015300 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015301 return NULL;
15302 }
15303 D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
15304 Token * _literal;
15305 Token * _literal_1;
15306 void *a;
15307 if (
15308 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15309 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020015310 (a = _tmp_115_rule(p), !p->error_indicator) // [star_named_expression ',' star_named_expressions?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015311 &&
15312 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15313 )
15314 {
15315 D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
15316 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15317 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015318 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015319 return NULL;
15320 }
15321 int _end_lineno = _token->end_lineno;
15322 UNUSED(_end_lineno); // Only used by EXTRA macro
15323 int _end_col_offset = _token->end_col_offset;
15324 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015325 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015326 if (_res == NULL && PyErr_Occurred()) {
15327 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015328 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015329 return NULL;
15330 }
15331 goto done;
15332 }
15333 p->mark = _mark;
15334 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
15335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
15336 }
15337 _res = NULL;
15338 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015339 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015340 return _res;
15341}
15342
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015343// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015344static expr_ty
15345group_rule(Parser *p)
15346{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015347 if (p->level++ == MAXSTACK) {
15348 p->error_indicator = 1;
15349 PyErr_NoMemory();
15350 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015351 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015352 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015353 return NULL;
15354 }
15355 expr_ty _res = NULL;
15356 int _mark = p->mark;
15357 { // '(' (yield_expr | named_expression) ')'
15358 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015359 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015360 return NULL;
15361 }
15362 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
15363 Token * _literal;
15364 Token * _literal_1;
15365 void *a;
15366 if (
15367 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15368 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015369 (a = _tmp_116_rule(p)) // yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015370 &&
15371 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15372 )
15373 {
15374 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
15375 _res = a;
15376 if (_res == NULL && PyErr_Occurred()) {
15377 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015378 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015379 return NULL;
15380 }
15381 goto done;
15382 }
15383 p->mark = _mark;
15384 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
15385 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
15386 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015387 if (p->call_invalid_rules) { // invalid_group
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015388 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015389 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015390 return NULL;
15391 }
15392 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
15393 void *invalid_group_var;
15394 if (
15395 (invalid_group_var = invalid_group_rule(p)) // invalid_group
15396 )
15397 {
15398 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
15399 _res = invalid_group_var;
15400 goto done;
15401 }
15402 p->mark = _mark;
15403 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
15404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
15405 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015406 _res = NULL;
15407 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015408 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015409 return _res;
15410}
15411
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015412// genexp:
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000015413// | '(' (assignment_expression | expression !':=') for_if_clauses ')'
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015414// | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015415static expr_ty
15416genexp_rule(Parser *p)
15417{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015418 if (p->level++ == MAXSTACK) {
15419 p->error_indicator = 1;
15420 PyErr_NoMemory();
15421 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015422 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015423 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015424 return NULL;
15425 }
15426 expr_ty _res = NULL;
15427 int _mark = p->mark;
15428 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15429 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015430 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015431 return NULL;
15432 }
15433 int _start_lineno = p->tokens[_mark]->lineno;
15434 UNUSED(_start_lineno); // Only used by EXTRA macro
15435 int _start_col_offset = p->tokens[_mark]->col_offset;
15436 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000015437 { // '(' (assignment_expression | expression !':=') for_if_clauses ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015438 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015439 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015440 return NULL;
15441 }
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000015442 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (assignment_expression | expression !':=') for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015443 Token * _literal;
15444 Token * _literal_1;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015445 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015446 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015447 if (
15448 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15449 &&
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000015450 (a = _tmp_117_rule(p)) // assignment_expression | expression !':='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015451 &&
15452 (b = for_if_clauses_rule(p)) // for_if_clauses
15453 &&
15454 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15455 )
15456 {
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000015457 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (assignment_expression | expression !':=') for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015458 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15459 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015460 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015461 return NULL;
15462 }
15463 int _end_lineno = _token->end_lineno;
15464 UNUSED(_end_lineno); // Only used by EXTRA macro
15465 int _end_col_offset = _token->end_col_offset;
15466 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015467 _res = _PyAST_GeneratorExp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015468 if (_res == NULL && PyErr_Occurred()) {
15469 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015470 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015471 return NULL;
15472 }
15473 goto done;
15474 }
15475 p->mark = _mark;
15476 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000015477 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (assignment_expression | expression !':=') for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015478 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015479 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015480 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015481 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015482 return NULL;
15483 }
15484 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
15485 void *invalid_comprehension_var;
15486 if (
15487 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
15488 )
15489 {
15490 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
15491 _res = invalid_comprehension_var;
15492 goto done;
15493 }
15494 p->mark = _mark;
15495 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
15496 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
15497 }
15498 _res = NULL;
15499 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015500 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015501 return _res;
15502}
15503
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015504// set: '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015505static expr_ty
15506set_rule(Parser *p)
15507{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015508 if (p->level++ == MAXSTACK) {
15509 p->error_indicator = 1;
15510 PyErr_NoMemory();
15511 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015512 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015513 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015514 return NULL;
15515 }
15516 expr_ty _res = NULL;
15517 int _mark = p->mark;
15518 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15519 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015520 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015521 return NULL;
15522 }
15523 int _start_lineno = p->tokens[_mark]->lineno;
15524 UNUSED(_start_lineno); // Only used by EXTRA macro
15525 int _start_col_offset = p->tokens[_mark]->col_offset;
15526 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015527 { // '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015528 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015529 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015530 return NULL;
15531 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015532 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015533 Token * _literal;
15534 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015535 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015536 if (
15537 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15538 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015539 (a = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015540 &&
15541 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15542 )
15543 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015544 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 +010015545 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15546 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015547 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015548 return NULL;
15549 }
15550 int _end_lineno = _token->end_lineno;
15551 UNUSED(_end_lineno); // Only used by EXTRA macro
15552 int _end_col_offset = _token->end_col_offset;
15553 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015554 _res = _PyAST_Set ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015555 if (_res == NULL && PyErr_Occurred()) {
15556 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015557 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015558 return NULL;
15559 }
15560 goto done;
15561 }
15562 p->mark = _mark;
15563 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015564 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015565 }
15566 _res = NULL;
15567 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015568 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015569 return _res;
15570}
15571
Pablo Galindo835f14f2021-01-31 22:52:56 +000015572// setcomp: '{' named_expression for_if_clauses '}' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015573static expr_ty
15574setcomp_rule(Parser *p)
15575{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015576 if (p->level++ == MAXSTACK) {
15577 p->error_indicator = 1;
15578 PyErr_NoMemory();
15579 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015580 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015581 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015582 return NULL;
15583 }
15584 expr_ty _res = NULL;
15585 int _mark = p->mark;
15586 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15587 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015588 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015589 return NULL;
15590 }
15591 int _start_lineno = p->tokens[_mark]->lineno;
15592 UNUSED(_start_lineno); // Only used by EXTRA macro
15593 int _start_col_offset = p->tokens[_mark]->col_offset;
15594 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000015595 { // '{' named_expression for_if_clauses '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015596 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015597 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015598 return NULL;
15599 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000015600 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 +010015601 Token * _literal;
15602 Token * _literal_1;
15603 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015604 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015605 if (
15606 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15607 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015608 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015609 &&
15610 (b = for_if_clauses_rule(p)) // for_if_clauses
15611 &&
15612 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15613 )
15614 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000015615 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 +010015616 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15617 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015618 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015619 return NULL;
15620 }
15621 int _end_lineno = _token->end_lineno;
15622 UNUSED(_end_lineno); // Only used by EXTRA macro
15623 int _end_col_offset = _token->end_col_offset;
15624 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015625 _res = _PyAST_SetComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015626 if (_res == NULL && PyErr_Occurred()) {
15627 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015628 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015629 return NULL;
15630 }
15631 goto done;
15632 }
15633 p->mark = _mark;
15634 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000015635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015636 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015637 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015638 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015639 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015640 return NULL;
15641 }
15642 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
15643 void *invalid_comprehension_var;
15644 if (
15645 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
15646 )
15647 {
15648 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
15649 _res = invalid_comprehension_var;
15650 goto done;
15651 }
15652 p->mark = _mark;
15653 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
15654 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
15655 }
15656 _res = NULL;
15657 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015658 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015659 return _res;
15660}
15661
Pablo Galindoda743502021-04-15 14:06:39 +010015662// dict: '{' double_starred_kvpairs? '}' | '{' invalid_double_starred_kvpairs '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015663static expr_ty
15664dict_rule(Parser *p)
15665{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015666 if (p->level++ == MAXSTACK) {
15667 p->error_indicator = 1;
15668 PyErr_NoMemory();
15669 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015670 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015671 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015672 return NULL;
15673 }
15674 expr_ty _res = NULL;
15675 int _mark = p->mark;
15676 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15677 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015678 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015679 return NULL;
15680 }
15681 int _start_lineno = p->tokens[_mark]->lineno;
15682 UNUSED(_start_lineno); // Only used by EXTRA macro
15683 int _start_col_offset = p->tokens[_mark]->col_offset;
15684 UNUSED(_start_col_offset); // Only used by EXTRA macro
15685 { // '{' double_starred_kvpairs? '}'
15686 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015687 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015688 return NULL;
15689 }
15690 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15691 Token * _literal;
15692 Token * _literal_1;
15693 void *a;
15694 if (
15695 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15696 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020015697 (a = double_starred_kvpairs_rule(p), !p->error_indicator) // double_starred_kvpairs?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015698 &&
15699 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15700 )
15701 {
15702 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15703 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15704 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015705 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015706 return NULL;
15707 }
15708 int _end_lineno = _token->end_lineno;
15709 UNUSED(_end_lineno); // Only used by EXTRA macro
15710 int _end_col_offset = _token->end_col_offset;
15711 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015712 _res = _PyAST_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 +010015713 if (_res == NULL && PyErr_Occurred()) {
15714 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015715 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015716 return NULL;
15717 }
15718 goto done;
15719 }
15720 p->mark = _mark;
15721 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
15722 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15723 }
Pablo Galindoda743502021-04-15 14:06:39 +010015724 { // '{' invalid_double_starred_kvpairs '}'
15725 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015726 p->level--;
Pablo Galindoda743502021-04-15 14:06:39 +010015727 return NULL;
15728 }
15729 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15730 Token * _literal;
15731 Token * _literal_1;
15732 void *invalid_double_starred_kvpairs_var;
15733 if (
15734 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15735 &&
15736 (invalid_double_starred_kvpairs_var = invalid_double_starred_kvpairs_rule(p)) // invalid_double_starred_kvpairs
15737 &&
15738 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15739 )
15740 {
15741 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15742 _res = _PyPegen_dummy_name(p, _literal, invalid_double_starred_kvpairs_var, _literal_1);
15743 goto done;
15744 }
15745 p->mark = _mark;
15746 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
15747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15748 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015749 _res = NULL;
15750 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015751 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015752 return _res;
15753}
15754
15755// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
15756static expr_ty
15757dictcomp_rule(Parser *p)
15758{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015759 if (p->level++ == MAXSTACK) {
15760 p->error_indicator = 1;
15761 PyErr_NoMemory();
15762 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015763 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015764 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015765 return NULL;
15766 }
15767 expr_ty _res = NULL;
15768 int _mark = p->mark;
15769 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15770 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015771 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015772 return NULL;
15773 }
15774 int _start_lineno = p->tokens[_mark]->lineno;
15775 UNUSED(_start_lineno); // Only used by EXTRA macro
15776 int _start_col_offset = p->tokens[_mark]->col_offset;
15777 UNUSED(_start_col_offset); // Only used by EXTRA macro
15778 { // '{' kvpair for_if_clauses '}'
15779 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015780 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015781 return NULL;
15782 }
15783 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15784 Token * _literal;
15785 Token * _literal_1;
15786 KeyValuePair* a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015787 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015788 if (
15789 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15790 &&
15791 (a = kvpair_rule(p)) // kvpair
15792 &&
15793 (b = for_if_clauses_rule(p)) // for_if_clauses
15794 &&
15795 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15796 )
15797 {
15798 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15799 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15800 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015801 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015802 return NULL;
15803 }
15804 int _end_lineno = _token->end_lineno;
15805 UNUSED(_end_lineno); // Only used by EXTRA macro
15806 int _end_col_offset = _token->end_col_offset;
15807 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015808 _res = _PyAST_DictComp ( a -> key , a -> value , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015809 if (_res == NULL && PyErr_Occurred()) {
15810 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015811 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015812 return NULL;
15813 }
15814 goto done;
15815 }
15816 p->mark = _mark;
15817 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
15818 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15819 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015820 if (p->call_invalid_rules) { // invalid_dict_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015821 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015822 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015823 return NULL;
15824 }
15825 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
15826 void *invalid_dict_comprehension_var;
15827 if (
15828 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
15829 )
15830 {
15831 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
15832 _res = invalid_dict_comprehension_var;
15833 goto done;
15834 }
15835 p->mark = _mark;
15836 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
15837 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
15838 }
15839 _res = NULL;
15840 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015841 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015842 return _res;
15843}
15844
15845// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
15846static asdl_seq*
15847double_starred_kvpairs_rule(Parser *p)
15848{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015849 if (p->level++ == MAXSTACK) {
15850 p->error_indicator = 1;
15851 PyErr_NoMemory();
15852 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015853 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015854 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015855 return NULL;
15856 }
15857 asdl_seq* _res = NULL;
15858 int _mark = p->mark;
15859 { // ','.double_starred_kvpair+ ','?
15860 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015861 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015862 return NULL;
15863 }
15864 D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15865 void *_opt_var;
15866 UNUSED(_opt_var); // Silence compiler warnings
15867 asdl_seq * a;
15868 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015869 (a = _gather_118_rule(p)) // ','.double_starred_kvpair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015870 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020015871 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015872 )
15873 {
15874 D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15875 _res = a;
15876 if (_res == NULL && PyErr_Occurred()) {
15877 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015878 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015879 return NULL;
15880 }
15881 goto done;
15882 }
15883 p->mark = _mark;
15884 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
15885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15886 }
15887 _res = NULL;
15888 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015889 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015890 return _res;
15891}
15892
15893// double_starred_kvpair: '**' bitwise_or | kvpair
15894static KeyValuePair*
15895double_starred_kvpair_rule(Parser *p)
15896{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015897 if (p->level++ == MAXSTACK) {
15898 p->error_indicator = 1;
15899 PyErr_NoMemory();
15900 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015901 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015902 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015903 return NULL;
15904 }
15905 KeyValuePair* _res = NULL;
15906 int _mark = p->mark;
15907 { // '**' bitwise_or
15908 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015909 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015910 return NULL;
15911 }
15912 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
15913 Token * _literal;
15914 expr_ty a;
15915 if (
15916 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
15917 &&
15918 (a = bitwise_or_rule(p)) // bitwise_or
15919 )
15920 {
15921 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
15922 _res = _PyPegen_key_value_pair ( p , NULL , a );
15923 if (_res == NULL && PyErr_Occurred()) {
15924 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015925 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015926 return NULL;
15927 }
15928 goto done;
15929 }
15930 p->mark = _mark;
15931 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15932 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
15933 }
15934 { // kvpair
15935 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015936 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015937 return NULL;
15938 }
15939 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
15940 KeyValuePair* kvpair_var;
15941 if (
15942 (kvpair_var = kvpair_rule(p)) // kvpair
15943 )
15944 {
15945 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
15946 _res = kvpair_var;
15947 goto done;
15948 }
15949 p->mark = _mark;
15950 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15951 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
15952 }
15953 _res = NULL;
15954 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015955 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015956 return _res;
15957}
15958
15959// kvpair: expression ':' expression
15960static KeyValuePair*
15961kvpair_rule(Parser *p)
15962{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015963 if (p->level++ == MAXSTACK) {
15964 p->error_indicator = 1;
15965 PyErr_NoMemory();
15966 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015967 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015968 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015969 return NULL;
15970 }
15971 KeyValuePair* _res = NULL;
15972 int _mark = p->mark;
15973 { // expression ':' expression
15974 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015975 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015976 return NULL;
15977 }
15978 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
15979 Token * _literal;
15980 expr_ty a;
15981 expr_ty b;
15982 if (
15983 (a = expression_rule(p)) // expression
15984 &&
15985 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
15986 &&
15987 (b = expression_rule(p)) // expression
15988 )
15989 {
15990 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
15991 _res = _PyPegen_key_value_pair ( p , a , b );
15992 if (_res == NULL && PyErr_Occurred()) {
15993 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000015994 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015995 return NULL;
15996 }
15997 goto done;
15998 }
15999 p->mark = _mark;
16000 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
16001 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
16002 }
16003 _res = NULL;
16004 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016005 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016006 return _res;
16007}
16008
16009// for_if_clauses: for_if_clause+
Pablo Galindoa5634c42020-09-16 19:42:00 +010016010static asdl_comprehension_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016011for_if_clauses_rule(Parser *p)
16012{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016013 if (p->level++ == MAXSTACK) {
16014 p->error_indicator = 1;
16015 PyErr_NoMemory();
16016 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016017 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016018 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016019 return NULL;
16020 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016021 asdl_comprehension_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016022 int _mark = p->mark;
16023 { // for_if_clause+
16024 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016025 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016026 return NULL;
16027 }
16028 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 +010016029 asdl_comprehension_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016030 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016031 (a = (asdl_comprehension_seq*)_loop1_120_rule(p)) // for_if_clause+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016032 )
16033 {
16034 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 +010016035 _res = a;
16036 if (_res == NULL && PyErr_Occurred()) {
16037 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016038 p->level--;
Pablo Galindoa5634c42020-09-16 19:42:00 +010016039 return NULL;
16040 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016041 goto done;
16042 }
16043 p->mark = _mark;
16044 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
16045 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
16046 }
16047 _res = NULL;
16048 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016049 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016050 return _res;
16051}
16052
16053// for_if_clause:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016054// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
16055// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
16056// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016057static comprehension_ty
16058for_if_clause_rule(Parser *p)
16059{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016060 if (p->level++ == MAXSTACK) {
16061 p->error_indicator = 1;
16062 PyErr_NoMemory();
16063 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016064 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016065 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016066 return NULL;
16067 }
16068 comprehension_ty _res = NULL;
16069 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016070 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016071 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016072 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016073 return NULL;
16074 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016075 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
16076 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016077 Token * _keyword;
16078 Token * _keyword_1;
16079 expr_ty a;
16080 Token * async_var;
16081 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010016082 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016083 if (
16084 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
16085 &&
16086 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
16087 &&
16088 (a = star_targets_rule(p)) // star_targets
16089 &&
16090 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
16091 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016092 (_cut_var = 1)
16093 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016094 (b = disjunction_rule(p)) // disjunction
16095 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016096 (c = (asdl_expr_seq*)_loop0_121_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016097 )
16098 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016099 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 +020016100 _res = CHECK_VERSION ( comprehension_ty , 6 , "Async comprehensions are" , _PyAST_comprehension ( a , b , c , 1 , p -> arena ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016101 if (_res == NULL && PyErr_Occurred()) {
16102 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016103 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016104 return NULL;
16105 }
16106 goto done;
16107 }
16108 p->mark = _mark;
16109 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016110 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
16111 if (_cut_var) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016112 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016113 return NULL;
16114 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016115 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016116 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016117 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016118 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016119 return NULL;
16120 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016121 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
16122 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016123 Token * _keyword;
16124 Token * _keyword_1;
16125 expr_ty a;
16126 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010016127 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016128 if (
16129 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
16130 &&
16131 (a = star_targets_rule(p)) // star_targets
16132 &&
16133 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
16134 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016135 (_cut_var = 1)
16136 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016137 (b = disjunction_rule(p)) // disjunction
16138 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016139 (c = (asdl_expr_seq*)_loop0_122_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016140 )
16141 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016142 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 +020016143 _res = _PyAST_comprehension ( a , b , c , 0 , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016144 if (_res == NULL && PyErr_Occurred()) {
16145 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016146 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016147 return NULL;
16148 }
16149 goto done;
16150 }
16151 p->mark = _mark;
16152 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016153 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
16154 if (_cut_var) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016155 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016156 return NULL;
16157 }
16158 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020016159 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016160 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016161 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016162 return NULL;
16163 }
16164 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
16165 void *invalid_for_target_var;
16166 if (
16167 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
16168 )
16169 {
16170 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
16171 _res = invalid_for_target_var;
16172 goto done;
16173 }
16174 p->mark = _mark;
16175 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
16176 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016177 }
16178 _res = NULL;
16179 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016180 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016181 return _res;
16182}
16183
16184// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
16185static expr_ty
16186yield_expr_rule(Parser *p)
16187{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016188 if (p->level++ == MAXSTACK) {
16189 p->error_indicator = 1;
16190 PyErr_NoMemory();
16191 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016192 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016193 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016194 return NULL;
16195 }
16196 expr_ty _res = NULL;
16197 int _mark = p->mark;
16198 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16199 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016200 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016201 return NULL;
16202 }
16203 int _start_lineno = p->tokens[_mark]->lineno;
16204 UNUSED(_start_lineno); // Only used by EXTRA macro
16205 int _start_col_offset = p->tokens[_mark]->col_offset;
16206 UNUSED(_start_col_offset); // Only used by EXTRA macro
16207 { // 'yield' 'from' expression
16208 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016209 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016210 return NULL;
16211 }
16212 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
16213 Token * _keyword;
16214 Token * _keyword_1;
16215 expr_ty a;
16216 if (
16217 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
16218 &&
16219 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
16220 &&
16221 (a = expression_rule(p)) // expression
16222 )
16223 {
16224 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
16225 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16226 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016227 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016228 return NULL;
16229 }
16230 int _end_lineno = _token->end_lineno;
16231 UNUSED(_end_lineno); // Only used by EXTRA macro
16232 int _end_col_offset = _token->end_col_offset;
16233 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016234 _res = _PyAST_YieldFrom ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016235 if (_res == NULL && PyErr_Occurred()) {
16236 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016237 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016238 return NULL;
16239 }
16240 goto done;
16241 }
16242 p->mark = _mark;
16243 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
16244 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
16245 }
16246 { // 'yield' star_expressions?
16247 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016248 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016249 return NULL;
16250 }
16251 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
16252 Token * _keyword;
16253 void *a;
16254 if (
16255 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
16256 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020016257 (a = star_expressions_rule(p), !p->error_indicator) // star_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016258 )
16259 {
16260 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
16261 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16262 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016263 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016264 return NULL;
16265 }
16266 int _end_lineno = _token->end_lineno;
16267 UNUSED(_end_lineno); // Only used by EXTRA macro
16268 int _end_col_offset = _token->end_col_offset;
16269 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016270 _res = _PyAST_Yield ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016271 if (_res == NULL && PyErr_Occurred()) {
16272 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016273 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016274 return NULL;
16275 }
16276 goto done;
16277 }
16278 p->mark = _mark;
16279 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
16280 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
16281 }
16282 _res = NULL;
16283 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016284 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016285 return _res;
16286}
16287
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020016288// arguments: args ','? &')' | invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016289static expr_ty
16290arguments_rule(Parser *p)
16291{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016292 if (p->level++ == MAXSTACK) {
16293 p->error_indicator = 1;
16294 PyErr_NoMemory();
16295 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016296 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016297 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016298 return NULL;
16299 }
16300 expr_ty _res = NULL;
16301 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016302 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016303 return _res;
16304 }
16305 int _mark = p->mark;
16306 { // args ','? &')'
16307 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016308 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016309 return NULL;
16310 }
16311 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
16312 void *_opt_var;
16313 UNUSED(_opt_var); // Silence compiler warnings
16314 expr_ty a;
16315 if (
16316 (a = args_rule(p)) // args
16317 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020016318 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016319 &&
16320 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
16321 )
16322 {
16323 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
16324 _res = a;
16325 if (_res == NULL && PyErr_Occurred()) {
16326 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016327 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016328 return NULL;
16329 }
16330 goto done;
16331 }
16332 p->mark = _mark;
16333 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
16334 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
16335 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020016336 if (p->call_invalid_rules) { // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016337 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016338 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016339 return NULL;
16340 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020016341 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
16342 void *invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016343 if (
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020016344 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016345 )
16346 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020016347 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
16348 _res = invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016349 goto done;
16350 }
16351 p->mark = _mark;
16352 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020016353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016354 }
16355 _res = NULL;
16356 done:
16357 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016358 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016359 return _res;
16360}
16361
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016362// args:
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000016363// | ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016364// | kwargs
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016365static expr_ty
16366args_rule(Parser *p)
16367{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016368 if (p->level++ == MAXSTACK) {
16369 p->error_indicator = 1;
16370 PyErr_NoMemory();
16371 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016372 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016373 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016374 return NULL;
16375 }
16376 expr_ty _res = NULL;
16377 int _mark = p->mark;
16378 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16379 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016380 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016381 return NULL;
16382 }
16383 int _start_lineno = p->tokens[_mark]->lineno;
16384 UNUSED(_start_lineno); // Only used by EXTRA macro
16385 int _start_col_offset = p->tokens[_mark]->col_offset;
16386 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000016387 { // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016388 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016389 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016390 return NULL;
16391 }
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000016392 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010016393 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016394 void *b;
16395 if (
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000016396 (a = (asdl_expr_seq*)_gather_123_rule(p)) // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016397 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020016398 (b = _tmp_125_rule(p), !p->error_indicator) // [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016399 )
16400 {
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000016401 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]"));
Pablo Galindo315a61f2020-09-03 15:29:32 +010016402 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16403 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016404 p->level--;
Pablo Galindo315a61f2020-09-03 15:29:32 +010016405 return NULL;
16406 }
16407 int _end_lineno = _token->end_lineno;
16408 UNUSED(_end_lineno); // Only used by EXTRA macro
16409 int _end_col_offset = _token->end_col_offset;
16410 UNUSED(_end_col_offset); // Only used by EXTRA macro
16411 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016412 if (_res == NULL && PyErr_Occurred()) {
16413 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016414 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016415 return NULL;
16416 }
16417 goto done;
16418 }
16419 p->mark = _mark;
16420 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000016421 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016422 }
16423 { // kwargs
16424 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016425 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016426 return NULL;
16427 }
16428 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
16429 asdl_seq* a;
16430 if (
16431 (a = kwargs_rule(p)) // kwargs
16432 )
16433 {
16434 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
16435 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16436 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016437 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016438 return NULL;
16439 }
16440 int _end_lineno = _token->end_lineno;
16441 UNUSED(_end_lineno); // Only used by EXTRA macro
16442 int _end_col_offset = _token->end_col_offset;
16443 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016444 _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 +010016445 if (_res == NULL && PyErr_Occurred()) {
16446 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016447 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016448 return NULL;
16449 }
16450 goto done;
16451 }
16452 p->mark = _mark;
16453 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
16454 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
16455 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016456 _res = NULL;
16457 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016458 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016459 return _res;
16460}
16461
16462// kwargs:
16463// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
16464// | ','.kwarg_or_starred+
16465// | ','.kwarg_or_double_starred+
16466static asdl_seq*
16467kwargs_rule(Parser *p)
16468{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016469 if (p->level++ == MAXSTACK) {
16470 p->error_indicator = 1;
16471 PyErr_NoMemory();
16472 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016473 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016474 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016475 return NULL;
16476 }
16477 asdl_seq* _res = NULL;
16478 int _mark = p->mark;
16479 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
16480 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016481 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016482 return NULL;
16483 }
16484 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
16485 Token * _literal;
16486 asdl_seq * a;
16487 asdl_seq * b;
16488 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016489 (a = _gather_126_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016490 &&
16491 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16492 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016493 (b = _gather_128_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016494 )
16495 {
16496 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
16497 _res = _PyPegen_join_sequences ( p , a , b );
16498 if (_res == NULL && PyErr_Occurred()) {
16499 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016500 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016501 return NULL;
16502 }
16503 goto done;
16504 }
16505 p->mark = _mark;
16506 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
16507 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
16508 }
16509 { // ','.kwarg_or_starred+
16510 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016511 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016512 return NULL;
16513 }
16514 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016515 asdl_seq * _gather_130_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016516 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016517 (_gather_130_var = _gather_130_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016518 )
16519 {
16520 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016521 _res = _gather_130_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016522 goto done;
16523 }
16524 p->mark = _mark;
16525 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
16526 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
16527 }
16528 { // ','.kwarg_or_double_starred+
16529 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016530 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016531 return NULL;
16532 }
16533 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016534 asdl_seq * _gather_132_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016535 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016536 (_gather_132_var = _gather_132_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016537 )
16538 {
16539 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016540 _res = _gather_132_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016541 goto done;
16542 }
16543 p->mark = _mark;
16544 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
16545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
16546 }
16547 _res = NULL;
16548 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016549 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016550 return _res;
16551}
16552
16553// starred_expression: '*' expression
16554static expr_ty
16555starred_expression_rule(Parser *p)
16556{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016557 if (p->level++ == MAXSTACK) {
16558 p->error_indicator = 1;
16559 PyErr_NoMemory();
16560 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016561 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016562 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016563 return NULL;
16564 }
16565 expr_ty _res = NULL;
16566 int _mark = p->mark;
16567 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16568 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016569 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016570 return NULL;
16571 }
16572 int _start_lineno = p->tokens[_mark]->lineno;
16573 UNUSED(_start_lineno); // Only used by EXTRA macro
16574 int _start_col_offset = p->tokens[_mark]->col_offset;
16575 UNUSED(_start_col_offset); // Only used by EXTRA macro
16576 { // '*' expression
16577 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016578 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016579 return NULL;
16580 }
16581 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
16582 Token * _literal;
16583 expr_ty a;
16584 if (
16585 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
16586 &&
16587 (a = expression_rule(p)) // expression
16588 )
16589 {
16590 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
16591 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16592 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016593 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016594 return NULL;
16595 }
16596 int _end_lineno = _token->end_lineno;
16597 UNUSED(_end_lineno); // Only used by EXTRA macro
16598 int _end_col_offset = _token->end_col_offset;
16599 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016600 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016601 if (_res == NULL && PyErr_Occurred()) {
16602 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016603 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016604 return NULL;
16605 }
16606 goto done;
16607 }
16608 p->mark = _mark;
16609 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
16610 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
16611 }
16612 _res = NULL;
16613 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016614 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016615 return _res;
16616}
16617
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016618// kwarg_or_starred: invalid_kwarg | NAME '=' expression | starred_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016619static KeywordOrStarred*
16620kwarg_or_starred_rule(Parser *p)
16621{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016622 if (p->level++ == MAXSTACK) {
16623 p->error_indicator = 1;
16624 PyErr_NoMemory();
16625 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016626 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016627 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016628 return NULL;
16629 }
16630 KeywordOrStarred* _res = NULL;
16631 int _mark = p->mark;
16632 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16633 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016634 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016635 return NULL;
16636 }
16637 int _start_lineno = p->tokens[_mark]->lineno;
16638 UNUSED(_start_lineno); // Only used by EXTRA macro
16639 int _start_col_offset = p->tokens[_mark]->col_offset;
16640 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016641 if (p->call_invalid_rules) { // invalid_kwarg
16642 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016643 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016644 return NULL;
16645 }
16646 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16647 void *invalid_kwarg_var;
16648 if (
16649 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
16650 )
16651 {
16652 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16653 _res = invalid_kwarg_var;
16654 goto done;
16655 }
16656 p->mark = _mark;
16657 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
16659 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016660 { // NAME '=' expression
16661 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016662 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016663 return NULL;
16664 }
16665 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16666 Token * _literal;
16667 expr_ty a;
16668 expr_ty b;
16669 if (
16670 (a = _PyPegen_name_token(p)) // NAME
16671 &&
16672 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16673 &&
16674 (b = expression_rule(p)) // expression
16675 )
16676 {
16677 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16678 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16679 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016680 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016681 return NULL;
16682 }
16683 int _end_lineno = _token->end_lineno;
16684 UNUSED(_end_lineno); // Only used by EXTRA macro
16685 int _end_col_offset = _token->end_col_offset;
16686 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016687 _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 +010016688 if (_res == NULL && PyErr_Occurred()) {
16689 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016690 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016691 return NULL;
16692 }
16693 goto done;
16694 }
16695 p->mark = _mark;
16696 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16697 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
16698 }
16699 { // starred_expression
16700 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016701 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016702 return NULL;
16703 }
16704 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
16705 expr_ty a;
16706 if (
16707 (a = starred_expression_rule(p)) // starred_expression
16708 )
16709 {
16710 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
16711 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
16712 if (_res == NULL && PyErr_Occurred()) {
16713 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016714 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016715 return NULL;
16716 }
16717 goto done;
16718 }
16719 p->mark = _mark;
16720 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16721 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
16722 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016723 _res = NULL;
16724 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016725 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016726 return _res;
16727}
16728
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016729// kwarg_or_double_starred: invalid_kwarg | NAME '=' expression | '**' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016730static KeywordOrStarred*
16731kwarg_or_double_starred_rule(Parser *p)
16732{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016733 if (p->level++ == MAXSTACK) {
16734 p->error_indicator = 1;
16735 PyErr_NoMemory();
16736 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016737 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016738 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016739 return NULL;
16740 }
16741 KeywordOrStarred* _res = NULL;
16742 int _mark = p->mark;
16743 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16744 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016745 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016746 return NULL;
16747 }
16748 int _start_lineno = p->tokens[_mark]->lineno;
16749 UNUSED(_start_lineno); // Only used by EXTRA macro
16750 int _start_col_offset = p->tokens[_mark]->col_offset;
16751 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016752 if (p->call_invalid_rules) { // invalid_kwarg
16753 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016754 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016755 return NULL;
16756 }
16757 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16758 void *invalid_kwarg_var;
16759 if (
16760 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
16761 )
16762 {
16763 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16764 _res = invalid_kwarg_var;
16765 goto done;
16766 }
16767 p->mark = _mark;
16768 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
16770 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016771 { // NAME '=' expression
16772 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016773 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016774 return NULL;
16775 }
16776 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16777 Token * _literal;
16778 expr_ty a;
16779 expr_ty b;
16780 if (
16781 (a = _PyPegen_name_token(p)) // NAME
16782 &&
16783 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16784 &&
16785 (b = expression_rule(p)) // expression
16786 )
16787 {
16788 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16789 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16790 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016791 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016792 return NULL;
16793 }
16794 int _end_lineno = _token->end_lineno;
16795 UNUSED(_end_lineno); // Only used by EXTRA macro
16796 int _end_col_offset = _token->end_col_offset;
16797 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016798 _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 +010016799 if (_res == NULL && PyErr_Occurred()) {
16800 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016801 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016802 return NULL;
16803 }
16804 goto done;
16805 }
16806 p->mark = _mark;
16807 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
16809 }
16810 { // '**' expression
16811 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016812 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016813 return NULL;
16814 }
16815 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
16816 Token * _literal;
16817 expr_ty a;
16818 if (
16819 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
16820 &&
16821 (a = expression_rule(p)) // expression
16822 )
16823 {
16824 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
16825 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16826 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016827 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016828 return NULL;
16829 }
16830 int _end_lineno = _token->end_lineno;
16831 UNUSED(_end_lineno); // Only used by EXTRA macro
16832 int _end_col_offset = _token->end_col_offset;
16833 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016834 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( NULL , a , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016835 if (_res == NULL && PyErr_Occurred()) {
16836 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016837 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016838 return NULL;
16839 }
16840 goto done;
16841 }
16842 p->mark = _mark;
16843 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16844 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
16845 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016846 _res = NULL;
16847 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016848 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016849 return _res;
16850}
16851
16852// star_targets: star_target !',' | star_target ((',' star_target))* ','?
16853static expr_ty
16854star_targets_rule(Parser *p)
16855{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016856 if (p->level++ == MAXSTACK) {
16857 p->error_indicator = 1;
16858 PyErr_NoMemory();
16859 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016860 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016861 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016862 return NULL;
16863 }
16864 expr_ty _res = NULL;
16865 int _mark = p->mark;
16866 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16867 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016868 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016869 return NULL;
16870 }
16871 int _start_lineno = p->tokens[_mark]->lineno;
16872 UNUSED(_start_lineno); // Only used by EXTRA macro
16873 int _start_col_offset = p->tokens[_mark]->col_offset;
16874 UNUSED(_start_col_offset); // Only used by EXTRA macro
16875 { // star_target !','
16876 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016877 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016878 return NULL;
16879 }
16880 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
16881 expr_ty a;
16882 if (
16883 (a = star_target_rule(p)) // star_target
16884 &&
16885 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
16886 )
16887 {
16888 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
16889 _res = a;
16890 if (_res == NULL && PyErr_Occurred()) {
16891 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016892 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016893 return NULL;
16894 }
16895 goto done;
16896 }
16897 p->mark = _mark;
16898 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
16899 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
16900 }
16901 { // star_target ((',' star_target))* ','?
16902 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016903 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016904 return NULL;
16905 }
16906 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
16907 void *_opt_var;
16908 UNUSED(_opt_var); // Silence compiler warnings
16909 expr_ty a;
16910 asdl_seq * b;
16911 if (
16912 (a = star_target_rule(p)) // star_target
16913 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016914 (b = _loop0_134_rule(p)) // ((',' star_target))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016915 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020016916 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016917 )
16918 {
16919 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
16920 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16921 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016922 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016923 return NULL;
16924 }
16925 int _end_lineno = _token->end_lineno;
16926 UNUSED(_end_lineno); // Only used by EXTRA macro
16927 int _end_col_offset = _token->end_col_offset;
16928 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016929 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016930 if (_res == NULL && PyErr_Occurred()) {
16931 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016932 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016933 return NULL;
16934 }
16935 goto done;
16936 }
16937 p->mark = _mark;
16938 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
16939 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
16940 }
16941 _res = NULL;
16942 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016943 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016944 return _res;
16945}
16946
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016947// star_targets_list_seq: ','.star_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010016948static asdl_expr_seq*
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016949star_targets_list_seq_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016950{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016951 if (p->level++ == MAXSTACK) {
16952 p->error_indicator = 1;
16953 PyErr_NoMemory();
16954 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016955 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016956 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016957 return NULL;
16958 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016959 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016960 int _mark = p->mark;
16961 { // ','.star_target+ ','?
16962 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016963 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016964 return NULL;
16965 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016966 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 +010016967 void *_opt_var;
16968 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010016969 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016970 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016971 (a = (asdl_expr_seq*)_gather_135_rule(p)) // ','.star_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016972 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020016973 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016974 )
16975 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016976 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 +010016977 _res = a;
16978 if (_res == NULL && PyErr_Occurred()) {
16979 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016980 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016981 return NULL;
16982 }
16983 goto done;
16984 }
16985 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016986 D(fprintf(stderr, "%*c%s star_targets_list_seq[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016987 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
16988 }
16989 _res = NULL;
16990 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016991 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016992 return _res;
16993}
16994
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016995// star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
16996static asdl_expr_seq*
16997star_targets_tuple_seq_rule(Parser *p)
16998{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000016999 if (p->level++ == MAXSTACK) {
17000 p->error_indicator = 1;
17001 PyErr_NoMemory();
17002 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017003 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017004 p->level--;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017005 return NULL;
17006 }
17007 asdl_expr_seq* _res = NULL;
17008 int _mark = p->mark;
17009 { // star_target ((',' star_target))+ ','?
17010 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017011 p->level--;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017012 return NULL;
17013 }
17014 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
17015 void *_opt_var;
17016 UNUSED(_opt_var); // Silence compiler warnings
17017 expr_ty a;
17018 asdl_seq * b;
17019 if (
17020 (a = star_target_rule(p)) // star_target
17021 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017022 (b = _loop1_137_rule(p)) // ((',' star_target))+
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017023 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020017024 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017025 )
17026 {
17027 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
17028 _res = ( asdl_expr_seq * ) _PyPegen_seq_insert_in_front ( p , a , b );
17029 if (_res == NULL && PyErr_Occurred()) {
17030 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017031 p->level--;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017032 return NULL;
17033 }
17034 goto done;
17035 }
17036 p->mark = _mark;
17037 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
17038 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))+ ','?"));
17039 }
17040 { // star_target ','
17041 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017042 p->level--;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017043 return NULL;
17044 }
17045 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ','"));
17046 Token * _literal;
17047 expr_ty a;
17048 if (
17049 (a = star_target_rule(p)) // star_target
17050 &&
17051 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17052 )
17053 {
17054 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
17055 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
17056 if (_res == NULL && PyErr_Occurred()) {
17057 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017058 p->level--;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017059 return NULL;
17060 }
17061 goto done;
17062 }
17063 p->mark = _mark;
17064 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
17065 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ','"));
17066 }
17067 _res = NULL;
17068 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017069 p->level--;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017070 return _res;
17071}
17072
17073// star_target: '*' (!'*' star_target) | target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017074static expr_ty
17075star_target_rule(Parser *p)
17076{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017077 if (p->level++ == MAXSTACK) {
17078 p->error_indicator = 1;
17079 PyErr_NoMemory();
17080 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017081 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017082 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017083 return NULL;
17084 }
17085 expr_ty _res = NULL;
17086 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017087 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017088 return _res;
17089 }
17090 int _mark = p->mark;
17091 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17092 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017093 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017094 return NULL;
17095 }
17096 int _start_lineno = p->tokens[_mark]->lineno;
17097 UNUSED(_start_lineno); // Only used by EXTRA macro
17098 int _start_col_offset = p->tokens[_mark]->col_offset;
17099 UNUSED(_start_col_offset); // Only used by EXTRA macro
17100 { // '*' (!'*' star_target)
17101 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017102 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017103 return NULL;
17104 }
17105 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
17106 Token * _literal;
17107 void *a;
17108 if (
17109 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
17110 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017111 (a = _tmp_138_rule(p)) // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017112 )
17113 {
17114 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
17115 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17116 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017117 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017118 return NULL;
17119 }
17120 int _end_lineno = _token->end_lineno;
17121 UNUSED(_end_lineno); // Only used by EXTRA macro
17122 int _end_col_offset = _token->end_col_offset;
17123 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017124 _res = _PyAST_Starred ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017125 if (_res == NULL && PyErr_Occurred()) {
17126 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017127 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017128 return NULL;
17129 }
17130 goto done;
17131 }
17132 p->mark = _mark;
17133 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
17134 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
17135 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017136 { // target_with_star_atom
17137 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017138 p->level--;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017139 return NULL;
17140 }
17141 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
17142 expr_ty target_with_star_atom_var;
17143 if (
17144 (target_with_star_atom_var = target_with_star_atom_rule(p)) // target_with_star_atom
17145 )
17146 {
17147 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
17148 _res = target_with_star_atom_var;
17149 goto done;
17150 }
17151 p->mark = _mark;
17152 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
17153 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_with_star_atom"));
17154 }
17155 _res = NULL;
17156 done:
17157 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017158 p->level--;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017159 return _res;
17160}
17161
17162// target_with_star_atom:
17163// | t_primary '.' NAME !t_lookahead
17164// | t_primary '[' slices ']' !t_lookahead
17165// | star_atom
17166static expr_ty
17167target_with_star_atom_rule(Parser *p)
17168{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017169 if (p->level++ == MAXSTACK) {
17170 p->error_indicator = 1;
17171 PyErr_NoMemory();
17172 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017173 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017174 p->level--;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017175 return NULL;
17176 }
17177 expr_ty _res = NULL;
17178 if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017179 p->level--;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017180 return _res;
17181 }
17182 int _mark = p->mark;
17183 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17184 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017185 p->level--;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017186 return NULL;
17187 }
17188 int _start_lineno = p->tokens[_mark]->lineno;
17189 UNUSED(_start_lineno); // Only used by EXTRA macro
17190 int _start_col_offset = p->tokens[_mark]->col_offset;
17191 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017192 { // t_primary '.' NAME !t_lookahead
17193 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017194 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017195 return NULL;
17196 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017197 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 +010017198 Token * _literal;
17199 expr_ty a;
17200 expr_ty b;
17201 if (
17202 (a = t_primary_rule(p)) // t_primary
17203 &&
17204 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17205 &&
17206 (b = _PyPegen_name_token(p)) // NAME
17207 &&
17208 _PyPegen_lookahead(0, t_lookahead_rule, p)
17209 )
17210 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017211 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 +010017212 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17213 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017214 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017215 return NULL;
17216 }
17217 int _end_lineno = _token->end_lineno;
17218 UNUSED(_end_lineno); // Only used by EXTRA macro
17219 int _end_col_offset = _token->end_col_offset;
17220 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017221 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017222 if (_res == NULL && PyErr_Occurred()) {
17223 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017224 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017225 return NULL;
17226 }
17227 goto done;
17228 }
17229 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017230 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017231 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17232 }
17233 { // t_primary '[' slices ']' !t_lookahead
17234 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017235 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017236 return NULL;
17237 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017238 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 +010017239 Token * _literal;
17240 Token * _literal_1;
17241 expr_ty a;
17242 expr_ty b;
17243 if (
17244 (a = t_primary_rule(p)) // t_primary
17245 &&
17246 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17247 &&
17248 (b = slices_rule(p)) // slices
17249 &&
17250 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17251 &&
17252 _PyPegen_lookahead(0, t_lookahead_rule, p)
17253 )
17254 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017255 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 +010017256 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17257 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017258 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017259 return NULL;
17260 }
17261 int _end_lineno = _token->end_lineno;
17262 UNUSED(_end_lineno); // Only used by EXTRA macro
17263 int _end_col_offset = _token->end_col_offset;
17264 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017265 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017266 if (_res == NULL && PyErr_Occurred()) {
17267 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017268 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017269 return NULL;
17270 }
17271 goto done;
17272 }
17273 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017274 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017275 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17276 }
17277 { // star_atom
17278 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017279 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017280 return NULL;
17281 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017282 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 +010017283 expr_ty star_atom_var;
17284 if (
17285 (star_atom_var = star_atom_rule(p)) // star_atom
17286 )
17287 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017288 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 +010017289 _res = star_atom_var;
17290 goto done;
17291 }
17292 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017293 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017294 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
17295 }
17296 _res = NULL;
17297 done:
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017298 _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017299 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017300 return _res;
17301}
17302
17303// star_atom:
17304// | NAME
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017305// | '(' target_with_star_atom ')'
17306// | '(' star_targets_tuple_seq? ')'
17307// | '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017308static expr_ty
17309star_atom_rule(Parser *p)
17310{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017311 if (p->level++ == MAXSTACK) {
17312 p->error_indicator = 1;
17313 PyErr_NoMemory();
17314 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017315 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017316 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017317 return NULL;
17318 }
17319 expr_ty _res = NULL;
17320 int _mark = p->mark;
17321 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17322 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017323 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017324 return NULL;
17325 }
17326 int _start_lineno = p->tokens[_mark]->lineno;
17327 UNUSED(_start_lineno); // Only used by EXTRA macro
17328 int _start_col_offset = p->tokens[_mark]->col_offset;
17329 UNUSED(_start_col_offset); // Only used by EXTRA macro
17330 { // NAME
17331 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017332 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017333 return NULL;
17334 }
17335 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
17336 expr_ty a;
17337 if (
17338 (a = _PyPegen_name_token(p)) // NAME
17339 )
17340 {
17341 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
17342 _res = _PyPegen_set_expr_context ( p , a , Store );
17343 if (_res == NULL && PyErr_Occurred()) {
17344 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017345 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017346 return NULL;
17347 }
17348 goto done;
17349 }
17350 p->mark = _mark;
17351 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
17352 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
17353 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017354 { // '(' target_with_star_atom ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017355 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017356 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017357 return NULL;
17358 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017359 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 +010017360 Token * _literal;
17361 Token * _literal_1;
17362 expr_ty a;
17363 if (
17364 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17365 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017366 (a = target_with_star_atom_rule(p)) // target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017367 &&
17368 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17369 )
17370 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017371 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 +010017372 _res = _PyPegen_set_expr_context ( p , a , Store );
17373 if (_res == NULL && PyErr_Occurred()) {
17374 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017375 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017376 return NULL;
17377 }
17378 goto done;
17379 }
17380 p->mark = _mark;
17381 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017382 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017383 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017384 { // '(' star_targets_tuple_seq? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017385 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017386 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017387 return NULL;
17388 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017389 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 +010017390 Token * _literal;
17391 Token * _literal_1;
17392 void *a;
17393 if (
17394 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17395 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020017396 (a = star_targets_tuple_seq_rule(p), !p->error_indicator) // star_targets_tuple_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017397 &&
17398 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17399 )
17400 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017401 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 +010017402 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17403 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017404 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017405 return NULL;
17406 }
17407 int _end_lineno = _token->end_lineno;
17408 UNUSED(_end_lineno); // Only used by EXTRA macro
17409 int _end_col_offset = _token->end_col_offset;
17410 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017411 _res = _PyAST_Tuple ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017412 if (_res == NULL && PyErr_Occurred()) {
17413 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017414 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017415 return NULL;
17416 }
17417 goto done;
17418 }
17419 p->mark = _mark;
17420 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017421 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017422 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017423 { // '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017424 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017425 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017426 return NULL;
17427 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017428 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 +010017429 Token * _literal;
17430 Token * _literal_1;
17431 void *a;
17432 if (
17433 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17434 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020017435 (a = star_targets_list_seq_rule(p), !p->error_indicator) // star_targets_list_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017436 &&
17437 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17438 )
17439 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017440 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 +010017441 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17442 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017443 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017444 return NULL;
17445 }
17446 int _end_lineno = _token->end_lineno;
17447 UNUSED(_end_lineno); // Only used by EXTRA macro
17448 int _end_col_offset = _token->end_col_offset;
17449 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017450 _res = _PyAST_List ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017451 if (_res == NULL && PyErr_Occurred()) {
17452 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017453 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017454 return NULL;
17455 }
17456 goto done;
17457 }
17458 p->mark = _mark;
17459 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017460 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017461 }
17462 _res = NULL;
17463 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017464 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017465 return _res;
17466}
17467
17468// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
17469static expr_ty
17470single_target_rule(Parser *p)
17471{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017472 if (p->level++ == MAXSTACK) {
17473 p->error_indicator = 1;
17474 PyErr_NoMemory();
17475 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017476 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017477 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017478 return NULL;
17479 }
17480 expr_ty _res = NULL;
17481 int _mark = p->mark;
17482 { // single_subscript_attribute_target
17483 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017484 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017485 return NULL;
17486 }
17487 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
17488 expr_ty single_subscript_attribute_target_var;
17489 if (
17490 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
17491 )
17492 {
17493 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
17494 _res = single_subscript_attribute_target_var;
17495 goto done;
17496 }
17497 p->mark = _mark;
17498 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
17499 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
17500 }
17501 { // NAME
17502 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017503 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017504 return NULL;
17505 }
17506 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
17507 expr_ty a;
17508 if (
17509 (a = _PyPegen_name_token(p)) // NAME
17510 )
17511 {
17512 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
17513 _res = _PyPegen_set_expr_context ( p , a , Store );
17514 if (_res == NULL && PyErr_Occurred()) {
17515 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017516 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017517 return NULL;
17518 }
17519 goto done;
17520 }
17521 p->mark = _mark;
17522 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
17523 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
17524 }
17525 { // '(' single_target ')'
17526 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017527 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017528 return NULL;
17529 }
17530 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
17531 Token * _literal;
17532 Token * _literal_1;
17533 expr_ty a;
17534 if (
17535 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17536 &&
17537 (a = single_target_rule(p)) // single_target
17538 &&
17539 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17540 )
17541 {
17542 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
17543 _res = a;
17544 if (_res == NULL && PyErr_Occurred()) {
17545 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017546 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017547 return NULL;
17548 }
17549 goto done;
17550 }
17551 p->mark = _mark;
17552 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
17553 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
17554 }
17555 _res = NULL;
17556 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017557 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017558 return _res;
17559}
17560
17561// single_subscript_attribute_target:
17562// | t_primary '.' NAME !t_lookahead
17563// | t_primary '[' slices ']' !t_lookahead
17564static expr_ty
17565single_subscript_attribute_target_rule(Parser *p)
17566{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017567 if (p->level++ == MAXSTACK) {
17568 p->error_indicator = 1;
17569 PyErr_NoMemory();
17570 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017571 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017572 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017573 return NULL;
17574 }
17575 expr_ty _res = NULL;
17576 int _mark = p->mark;
17577 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17578 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017579 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017580 return NULL;
17581 }
17582 int _start_lineno = p->tokens[_mark]->lineno;
17583 UNUSED(_start_lineno); // Only used by EXTRA macro
17584 int _start_col_offset = p->tokens[_mark]->col_offset;
17585 UNUSED(_start_col_offset); // Only used by EXTRA macro
17586 { // t_primary '.' NAME !t_lookahead
17587 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017588 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017589 return NULL;
17590 }
17591 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17592 Token * _literal;
17593 expr_ty a;
17594 expr_ty b;
17595 if (
17596 (a = t_primary_rule(p)) // t_primary
17597 &&
17598 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17599 &&
17600 (b = _PyPegen_name_token(p)) // NAME
17601 &&
17602 _PyPegen_lookahead(0, t_lookahead_rule, p)
17603 )
17604 {
17605 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17606 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17607 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017608 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017609 return NULL;
17610 }
17611 int _end_lineno = _token->end_lineno;
17612 UNUSED(_end_lineno); // Only used by EXTRA macro
17613 int _end_col_offset = _token->end_col_offset;
17614 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017615 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017616 if (_res == NULL && PyErr_Occurred()) {
17617 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017618 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017619 return NULL;
17620 }
17621 goto done;
17622 }
17623 p->mark = _mark;
17624 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
17625 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17626 }
17627 { // t_primary '[' slices ']' !t_lookahead
17628 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017629 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017630 return NULL;
17631 }
17632 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17633 Token * _literal;
17634 Token * _literal_1;
17635 expr_ty a;
17636 expr_ty b;
17637 if (
17638 (a = t_primary_rule(p)) // t_primary
17639 &&
17640 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17641 &&
17642 (b = slices_rule(p)) // slices
17643 &&
17644 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17645 &&
17646 _PyPegen_lookahead(0, t_lookahead_rule, p)
17647 )
17648 {
17649 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17650 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17651 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017652 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017653 return NULL;
17654 }
17655 int _end_lineno = _token->end_lineno;
17656 UNUSED(_end_lineno); // Only used by EXTRA macro
17657 int _end_col_offset = _token->end_col_offset;
17658 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017659 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017660 if (_res == NULL && PyErr_Occurred()) {
17661 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017662 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017663 return NULL;
17664 }
17665 goto done;
17666 }
17667 p->mark = _mark;
17668 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
17669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17670 }
17671 _res = NULL;
17672 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017673 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017674 return _res;
17675}
17676
17677// del_targets: ','.del_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010017678static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017679del_targets_rule(Parser *p)
17680{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017681 if (p->level++ == MAXSTACK) {
17682 p->error_indicator = 1;
17683 PyErr_NoMemory();
17684 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017685 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017686 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017687 return NULL;
17688 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017689 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017690 int _mark = p->mark;
17691 { // ','.del_target+ ','?
17692 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017693 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017694 return NULL;
17695 }
17696 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
17697 void *_opt_var;
17698 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010017699 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017700 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017701 (a = (asdl_expr_seq*)_gather_139_rule(p)) // ','.del_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017702 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020017703 (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017704 )
17705 {
17706 D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
17707 _res = a;
17708 if (_res == NULL && PyErr_Occurred()) {
17709 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017710 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017711 return NULL;
17712 }
17713 goto done;
17714 }
17715 p->mark = _mark;
17716 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
17717 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
17718 }
17719 _res = NULL;
17720 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017721 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017722 return _res;
17723}
17724
17725// del_target:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017726// | t_primary '.' NAME !t_lookahead
17727// | t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017728// | del_t_atom
17729static expr_ty
17730del_target_rule(Parser *p)
17731{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017732 if (p->level++ == MAXSTACK) {
17733 p->error_indicator = 1;
17734 PyErr_NoMemory();
17735 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017736 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017737 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017738 return NULL;
17739 }
17740 expr_ty _res = NULL;
17741 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017742 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017743 return _res;
17744 }
17745 int _mark = p->mark;
17746 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17747 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017748 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017749 return NULL;
17750 }
17751 int _start_lineno = p->tokens[_mark]->lineno;
17752 UNUSED(_start_lineno); // Only used by EXTRA macro
17753 int _start_col_offset = p->tokens[_mark]->col_offset;
17754 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017755 { // t_primary '.' NAME !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017756 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017757 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017758 return NULL;
17759 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017760 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 +010017761 Token * _literal;
17762 expr_ty a;
17763 expr_ty b;
17764 if (
17765 (a = t_primary_rule(p)) // t_primary
17766 &&
17767 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17768 &&
17769 (b = _PyPegen_name_token(p)) // NAME
17770 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017771 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017772 )
17773 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017774 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 +010017775 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17776 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017777 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017778 return NULL;
17779 }
17780 int _end_lineno = _token->end_lineno;
17781 UNUSED(_end_lineno); // Only used by EXTRA macro
17782 int _end_col_offset = _token->end_col_offset;
17783 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017784 _res = _PyAST_Attribute ( a , b -> v . Name . id , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017785 if (_res == NULL && PyErr_Occurred()) {
17786 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017787 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017788 return NULL;
17789 }
17790 goto done;
17791 }
17792 p->mark = _mark;
17793 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017794 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017795 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017796 { // t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017797 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017798 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017799 return NULL;
17800 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017801 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 +010017802 Token * _literal;
17803 Token * _literal_1;
17804 expr_ty a;
17805 expr_ty b;
17806 if (
17807 (a = t_primary_rule(p)) // t_primary
17808 &&
17809 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17810 &&
17811 (b = slices_rule(p)) // slices
17812 &&
17813 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17814 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017815 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017816 )
17817 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017818 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 +010017819 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17820 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017821 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017822 return NULL;
17823 }
17824 int _end_lineno = _token->end_lineno;
17825 UNUSED(_end_lineno); // Only used by EXTRA macro
17826 int _end_col_offset = _token->end_col_offset;
17827 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017828 _res = _PyAST_Subscript ( a , b , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017829 if (_res == NULL && PyErr_Occurred()) {
17830 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017831 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017832 return NULL;
17833 }
17834 goto done;
17835 }
17836 p->mark = _mark;
17837 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017838 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017839 }
17840 { // del_t_atom
17841 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017842 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017843 return NULL;
17844 }
17845 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
17846 expr_ty del_t_atom_var;
17847 if (
17848 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
17849 )
17850 {
17851 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
17852 _res = del_t_atom_var;
17853 goto done;
17854 }
17855 p->mark = _mark;
17856 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
17857 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
17858 }
17859 _res = NULL;
17860 done:
17861 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017862 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017863 return _res;
17864}
17865
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017866// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017867static expr_ty
17868del_t_atom_rule(Parser *p)
17869{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017870 if (p->level++ == MAXSTACK) {
17871 p->error_indicator = 1;
17872 PyErr_NoMemory();
17873 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017874 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017875 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017876 return NULL;
17877 }
17878 expr_ty _res = NULL;
17879 int _mark = p->mark;
17880 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17881 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017882 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017883 return NULL;
17884 }
17885 int _start_lineno = p->tokens[_mark]->lineno;
17886 UNUSED(_start_lineno); // Only used by EXTRA macro
17887 int _start_col_offset = p->tokens[_mark]->col_offset;
17888 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017889 { // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017890 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017891 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017892 return NULL;
17893 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017894 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017895 expr_ty a;
17896 if (
17897 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017898 )
17899 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017900 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 +010017901 _res = _PyPegen_set_expr_context ( p , a , Del );
17902 if (_res == NULL && PyErr_Occurred()) {
17903 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017904 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017905 return NULL;
17906 }
17907 goto done;
17908 }
17909 p->mark = _mark;
17910 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017911 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017912 }
17913 { // '(' del_target ')'
17914 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017915 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017916 return NULL;
17917 }
17918 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
17919 Token * _literal;
17920 Token * _literal_1;
17921 expr_ty a;
17922 if (
17923 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17924 &&
17925 (a = del_target_rule(p)) // del_target
17926 &&
17927 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17928 )
17929 {
17930 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
17931 _res = _PyPegen_set_expr_context ( p , a , Del );
17932 if (_res == NULL && PyErr_Occurred()) {
17933 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017934 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017935 return NULL;
17936 }
17937 goto done;
17938 }
17939 p->mark = _mark;
17940 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17941 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
17942 }
17943 { // '(' del_targets? ')'
17944 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017945 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017946 return NULL;
17947 }
17948 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
17949 Token * _literal;
17950 Token * _literal_1;
17951 void *a;
17952 if (
17953 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17954 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020017955 (a = del_targets_rule(p), !p->error_indicator) // del_targets?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017956 &&
17957 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17958 )
17959 {
17960 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
17961 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17962 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017963 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017964 return NULL;
17965 }
17966 int _end_lineno = _token->end_lineno;
17967 UNUSED(_end_lineno); // Only used by EXTRA macro
17968 int _end_col_offset = _token->end_col_offset;
17969 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017970 _res = _PyAST_Tuple ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017971 if (_res == NULL && PyErr_Occurred()) {
17972 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017973 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017974 return NULL;
17975 }
17976 goto done;
17977 }
17978 p->mark = _mark;
17979 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17980 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
17981 }
17982 { // '[' del_targets? ']'
17983 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000017984 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017985 return NULL;
17986 }
17987 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
17988 Token * _literal;
17989 Token * _literal_1;
17990 void *a;
17991 if (
17992 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17993 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020017994 (a = del_targets_rule(p), !p->error_indicator) // del_targets?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017995 &&
17996 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17997 )
17998 {
17999 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
18000 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
18001 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018002 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018003 return NULL;
18004 }
18005 int _end_lineno = _token->end_lineno;
18006 UNUSED(_end_lineno); // Only used by EXTRA macro
18007 int _end_col_offset = _token->end_col_offset;
18008 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020018009 _res = _PyAST_List ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018010 if (_res == NULL && PyErr_Occurred()) {
18011 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018012 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018013 return NULL;
18014 }
18015 goto done;
18016 }
18017 p->mark = _mark;
18018 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
18019 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
18020 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018021 _res = NULL;
18022 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018023 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018024 return _res;
18025}
18026
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018027// Left-recursive
18028// t_primary:
18029// | t_primary '.' NAME &t_lookahead
18030// | t_primary '[' slices ']' &t_lookahead
18031// | t_primary genexp &t_lookahead
18032// | t_primary '(' arguments? ')' &t_lookahead
18033// | atom &t_lookahead
18034static expr_ty t_primary_raw(Parser *);
18035static expr_ty
18036t_primary_rule(Parser *p)
18037{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018038 if (p->level++ == MAXSTACK) {
18039 p->error_indicator = 1;
18040 PyErr_NoMemory();
18041 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018042 expr_ty _res = NULL;
18043 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018044 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018045 return _res;
18046 }
18047 int _mark = p->mark;
18048 int _resmark = p->mark;
18049 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080018050 int tmpvar_9 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
18051 if (tmpvar_9) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018052 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018053 return _res;
18054 }
18055 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018056 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018057 void *_raw = t_primary_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018058 p->in_raw_rule--;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018059 if (p->error_indicator) {
18060 p->level--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020018061 return NULL;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018062 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018063 if (_raw == NULL || p->mark <= _resmark)
18064 break;
18065 _resmark = p->mark;
18066 _res = _raw;
18067 }
18068 p->mark = _resmark;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018069 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018070 return _res;
18071}
18072static expr_ty
18073t_primary_raw(Parser *p)
18074{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018075 if (p->level++ == MAXSTACK) {
18076 p->error_indicator = 1;
18077 PyErr_NoMemory();
18078 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018079 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018080 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018081 return NULL;
18082 }
18083 expr_ty _res = NULL;
18084 int _mark = p->mark;
18085 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
18086 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018087 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018088 return NULL;
18089 }
18090 int _start_lineno = p->tokens[_mark]->lineno;
18091 UNUSED(_start_lineno); // Only used by EXTRA macro
18092 int _start_col_offset = p->tokens[_mark]->col_offset;
18093 UNUSED(_start_col_offset); // Only used by EXTRA macro
18094 { // t_primary '.' NAME &t_lookahead
18095 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018096 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018097 return NULL;
18098 }
18099 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
18100 Token * _literal;
18101 expr_ty a;
18102 expr_ty b;
18103 if (
18104 (a = t_primary_rule(p)) // t_primary
18105 &&
18106 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
18107 &&
18108 (b = _PyPegen_name_token(p)) // NAME
18109 &&
18110 _PyPegen_lookahead(1, t_lookahead_rule, p)
18111 )
18112 {
18113 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
18114 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
18115 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018116 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018117 return NULL;
18118 }
18119 int _end_lineno = _token->end_lineno;
18120 UNUSED(_end_lineno); // Only used by EXTRA macro
18121 int _end_col_offset = _token->end_col_offset;
18122 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020018123 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018124 if (_res == NULL && PyErr_Occurred()) {
18125 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018126 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018127 return NULL;
18128 }
18129 goto done;
18130 }
18131 p->mark = _mark;
18132 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
18133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
18134 }
18135 { // t_primary '[' slices ']' &t_lookahead
18136 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018137 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018138 return NULL;
18139 }
18140 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
18141 Token * _literal;
18142 Token * _literal_1;
18143 expr_ty a;
18144 expr_ty b;
18145 if (
18146 (a = t_primary_rule(p)) // t_primary
18147 &&
18148 (_literal = _PyPegen_expect_token(p, 9)) // token='['
18149 &&
18150 (b = slices_rule(p)) // slices
18151 &&
18152 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
18153 &&
18154 _PyPegen_lookahead(1, t_lookahead_rule, p)
18155 )
18156 {
18157 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
18158 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
18159 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018160 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018161 return NULL;
18162 }
18163 int _end_lineno = _token->end_lineno;
18164 UNUSED(_end_lineno); // Only used by EXTRA macro
18165 int _end_col_offset = _token->end_col_offset;
18166 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020018167 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018168 if (_res == NULL && PyErr_Occurred()) {
18169 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018170 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018171 return NULL;
18172 }
18173 goto done;
18174 }
18175 p->mark = _mark;
18176 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
18177 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
18178 }
18179 { // t_primary genexp &t_lookahead
18180 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018181 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018182 return NULL;
18183 }
18184 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
18185 expr_ty a;
18186 expr_ty b;
18187 if (
18188 (a = t_primary_rule(p)) // t_primary
18189 &&
18190 (b = genexp_rule(p)) // genexp
18191 &&
18192 _PyPegen_lookahead(1, t_lookahead_rule, p)
18193 )
18194 {
18195 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
18196 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
18197 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018198 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018199 return NULL;
18200 }
18201 int _end_lineno = _token->end_lineno;
18202 UNUSED(_end_lineno); // Only used by EXTRA macro
18203 int _end_col_offset = _token->end_col_offset;
18204 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020018205 _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 +010018206 if (_res == NULL && PyErr_Occurred()) {
18207 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018208 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018209 return NULL;
18210 }
18211 goto done;
18212 }
18213 p->mark = _mark;
18214 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
18215 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
18216 }
18217 { // t_primary '(' arguments? ')' &t_lookahead
18218 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018219 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018220 return NULL;
18221 }
18222 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
18223 Token * _literal;
18224 Token * _literal_1;
18225 expr_ty a;
18226 void *b;
18227 if (
18228 (a = t_primary_rule(p)) // t_primary
18229 &&
18230 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18231 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020018232 (b = arguments_rule(p), !p->error_indicator) // arguments?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018233 &&
18234 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18235 &&
18236 _PyPegen_lookahead(1, t_lookahead_rule, p)
18237 )
18238 {
18239 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
18240 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
18241 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018242 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018243 return NULL;
18244 }
18245 int _end_lineno = _token->end_lineno;
18246 UNUSED(_end_lineno); // Only used by EXTRA macro
18247 int _end_col_offset = _token->end_col_offset;
18248 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020018249 _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 +010018250 if (_res == NULL && PyErr_Occurred()) {
18251 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018252 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018253 return NULL;
18254 }
18255 goto done;
18256 }
18257 p->mark = _mark;
18258 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
18259 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
18260 }
18261 { // atom &t_lookahead
18262 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018263 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018264 return NULL;
18265 }
18266 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
18267 expr_ty a;
18268 if (
18269 (a = atom_rule(p)) // atom
18270 &&
18271 _PyPegen_lookahead(1, t_lookahead_rule, p)
18272 )
18273 {
18274 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
18275 _res = a;
18276 if (_res == NULL && PyErr_Occurred()) {
18277 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018278 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018279 return NULL;
18280 }
18281 goto done;
18282 }
18283 p->mark = _mark;
18284 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
18285 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
18286 }
18287 _res = NULL;
18288 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018289 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018290 return _res;
18291}
18292
18293// t_lookahead: '(' | '[' | '.'
18294static void *
18295t_lookahead_rule(Parser *p)
18296{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018297 if (p->level++ == MAXSTACK) {
18298 p->error_indicator = 1;
18299 PyErr_NoMemory();
18300 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018301 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018302 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018303 return NULL;
18304 }
18305 void * _res = NULL;
18306 int _mark = p->mark;
18307 { // '('
18308 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018309 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018310 return NULL;
18311 }
18312 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
18313 Token * _literal;
18314 if (
18315 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18316 )
18317 {
18318 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
18319 _res = _literal;
18320 goto done;
18321 }
18322 p->mark = _mark;
18323 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
18324 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
18325 }
18326 { // '['
18327 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018328 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018329 return NULL;
18330 }
18331 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
18332 Token * _literal;
18333 if (
18334 (_literal = _PyPegen_expect_token(p, 9)) // token='['
18335 )
18336 {
18337 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
18338 _res = _literal;
18339 goto done;
18340 }
18341 p->mark = _mark;
18342 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
18343 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
18344 }
18345 { // '.'
18346 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018347 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018348 return NULL;
18349 }
18350 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
18351 Token * _literal;
18352 if (
18353 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
18354 )
18355 {
18356 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
18357 _res = _literal;
18358 goto done;
18359 }
18360 p->mark = _mark;
18361 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
18362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
18363 }
18364 _res = NULL;
18365 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018366 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018367 return _res;
18368}
18369
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018370// invalid_arguments:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018371// | args ',' '*'
18372// | expression for_if_clauses ',' [args | expression for_if_clauses]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018373// | NAME '=' expression for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018374// | args for_if_clauses
18375// | args ',' expression for_if_clauses
18376// | args ',' args
18377static void *
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018378invalid_arguments_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018379{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018380 if (p->level++ == MAXSTACK) {
18381 p->error_indicator = 1;
18382 PyErr_NoMemory();
18383 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018384 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018385 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018386 return NULL;
18387 }
18388 void * _res = NULL;
18389 int _mark = p->mark;
18390 { // args ',' '*'
18391 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018392 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018393 return NULL;
18394 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018395 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018396 Token * _literal;
18397 Token * _literal_1;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018398 expr_ty a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018399 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010018400 (a = args_rule(p)) // args
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018401 &&
18402 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18403 &&
18404 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
18405 )
18406 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018407 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018408 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable argument unpacking follows keyword argument unpacking" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018409 if (_res == NULL && PyErr_Occurred()) {
18410 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018411 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018412 return NULL;
18413 }
18414 goto done;
18415 }
18416 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018417 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018418 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
18419 }
18420 { // expression for_if_clauses ',' [args | expression for_if_clauses]
18421 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018422 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018423 return NULL;
18424 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018425 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 +010018426 Token * _literal;
18427 void *_opt_var;
18428 UNUSED(_opt_var); // Silence compiler warnings
18429 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018430 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018431 if (
18432 (a = expression_rule(p)) // expression
18433 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018434 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018435 &&
18436 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18437 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020018438 (_opt_var = _tmp_141_rule(p), !p->error_indicator) // [args | expression for_if_clauses]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018439 )
18440 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018441 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018442 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , PyPegen_last_item ( b , comprehension_ty ) -> target , "Generator expression must be parenthesized" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018443 if (_res == NULL && PyErr_Occurred()) {
18444 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018445 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018446 return NULL;
18447 }
18448 goto done;
18449 }
18450 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018451 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
18453 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018454 { // NAME '=' expression for_if_clauses
18455 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018456 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018457 return NULL;
18458 }
18459 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
18460 expr_ty a;
18461 Token * b;
18462 expr_ty expression_var;
18463 asdl_comprehension_seq* for_if_clauses_var;
18464 if (
18465 (a = _PyPegen_name_token(p)) // NAME
18466 &&
18467 (b = _PyPegen_expect_token(p, 22)) // token='='
18468 &&
18469 (expression_var = expression_rule(p)) // expression
18470 &&
18471 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18472 )
18473 {
18474 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
18475 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
18476 if (_res == NULL && PyErr_Occurred()) {
18477 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018478 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018479 return NULL;
18480 }
18481 goto done;
18482 }
18483 p->mark = _mark;
18484 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
18485 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression for_if_clauses"));
18486 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018487 { // args for_if_clauses
18488 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018489 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018490 return NULL;
18491 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018492 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 +010018493 expr_ty a;
Miss Islington (bot)9e209d42021-09-27 07:05:20 -070018494 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018495 if (
18496 (a = args_rule(p)) // args
18497 &&
Miss Islington (bot)9e209d42021-09-27 07:05:20 -070018498 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018499 )
18500 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018501 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args for_if_clauses"));
Miss Islington (bot)9e209d42021-09-27 07:05:20 -070018502 _res = _PyPegen_nonparen_genexp_in_call ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018503 if (_res == NULL && PyErr_Occurred()) {
18504 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018505 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018506 return NULL;
18507 }
18508 goto done;
18509 }
18510 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018511 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018512 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
18513 }
18514 { // args ',' expression for_if_clauses
18515 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018516 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018517 return NULL;
18518 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018519 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 +010018520 Token * _literal;
18521 expr_ty a;
18522 expr_ty args_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018523 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018524 if (
18525 (args_var = args_rule(p)) // args
18526 &&
18527 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18528 &&
18529 (a = expression_rule(p)) // expression
18530 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018531 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018532 )
18533 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018534 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' expression for_if_clauses"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018535 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , asdl_seq_GET ( b , b -> size - 1 ) -> target , "Generator expression must be parenthesized" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018536 if (_res == NULL && PyErr_Occurred()) {
18537 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018538 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018539 return NULL;
18540 }
18541 goto done;
18542 }
18543 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018544 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
18546 }
18547 { // args ',' args
18548 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018549 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018550 return NULL;
18551 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018552 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018553 Token * _literal;
18554 expr_ty a;
18555 expr_ty args_var;
18556 if (
18557 (a = args_rule(p)) // args
18558 &&
18559 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18560 &&
18561 (args_var = args_rule(p)) // args
18562 )
18563 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018564 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 +010018565 _res = _PyPegen_arguments_parsing_error ( p , a );
18566 if (_res == NULL && PyErr_Occurred()) {
18567 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018568 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018569 return NULL;
18570 }
18571 goto done;
18572 }
18573 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018574 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018575 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
18576 }
18577 _res = NULL;
18578 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018579 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018580 return _res;
18581}
18582
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018583// invalid_kwarg:
18584// | ('True' | 'False' | 'None') '='
18585// | NAME '=' expression for_if_clauses
18586// | !(NAME '=') expression '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018587static void *
18588invalid_kwarg_rule(Parser *p)
18589{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018590 if (p->level++ == MAXSTACK) {
18591 p->error_indicator = 1;
18592 PyErr_NoMemory();
18593 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018594 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018595 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018596 return NULL;
18597 }
18598 void * _res = NULL;
18599 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018600 { // ('True' | 'False' | 'None') '='
18601 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018602 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018603 return NULL;
18604 }
18605 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('True' | 'False' | 'None') '='"));
18606 Token* a;
18607 Token * b;
18608 if (
18609 (a = (Token*)_tmp_142_rule(p)) // 'True' | 'False' | 'None'
18610 &&
18611 (b = _PyPegen_expect_token(p, 22)) // token='='
18612 )
18613 {
18614 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('True' | 'False' | 'None') '='"));
18615 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "cannot assign to %s" , PyBytes_AS_STRING ( a -> bytes ) );
18616 if (_res == NULL && PyErr_Occurred()) {
18617 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018618 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018619 return NULL;
18620 }
18621 goto done;
18622 }
18623 p->mark = _mark;
18624 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
18625 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('True' | 'False' | 'None') '='"));
18626 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018627 { // NAME '=' expression for_if_clauses
18628 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018629 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018630 return NULL;
18631 }
18632 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
18633 expr_ty a;
18634 Token * b;
18635 expr_ty expression_var;
18636 asdl_comprehension_seq* for_if_clauses_var;
18637 if (
18638 (a = _PyPegen_name_token(p)) // NAME
18639 &&
18640 (b = _PyPegen_expect_token(p, 22)) // token='='
18641 &&
18642 (expression_var = expression_rule(p)) // expression
18643 &&
18644 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18645 )
18646 {
18647 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
18648 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
18649 if (_res == NULL && PyErr_Occurred()) {
18650 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018651 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018652 return NULL;
18653 }
18654 goto done;
18655 }
18656 p->mark = _mark;
18657 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
18658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression for_if_clauses"));
18659 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018660 { // !(NAME '=') expression '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018661 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018662 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018663 return NULL;
18664 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018665 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(NAME '=') expression '='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018666 expr_ty a;
18667 Token * b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018668 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018669 _PyPegen_lookahead(0, _tmp_143_rule, p)
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018670 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018671 (a = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018672 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018673 (b = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018674 )
18675 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018676 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(NAME '=') expression '='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018677 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "expression cannot contain assignment, perhaps you meant \"==\"?" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018678 if (_res == NULL && PyErr_Occurred()) {
18679 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018680 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018681 return NULL;
18682 }
18683 goto done;
18684 }
18685 p->mark = _mark;
18686 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018687 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME '=') expression '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018688 }
18689 _res = NULL;
18690 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018691 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018692 return _res;
18693}
18694
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018695// expression_without_invalid:
18696// | disjunction 'if' disjunction 'else' expression
18697// | disjunction
18698// | lambdef
18699static expr_ty
18700expression_without_invalid_rule(Parser *p)
18701{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018702 if (p->level++ == MAXSTACK) {
18703 p->error_indicator = 1;
18704 PyErr_NoMemory();
18705 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018706 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018707 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018708 return NULL;
18709 }
18710 expr_ty _res = NULL;
18711 int _mark = p->mark;
18712 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
18713 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018714 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018715 return NULL;
18716 }
18717 int _start_lineno = p->tokens[_mark]->lineno;
18718 UNUSED(_start_lineno); // Only used by EXTRA macro
18719 int _start_col_offset = p->tokens[_mark]->col_offset;
18720 UNUSED(_start_col_offset); // Only used by EXTRA macro
18721 { // disjunction 'if' disjunction 'else' expression
18722 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018723 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018724 return NULL;
18725 }
18726 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
18727 Token * _keyword;
18728 Token * _keyword_1;
18729 expr_ty a;
18730 expr_ty b;
18731 expr_ty c;
18732 if (
18733 (a = disjunction_rule(p)) // disjunction
18734 &&
18735 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
18736 &&
18737 (b = disjunction_rule(p)) // disjunction
18738 &&
18739 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
18740 &&
18741 (c = expression_rule(p)) // expression
18742 )
18743 {
18744 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
18745 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
18746 if (_token == NULL) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018747 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018748 return NULL;
18749 }
18750 int _end_lineno = _token->end_lineno;
18751 UNUSED(_end_lineno); // Only used by EXTRA macro
18752 int _end_col_offset = _token->end_col_offset;
18753 UNUSED(_end_col_offset); // Only used by EXTRA macro
18754 _res = _PyAST_IfExp ( b , a , c , EXTRA );
18755 if (_res == NULL && PyErr_Occurred()) {
18756 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018757 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018758 return NULL;
18759 }
18760 goto done;
18761 }
18762 p->mark = _mark;
18763 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
18764 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
18765 }
18766 { // disjunction
18767 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018768 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018769 return NULL;
18770 }
18771 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
18772 expr_ty disjunction_var;
18773 if (
18774 (disjunction_var = disjunction_rule(p)) // disjunction
18775 )
18776 {
18777 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
18778 _res = disjunction_var;
18779 goto done;
18780 }
18781 p->mark = _mark;
18782 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
18783 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
18784 }
18785 { // lambdef
18786 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018787 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018788 return NULL;
18789 }
18790 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
18791 expr_ty lambdef_var;
18792 if (
18793 (lambdef_var = lambdef_rule(p)) // lambdef
18794 )
18795 {
18796 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
18797 _res = lambdef_var;
18798 goto done;
18799 }
18800 p->mark = _mark;
18801 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
18802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
18803 }
18804 _res = NULL;
18805 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018806 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018807 return _res;
18808}
18809
Miss Islington (bot)35035bc2021-07-31 18:31:44 -070018810// invalid_legacy_expression: NAME !'(' star_expressions
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018811static void *
18812invalid_legacy_expression_rule(Parser *p)
18813{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018814 if (p->level++ == MAXSTACK) {
18815 p->error_indicator = 1;
18816 PyErr_NoMemory();
18817 }
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018818 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018819 p->level--;
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018820 return NULL;
18821 }
18822 void * _res = NULL;
18823 int _mark = p->mark;
Miss Islington (bot)35035bc2021-07-31 18:31:44 -070018824 { // NAME !'(' star_expressions
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018825 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018826 p->level--;
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018827 return NULL;
18828 }
Miss Islington (bot)35035bc2021-07-31 18:31:44 -070018829 D(fprintf(stderr, "%*c> invalid_legacy_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME !'(' star_expressions"));
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018830 expr_ty a;
18831 expr_ty b;
18832 if (
18833 (a = _PyPegen_name_token(p)) // NAME
18834 &&
Miss Islington (bot)35035bc2021-07-31 18:31:44 -070018835 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 7) // token='('
18836 &&
Miss Islington (bot)68e3dca2021-07-27 14:19:18 -070018837 (b = star_expressions_rule(p)) // star_expressions
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018838 )
18839 {
Miss Islington (bot)35035bc2021-07-31 18:31:44 -070018840 D(fprintf(stderr, "%*c+ invalid_legacy_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME !'(' star_expressions"));
Miss Islington (bot)68e3dca2021-07-27 14:19:18 -070018841 _res = _PyPegen_check_legacy_stmt ( p , a ) ? RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "Missing parentheses in call to '%U'. Did you mean %U(...)?" , a -> v . Name . id , a -> v . Name . id ) : NULL;
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018842 if (_res == NULL && PyErr_Occurred()) {
18843 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018844 p->level--;
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018845 return NULL;
18846 }
18847 goto done;
18848 }
18849 p->mark = _mark;
18850 D(fprintf(stderr, "%*c%s invalid_legacy_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)35035bc2021-07-31 18:31:44 -070018851 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME !'(' star_expressions"));
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018852 }
18853 _res = NULL;
18854 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018855 p->level--;
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018856 return _res;
18857}
18858
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018859// invalid_expression:
18860// | !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018861// | disjunction 'if' disjunction !('else' | ':')
Pablo Galindob2802482021-04-15 21:38:45 +010018862static void *
18863invalid_expression_rule(Parser *p)
18864{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018865 if (p->level++ == MAXSTACK) {
18866 p->error_indicator = 1;
18867 PyErr_NoMemory();
18868 }
Pablo Galindob2802482021-04-15 21:38:45 +010018869 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018870 p->level--;
Pablo Galindob2802482021-04-15 21:38:45 +010018871 return NULL;
18872 }
18873 void * _res = NULL;
18874 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018875 { // !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
Pablo Galindob2802482021-04-15 21:38:45 +010018876 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018877 p->level--;
Pablo Galindob2802482021-04-15 21:38:45 +010018878 return NULL;
18879 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018880 D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid"));
Pablo Galindob2802482021-04-15 21:38:45 +010018881 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018882 expr_ty b;
Pablo Galindob2802482021-04-15 21:38:45 +010018883 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018884 _PyPegen_lookahead(0, _tmp_144_rule, p)
Pablo Galindob2802482021-04-15 21:38:45 +010018885 &&
18886 (a = disjunction_rule(p)) // disjunction
18887 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018888 (b = expression_without_invalid_rule(p)) // expression_without_invalid
Pablo Galindob2802482021-04-15 21:38:45 +010018889 )
18890 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018891 D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid"));
Pablo Galindo Salgadoc72311d2021-11-25 01:01:40 +000018892 _res = _PyPegen_check_legacy_stmt ( p , a ) ? NULL : p -> tokens [ p -> mark - 1 ] -> level == 0 ? NULL : RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Perhaps you forgot a comma?" );
Pablo Galindob2802482021-04-15 21:38:45 +010018893 if (_res == NULL && PyErr_Occurred()) {
18894 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018895 p->level--;
Pablo Galindob2802482021-04-15 21:38:45 +010018896 return NULL;
18897 }
18898 goto done;
18899 }
18900 p->mark = _mark;
18901 D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018902 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid"));
Pablo Galindob2802482021-04-15 21:38:45 +010018903 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018904 { // disjunction 'if' disjunction !('else' | ':')
Miss Islington (bot)56717622021-08-02 12:05:33 -070018905 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018906 p->level--;
Miss Islington (bot)56717622021-08-02 12:05:33 -070018907 return NULL;
18908 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018909 D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')"));
Miss Islington (bot)56717622021-08-02 12:05:33 -070018910 Token * _keyword;
18911 expr_ty a;
18912 expr_ty b;
18913 if (
18914 (a = disjunction_rule(p)) // disjunction
18915 &&
18916 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
18917 &&
18918 (b = disjunction_rule(p)) // disjunction
18919 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000018920 _PyPegen_lookahead(0, _tmp_145_rule, p)
Miss Islington (bot)56717622021-08-02 12:05:33 -070018921 )
18922 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018923 D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')"));
Miss Islington (bot)56717622021-08-02 12:05:33 -070018924 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "expected 'else' after 'if' expression" );
18925 if (_res == NULL && PyErr_Occurred()) {
18926 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018927 p->level--;
Miss Islington (bot)56717622021-08-02 12:05:33 -070018928 return NULL;
18929 }
18930 goto done;
18931 }
18932 p->mark = _mark;
18933 D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')"));
Miss Islington (bot)56717622021-08-02 12:05:33 -070018935 }
Pablo Galindob2802482021-04-15 21:38:45 +010018936 _res = NULL;
18937 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018938 p->level--;
Pablo Galindob2802482021-04-15 21:38:45 +010018939 return _res;
18940}
18941
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018942// invalid_named_expression:
18943// | expression ':=' expression
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018944// | NAME '=' bitwise_or !('=' | ':=')
18945// | !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018946static void *
18947invalid_named_expression_rule(Parser *p)
18948{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018949 if (p->level++ == MAXSTACK) {
18950 p->error_indicator = 1;
18951 PyErr_NoMemory();
18952 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018953 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018954 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018955 return NULL;
18956 }
18957 void * _res = NULL;
18958 int _mark = p->mark;
18959 { // expression ':=' expression
18960 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018961 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018962 return NULL;
18963 }
18964 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
18965 Token * _literal;
18966 expr_ty a;
18967 expr_ty expression_var;
18968 if (
18969 (a = expression_rule(p)) // expression
18970 &&
18971 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
18972 &&
18973 (expression_var = expression_rule(p)) // expression
18974 )
18975 {
18976 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
18977 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
18978 if (_res == NULL && PyErr_Occurred()) {
18979 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018980 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018981 return NULL;
18982 }
18983 goto done;
18984 }
18985 p->mark = _mark;
18986 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
18987 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
18988 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018989 { // NAME '=' bitwise_or !('=' | ':=')
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018990 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000018991 p->level--;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018992 return NULL;
18993 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018994 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018995 Token * _literal;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018996 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018997 expr_ty b;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018998 if (
18999 (a = _PyPegen_name_token(p)) // NAME
19000 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019001 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019002 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019003 (b = bitwise_or_rule(p)) // bitwise_or
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019004 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019005 _PyPegen_lookahead(0, _tmp_146_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019006 )
19007 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019008 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')"));
19009 _res = p -> in_raw_rule ? NULL : RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019010 if (_res == NULL && PyErr_Occurred()) {
19011 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019012 p->level--;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019013 return NULL;
19014 }
19015 goto done;
19016 }
19017 p->mark = _mark;
19018 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019019 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019020 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019021 { // !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019022 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019023 p->level--;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019024 return NULL;
19025 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019026 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019027 expr_ty a;
19028 Token * b;
19029 expr_ty bitwise_or_var;
19030 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019031 _PyPegen_lookahead(0, _tmp_147_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019032 &&
19033 (a = bitwise_or_rule(p)) // bitwise_or
19034 &&
19035 (b = _PyPegen_expect_token(p, 22)) // token='='
19036 &&
19037 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
19038 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019039 _PyPegen_lookahead(0, _tmp_148_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019040 )
19041 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019042 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 !('=' | ':=')"));
19043 _res = p -> in_raw_rule ? NULL : RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot assign to %s here. Maybe you meant '==' instead of '='?" , _PyPegen_get_expr_name ( a ) );
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019044 if (_res == NULL && PyErr_Occurred()) {
19045 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019046 p->level--;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019047 return NULL;
19048 }
19049 goto done;
19050 }
19051 p->mark = _mark;
19052 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070019053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019054 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019055 _res = NULL;
19056 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019057 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019058 return _res;
19059}
19060
19061// invalid_assignment:
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030019062// | invalid_ann_assign_target ':' expression
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030019063// | star_named_expression ',' star_named_expressions* ':' expression
19064// | expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019065// | ((star_targets '='))* star_expressions '='
19066// | ((star_targets '='))* yield_expr '='
19067// | star_expressions augassign (yield_expr | star_expressions)
19068static void *
19069invalid_assignment_rule(Parser *p)
19070{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019071 if (p->level++ == MAXSTACK) {
19072 p->error_indicator = 1;
19073 PyErr_NoMemory();
19074 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019075 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019076 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019077 return NULL;
19078 }
19079 void * _res = NULL;
19080 int _mark = p->mark;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030019081 { // invalid_ann_assign_target ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019082 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019083 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019084 return NULL;
19085 }
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030019086 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 +010019087 Token * _literal;
19088 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030019089 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019090 if (
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030019091 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019092 &&
19093 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030019094 &&
19095 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019096 )
19097 {
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030019098 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
19099 _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 +010019100 if (_res == NULL && PyErr_Occurred()) {
19101 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019102 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019103 return NULL;
19104 }
19105 goto done;
19106 }
19107 p->mark = _mark;
19108 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030019109 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019110 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030019111 { // star_named_expression ',' star_named_expressions* ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019112 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019113 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019114 return NULL;
19115 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030019116 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 +010019117 Token * _literal;
19118 Token * _literal_1;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019119 asdl_seq * _loop0_149_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019120 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030019121 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019122 if (
19123 (a = star_named_expression_rule(p)) // star_named_expression
19124 &&
19125 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19126 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019127 (_loop0_149_var = _loop0_149_rule(p)) // star_named_expressions*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019128 &&
19129 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030019130 &&
19131 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019132 )
19133 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030019134 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 +010019135 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
19136 if (_res == NULL && PyErr_Occurred()) {
19137 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019138 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019139 return NULL;
19140 }
19141 goto done;
19142 }
19143 p->mark = _mark;
19144 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030019145 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019146 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030019147 { // expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019148 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019149 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019150 return NULL;
19151 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030019152 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019153 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019154 expr_ty a;
19155 expr_ty expression_var;
19156 if (
19157 (a = expression_rule(p)) // expression
19158 &&
19159 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19160 &&
19161 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019162 )
19163 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030019164 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 +010019165 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
19166 if (_res == NULL && PyErr_Occurred()) {
19167 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019168 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019169 return NULL;
19170 }
19171 goto done;
19172 }
19173 p->mark = _mark;
19174 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030019175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019176 }
19177 { // ((star_targets '='))* star_expressions '='
19178 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019179 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019180 return NULL;
19181 }
19182 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
19183 Token * _literal;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019184 asdl_seq * _loop0_150_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019185 expr_ty a;
19186 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019187 (_loop0_150_var = _loop0_150_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019188 &&
19189 (a = star_expressions_rule(p)) // star_expressions
19190 &&
19191 (_literal = _PyPegen_expect_token(p, 22)) // token='='
19192 )
19193 {
19194 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 +030019195 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019196 if (_res == NULL && PyErr_Occurred()) {
19197 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019198 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019199 return NULL;
19200 }
19201 goto done;
19202 }
19203 p->mark = _mark;
19204 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
19205 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
19206 }
19207 { // ((star_targets '='))* yield_expr '='
19208 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019209 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019210 return NULL;
19211 }
19212 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
19213 Token * _literal;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019214 asdl_seq * _loop0_151_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019215 expr_ty a;
19216 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019217 (_loop0_151_var = _loop0_151_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019218 &&
19219 (a = yield_expr_rule(p)) // yield_expr
19220 &&
19221 (_literal = _PyPegen_expect_token(p, 22)) // token='='
19222 )
19223 {
19224 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
19225 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
19226 if (_res == NULL && PyErr_Occurred()) {
19227 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019228 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019229 return NULL;
19230 }
19231 goto done;
19232 }
19233 p->mark = _mark;
19234 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
19235 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
19236 }
19237 { // star_expressions augassign (yield_expr | star_expressions)
19238 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019239 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019240 return NULL;
19241 }
19242 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019243 void *_tmp_152_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019244 expr_ty a;
19245 AugOperator* augassign_var;
19246 if (
19247 (a = star_expressions_rule(p)) // star_expressions
19248 &&
19249 (augassign_var = augassign_rule(p)) // augassign
19250 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019251 (_tmp_152_var = _tmp_152_rule(p)) // yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019252 )
19253 {
19254 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
19255 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
19256 if (_res == NULL && PyErr_Occurred()) {
19257 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019258 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019259 return NULL;
19260 }
19261 goto done;
19262 }
19263 p->mark = _mark;
19264 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
19265 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
19266 }
19267 _res = NULL;
19268 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019269 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019270 return _res;
19271}
19272
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030019273// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
19274static expr_ty
19275invalid_ann_assign_target_rule(Parser *p)
19276{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019277 if (p->level++ == MAXSTACK) {
19278 p->error_indicator = 1;
19279 PyErr_NoMemory();
19280 }
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030019281 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019282 p->level--;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030019283 return NULL;
19284 }
19285 expr_ty _res = NULL;
19286 int _mark = p->mark;
19287 { // list
19288 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019289 p->level--;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030019290 return NULL;
19291 }
19292 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
19293 expr_ty list_var;
19294 if (
19295 (list_var = list_rule(p)) // list
19296 )
19297 {
19298 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
19299 _res = list_var;
19300 goto done;
19301 }
19302 p->mark = _mark;
19303 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
19304 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
19305 }
19306 { // tuple
19307 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019308 p->level--;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030019309 return NULL;
19310 }
19311 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
19312 expr_ty tuple_var;
19313 if (
19314 (tuple_var = tuple_rule(p)) // tuple
19315 )
19316 {
19317 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
19318 _res = tuple_var;
19319 goto done;
19320 }
19321 p->mark = _mark;
19322 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
19323 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
19324 }
19325 { // '(' invalid_ann_assign_target ')'
19326 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019327 p->level--;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030019328 return NULL;
19329 }
19330 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
19331 Token * _literal;
19332 Token * _literal_1;
19333 expr_ty a;
19334 if (
19335 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19336 &&
19337 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
19338 &&
19339 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19340 )
19341 {
19342 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
19343 _res = a;
19344 if (_res == NULL && PyErr_Occurred()) {
19345 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019346 p->level--;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030019347 return NULL;
19348 }
19349 goto done;
19350 }
19351 p->mark = _mark;
19352 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
19353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
19354 }
19355 _res = NULL;
19356 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019357 p->level--;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030019358 return _res;
19359}
19360
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019361// invalid_del_stmt: 'del' star_expressions
19362static void *
19363invalid_del_stmt_rule(Parser *p)
19364{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019365 if (p->level++ == MAXSTACK) {
19366 p->error_indicator = 1;
19367 PyErr_NoMemory();
19368 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019369 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019370 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019371 return NULL;
19372 }
19373 void * _res = NULL;
19374 int _mark = p->mark;
19375 { // 'del' star_expressions
19376 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019377 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019378 return NULL;
19379 }
19380 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
19381 Token * _keyword;
19382 expr_ty a;
19383 if (
19384 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
19385 &&
19386 (a = star_expressions_rule(p)) // star_expressions
19387 )
19388 {
19389 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 +030019390 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019391 if (_res == NULL && PyErr_Occurred()) {
19392 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019393 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019394 return NULL;
19395 }
19396 goto done;
19397 }
19398 p->mark = _mark;
19399 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19400 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
19401 }
19402 _res = NULL;
19403 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019404 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019405 return _res;
19406}
19407
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019408// invalid_block: NEWLINE !INDENT
19409static void *
19410invalid_block_rule(Parser *p)
19411{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019412 if (p->level++ == MAXSTACK) {
19413 p->error_indicator = 1;
19414 PyErr_NoMemory();
19415 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019416 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019417 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019418 return NULL;
19419 }
19420 void * _res = NULL;
19421 int _mark = p->mark;
19422 { // NEWLINE !INDENT
19423 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019424 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019425 return NULL;
19426 }
19427 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
19428 Token * newline_var;
19429 if (
19430 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19431 &&
19432 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19433 )
19434 {
19435 D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
19436 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
19437 if (_res == NULL && PyErr_Occurred()) {
19438 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019439 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019440 return NULL;
19441 }
19442 goto done;
19443 }
19444 p->mark = _mark;
19445 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
19446 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
19447 }
19448 _res = NULL;
19449 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019450 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019451 return _res;
19452}
19453
Pablo Galindo835f14f2021-01-31 22:52:56 +000019454// invalid_comprehension:
19455// | ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindoa77aac42021-04-23 14:27:05 +010019456// | ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
19457// | ('[' | '{') star_named_expression ',' for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019458static void *
19459invalid_comprehension_rule(Parser *p)
19460{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019461 if (p->level++ == MAXSTACK) {
19462 p->error_indicator = 1;
19463 PyErr_NoMemory();
19464 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019465 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019466 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019467 return NULL;
19468 }
19469 void * _res = NULL;
19470 int _mark = p->mark;
19471 { // ('[' | '(' | '{') starred_expression for_if_clauses
19472 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019473 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019474 return NULL;
19475 }
19476 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019477 void *_tmp_153_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019478 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010019479 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019480 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019481 (_tmp_153_var = _tmp_153_rule(p)) // '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019482 &&
19483 (a = starred_expression_rule(p)) // starred_expression
19484 &&
19485 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
19486 )
19487 {
19488 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
19489 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
19490 if (_res == NULL && PyErr_Occurred()) {
19491 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019492 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019493 return NULL;
19494 }
19495 goto done;
19496 }
19497 p->mark = _mark;
19498 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
19499 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
19500 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010019501 { // ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000019502 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019503 p->level--;
Pablo Galindo835f14f2021-01-31 22:52:56 +000019504 return NULL;
19505 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010019506 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 +000019507 Token * _literal;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019508 void *_tmp_154_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000019509 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019510 asdl_expr_seq* b;
Pablo Galindod4e6ed72021-02-03 23:29:26 +000019511 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000019512 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019513 (_tmp_154_var = _tmp_154_rule(p)) // '[' | '{'
Pablo Galindo835f14f2021-01-31 22:52:56 +000019514 &&
19515 (a = star_named_expression_rule(p)) // star_named_expression
19516 &&
19517 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19518 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019519 (b = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindod4e6ed72021-02-03 23:29:26 +000019520 &&
19521 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000019522 )
19523 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010019524 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"));
19525 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , PyPegen_last_item ( b , expr_ty ) , "did you forget parentheses around the comprehension target?" );
Pablo Galindo835f14f2021-01-31 22:52:56 +000019526 if (_res == NULL && PyErr_Occurred()) {
19527 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019528 p->level--;
Pablo Galindo835f14f2021-01-31 22:52:56 +000019529 return NULL;
19530 }
19531 goto done;
19532 }
19533 p->mark = _mark;
19534 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010019535 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses"));
19536 }
19537 { // ('[' | '{') star_named_expression ',' for_if_clauses
19538 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019539 p->level--;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019540 return NULL;
19541 }
19542 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019543 void *_tmp_155_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019544 expr_ty a;
19545 Token * b;
19546 asdl_comprehension_seq* for_if_clauses_var;
19547 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019548 (_tmp_155_var = _tmp_155_rule(p)) // '[' | '{'
Pablo Galindoa77aac42021-04-23 14:27:05 +010019549 &&
19550 (a = star_named_expression_rule(p)) // star_named_expression
19551 &&
19552 (b = _PyPegen_expect_token(p, 12)) // token=','
19553 &&
19554 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
19555 )
19556 {
19557 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
19558 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "did you forget parentheses around the comprehension target?" );
19559 if (_res == NULL && PyErr_Occurred()) {
19560 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019561 p->level--;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019562 return NULL;
19563 }
19564 goto done;
19565 }
19566 p->mark = _mark;
19567 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
19568 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000019569 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019570 _res = NULL;
19571 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019572 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019573 return _res;
19574}
19575
19576// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
19577static void *
19578invalid_dict_comprehension_rule(Parser *p)
19579{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019580 if (p->level++ == MAXSTACK) {
19581 p->error_indicator = 1;
19582 PyErr_NoMemory();
19583 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019584 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019585 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019586 return NULL;
19587 }
19588 void * _res = NULL;
19589 int _mark = p->mark;
19590 { // '{' '**' bitwise_or for_if_clauses '}'
19591 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019592 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019593 return NULL;
19594 }
19595 D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
19596 Token * _literal;
19597 Token * _literal_1;
19598 Token * a;
19599 expr_ty bitwise_or_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010019600 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019601 if (
19602 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
19603 &&
19604 (a = _PyPegen_expect_token(p, 35)) // token='**'
19605 &&
19606 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
19607 &&
19608 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
19609 &&
19610 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
19611 )
19612 {
19613 D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
19614 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
19615 if (_res == NULL && PyErr_Occurred()) {
19616 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019617 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019618 return NULL;
19619 }
19620 goto done;
19621 }
19622 p->mark = _mark;
19623 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
19624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
19625 }
19626 _res = NULL;
19627 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019628 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019629 return _res;
19630}
19631
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019632// invalid_parameters: param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019633static void *
19634invalid_parameters_rule(Parser *p)
19635{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019636 if (p->level++ == MAXSTACK) {
19637 p->error_indicator = 1;
19638 PyErr_NoMemory();
19639 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019640 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019641 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019642 return NULL;
19643 }
19644 void * _res = NULL;
19645 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019646 { // param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019647 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019648 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019649 return NULL;
19650 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019651 D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019652 asdl_seq * _loop0_156_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019653 arg_ty a;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019654 void *invalid_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019655 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019656 (_loop0_156_var = _loop0_156_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019657 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019658 (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019659 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019660 (a = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019661 )
19662 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019663 D(fprintf(stderr, "%*c+ invalid_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019664 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019665 if (_res == NULL && PyErr_Occurred()) {
19666 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019667 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019668 return NULL;
19669 }
19670 goto done;
19671 }
19672 p->mark = _mark;
19673 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019674 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
19675 }
19676 _res = NULL;
19677 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019678 p->level--;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019679 return _res;
19680}
19681
19682// invalid_parameters_helper: slash_with_default | param_with_default+
19683static void *
19684invalid_parameters_helper_rule(Parser *p)
19685{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019686 if (p->level++ == MAXSTACK) {
19687 p->error_indicator = 1;
19688 PyErr_NoMemory();
19689 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019690 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019691 p->level--;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019692 return NULL;
19693 }
19694 void * _res = NULL;
19695 int _mark = p->mark;
19696 { // slash_with_default
19697 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019698 p->level--;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019699 return NULL;
19700 }
19701 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
19702 SlashWithDefault* a;
19703 if (
19704 (a = slash_with_default_rule(p)) // slash_with_default
19705 )
19706 {
19707 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
19708 _res = _PyPegen_singleton_seq ( p , a );
19709 if (_res == NULL && PyErr_Occurred()) {
19710 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019711 p->level--;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019712 return NULL;
19713 }
19714 goto done;
19715 }
19716 p->mark = _mark;
19717 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19718 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
19719 }
19720 { // param_with_default+
19721 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019722 p->level--;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019723 return NULL;
19724 }
19725 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019726 asdl_seq * _loop1_157_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019727 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019728 (_loop1_157_var = _loop1_157_rule(p)) // param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019729 )
19730 {
19731 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019732 _res = _loop1_157_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019733 goto done;
19734 }
19735 p->mark = _mark;
19736 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19737 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019738 }
19739 _res = NULL;
19740 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019741 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019742 return _res;
19743}
19744
19745// invalid_lambda_parameters:
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019746// | lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019747static void *
19748invalid_lambda_parameters_rule(Parser *p)
19749{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019750 if (p->level++ == MAXSTACK) {
19751 p->error_indicator = 1;
19752 PyErr_NoMemory();
19753 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019754 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019755 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019756 return NULL;
19757 }
19758 void * _res = NULL;
19759 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019760 { // lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019761 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019762 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019763 return NULL;
19764 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019765 D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019766 asdl_seq * _loop0_158_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019767 arg_ty a;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019768 void *invalid_lambda_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019769 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019770 (_loop0_158_var = _loop0_158_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019771 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019772 (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019773 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019774 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019775 )
19776 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019777 D(fprintf(stderr, "%*c+ invalid_lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019778 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019779 if (_res == NULL && PyErr_Occurred()) {
19780 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019781 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019782 return NULL;
19783 }
19784 goto done;
19785 }
19786 p->mark = _mark;
19787 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019788 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
19789 }
19790 _res = NULL;
19791 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019792 p->level--;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019793 return _res;
19794}
19795
19796// invalid_lambda_parameters_helper:
19797// | lambda_slash_with_default
19798// | lambda_param_with_default+
19799static void *
19800invalid_lambda_parameters_helper_rule(Parser *p)
19801{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019802 if (p->level++ == MAXSTACK) {
19803 p->error_indicator = 1;
19804 PyErr_NoMemory();
19805 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019806 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019807 p->level--;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019808 return NULL;
19809 }
19810 void * _res = NULL;
19811 int _mark = p->mark;
19812 { // lambda_slash_with_default
19813 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019814 p->level--;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019815 return NULL;
19816 }
19817 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
19818 SlashWithDefault* a;
19819 if (
19820 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
19821 )
19822 {
19823 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
19824 _res = _PyPegen_singleton_seq ( p , a );
19825 if (_res == NULL && PyErr_Occurred()) {
19826 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019827 p->level--;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019828 return NULL;
19829 }
19830 goto done;
19831 }
19832 p->mark = _mark;
19833 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19834 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
19835 }
19836 { // lambda_param_with_default+
19837 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019838 p->level--;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019839 return NULL;
19840 }
19841 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019842 asdl_seq * _loop1_159_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019843 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019844 (_loop1_159_var = _loop1_159_rule(p)) // lambda_param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019845 )
19846 {
19847 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019848 _res = _loop1_159_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019849 goto done;
19850 }
19851 p->mark = _mark;
19852 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19853 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019854 }
19855 _res = NULL;
19856 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019857 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019858 return _res;
19859}
19860
19861// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
19862static void *
19863invalid_star_etc_rule(Parser *p)
19864{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019865 if (p->level++ == MAXSTACK) {
19866 p->error_indicator = 1;
19867 PyErr_NoMemory();
19868 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019869 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019870 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019871 return NULL;
19872 }
19873 void * _res = NULL;
19874 int _mark = p->mark;
19875 { // '*' (')' | ',' (')' | '**'))
19876 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019877 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019878 return NULL;
19879 }
19880 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019881 void *_tmp_160_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019882 Token * a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019883 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010019884 (a = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019885 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019886 (_tmp_160_var = _tmp_160_rule(p)) // ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019887 )
19888 {
19889 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019890 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "named arguments must follow bare *" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019891 if (_res == NULL && PyErr_Occurred()) {
19892 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019893 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019894 return NULL;
19895 }
19896 goto done;
19897 }
19898 p->mark = _mark;
19899 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19900 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
19901 }
19902 { // '*' ',' TYPE_COMMENT
19903 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019904 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019905 return NULL;
19906 }
19907 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19908 Token * _literal;
19909 Token * _literal_1;
19910 Token * type_comment_var;
19911 if (
19912 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
19913 &&
19914 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
19915 &&
19916 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19917 )
19918 {
19919 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19920 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
19921 if (_res == NULL && PyErr_Occurred()) {
19922 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019923 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019924 return NULL;
19925 }
19926 goto done;
19927 }
19928 p->mark = _mark;
19929 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19930 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19931 }
19932 _res = NULL;
19933 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019934 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019935 return _res;
19936}
19937
19938// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
19939static void *
19940invalid_lambda_star_etc_rule(Parser *p)
19941{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019942 if (p->level++ == MAXSTACK) {
19943 p->error_indicator = 1;
19944 PyErr_NoMemory();
19945 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019946 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019947 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019948 return NULL;
19949 }
19950 void * _res = NULL;
19951 int _mark = p->mark;
19952 { // '*' (':' | ',' (':' | '**'))
19953 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019954 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019955 return NULL;
19956 }
19957 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19958 Token * _literal;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019959 void *_tmp_161_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019960 if (
19961 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
19962 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000019963 (_tmp_161_var = _tmp_161_rule(p)) // ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019964 )
19965 {
19966 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19967 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
19968 if (_res == NULL && PyErr_Occurred()) {
19969 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019970 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019971 return NULL;
19972 }
19973 goto done;
19974 }
19975 p->mark = _mark;
19976 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19977 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19978 }
19979 _res = NULL;
19980 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019981 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019982 return _res;
19983}
19984
19985// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
19986static void *
19987invalid_double_type_comments_rule(Parser *p)
19988{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019989 if (p->level++ == MAXSTACK) {
19990 p->error_indicator = 1;
19991 PyErr_NoMemory();
19992 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019993 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000019994 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019995 return NULL;
19996 }
19997 void * _res = NULL;
19998 int _mark = p->mark;
19999 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
20000 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020001 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020002 return NULL;
20003 }
20004 D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
20005 Token * indent_var;
20006 Token * newline_var;
20007 Token * newline_var_1;
20008 Token * type_comment_var;
20009 Token * type_comment_var_1;
20010 if (
20011 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
20012 &&
20013 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20014 &&
20015 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
20016 &&
20017 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20018 &&
20019 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
20020 )
20021 {
20022 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"));
20023 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
20024 if (_res == NULL && PyErr_Occurred()) {
20025 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020026 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020027 return NULL;
20028 }
20029 goto done;
20030 }
20031 p->mark = _mark;
20032 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
20033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
20034 }
20035 _res = NULL;
20036 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020037 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020038 return _res;
20039}
20040
Pablo Galindo58fb1562021-02-02 19:54:22 +000020041// invalid_with_item: expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020042static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020043invalid_with_item_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020044{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020045 if (p->level++ == MAXSTACK) {
20046 p->error_indicator = 1;
20047 PyErr_NoMemory();
20048 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020049 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020050 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020051 return NULL;
20052 }
20053 void * _res = NULL;
20054 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000020055 { // expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020056 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020057 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020058 return NULL;
20059 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000020060 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 +030020061 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020062 expr_ty a;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020063 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020064 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020065 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020066 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020067 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
20068 &&
20069 (a = expression_rule(p)) // expression
Pablo Galindo58fb1562021-02-02 19:54:22 +000020070 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000020071 _PyPegen_lookahead(1, _tmp_162_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020072 )
20073 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000020074 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 +030020075 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020076 if (_res == NULL && PyErr_Occurred()) {
20077 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020078 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020079 return NULL;
20080 }
20081 goto done;
20082 }
20083 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020084 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000020085 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020086 }
20087 _res = NULL;
20088 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020089 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020090 return _res;
20091}
20092
20093// invalid_for_target: ASYNC? 'for' star_expressions
20094static void *
20095invalid_for_target_rule(Parser *p)
20096{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020097 if (p->level++ == MAXSTACK) {
20098 p->error_indicator = 1;
20099 PyErr_NoMemory();
20100 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020101 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020102 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020103 return NULL;
20104 }
20105 void * _res = NULL;
20106 int _mark = p->mark;
20107 { // ASYNC? 'for' star_expressions
20108 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020109 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020110 return NULL;
20111 }
20112 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
20113 Token * _keyword;
20114 void *_opt_var;
20115 UNUSED(_opt_var); // Silence compiler warnings
20116 expr_ty a;
20117 if (
Łukasz Langa5c9cab52021-10-19 22:31:18 +020020118 (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020119 &&
20120 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
20121 &&
20122 (a = star_expressions_rule(p)) // star_expressions
20123 )
20124 {
20125 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 +030020126 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020127 if (_res == NULL && PyErr_Occurred()) {
20128 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020129 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020130 return NULL;
20131 }
20132 goto done;
20133 }
20134 p->mark = _mark;
20135 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
20136 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
20137 }
20138 _res = NULL;
20139 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020140 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020141 return _res;
20142}
20143
Pablo Galindo8efad612021-03-24 19:34:17 +000020144// invalid_group: '(' starred_expression ')' | '(' '**' expression ')'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020145static void *
20146invalid_group_rule(Parser *p)
20147{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020148 if (p->level++ == MAXSTACK) {
20149 p->error_indicator = 1;
20150 PyErr_NoMemory();
20151 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020152 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020153 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020154 return NULL;
20155 }
20156 void * _res = NULL;
20157 int _mark = p->mark;
20158 { // '(' starred_expression ')'
20159 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020160 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020161 return NULL;
20162 }
20163 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
20164 Token * _literal;
20165 Token * _literal_1;
20166 expr_ty a;
20167 if (
20168 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20169 &&
20170 (a = starred_expression_rule(p)) // starred_expression
20171 &&
20172 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
20173 )
20174 {
20175 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 +010020176 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use starred expression here" );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020177 if (_res == NULL && PyErr_Occurred()) {
20178 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020179 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020180 return NULL;
20181 }
20182 goto done;
20183 }
20184 p->mark = _mark;
20185 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
20186 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020187 }
Pablo Galindo8efad612021-03-24 19:34:17 +000020188 { // '(' '**' expression ')'
20189 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020190 p->level--;
Pablo Galindo8efad612021-03-24 19:34:17 +000020191 return NULL;
20192 }
20193 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
20194 Token * _literal;
20195 Token * _literal_1;
20196 Token * a;
20197 expr_ty expression_var;
20198 if (
20199 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20200 &&
20201 (a = _PyPegen_expect_token(p, 35)) // token='**'
20202 &&
20203 (expression_var = expression_rule(p)) // expression
20204 &&
20205 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
20206 )
20207 {
20208 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020209 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use double starred expression here" );
Pablo Galindo8efad612021-03-24 19:34:17 +000020210 if (_res == NULL && PyErr_Occurred()) {
20211 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020212 p->level--;
Pablo Galindo8efad612021-03-24 19:34:17 +000020213 return NULL;
20214 }
20215 goto done;
20216 }
20217 p->mark = _mark;
20218 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
20219 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' '**' expression ')'"));
20220 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020221 _res = NULL;
20222 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020223 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020224 return _res;
20225}
20226
Miss Islington (bot)846a10f2021-08-18 13:32:01 -070020227// invalid_import_from_targets: import_from_as_names ',' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020228static void *
20229invalid_import_from_targets_rule(Parser *p)
20230{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020231 if (p->level++ == MAXSTACK) {
20232 p->error_indicator = 1;
20233 PyErr_NoMemory();
20234 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020235 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020236 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020237 return NULL;
20238 }
20239 void * _res = NULL;
20240 int _mark = p->mark;
Miss Islington (bot)846a10f2021-08-18 13:32:01 -070020241 { // import_from_as_names ',' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020242 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020243 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020244 return NULL;
20245 }
Miss Islington (bot)846a10f2021-08-18 13:32:01 -070020246 D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ',' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020247 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010020248 asdl_alias_seq* import_from_as_names_var;
Miss Islington (bot)846a10f2021-08-18 13:32:01 -070020249 Token * newline_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020250 if (
20251 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
20252 &&
20253 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Miss Islington (bot)846a10f2021-08-18 13:32:01 -070020254 &&
20255 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020256 )
20257 {
Miss Islington (bot)846a10f2021-08-18 13:32:01 -070020258 D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ',' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020259 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
20260 if (_res == NULL && PyErr_Occurred()) {
20261 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020262 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020263 return NULL;
20264 }
20265 goto done;
20266 }
20267 p->mark = _mark;
20268 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)846a10f2021-08-18 13:32:01 -070020269 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ',' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020270 }
20271 _res = NULL;
20272 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020273 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020274 return _res;
20275}
20276
Pablo Galindo58fb1562021-02-02 19:54:22 +000020277// invalid_with_stmt:
20278// | ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
20279// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
20280static void *
20281invalid_with_stmt_rule(Parser *p)
20282{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020283 if (p->level++ == MAXSTACK) {
20284 p->error_indicator = 1;
20285 PyErr_NoMemory();
20286 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000020287 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020288 p->level--;
Pablo Galindo58fb1562021-02-02 19:54:22 +000020289 return NULL;
20290 }
20291 void * _res = NULL;
20292 int _mark = p->mark;
20293 { // ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
20294 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020295 p->level--;
Pablo Galindo58fb1562021-02-02 19:54:22 +000020296 return NULL;
20297 }
20298 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000020299 asdl_seq * _gather_163_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000020300 Token * _keyword;
20301 Token * _literal;
20302 void *_opt_var;
20303 UNUSED(_opt_var); // Silence compiler warnings
20304 if (
Łukasz Langa5c9cab52021-10-19 22:31:18 +020020305 (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
Pablo Galindo58fb1562021-02-02 19:54:22 +000020306 &&
20307 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
20308 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000020309 (_gather_163_var = _gather_163_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000020310 &&
20311 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
20312 )
20313 {
20314 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000020315 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_163_var, _literal);
Pablo Galindo58fb1562021-02-02 19:54:22 +000020316 goto done;
20317 }
20318 p->mark = _mark;
20319 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20320 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
20321 }
20322 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
20323 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020324 p->level--;
Pablo Galindo58fb1562021-02-02 19:54:22 +000020325 return NULL;
20326 }
20327 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000020328 asdl_seq * _gather_165_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000020329 Token * _keyword;
20330 Token * _literal;
20331 Token * _literal_1;
20332 Token * _literal_2;
20333 void *_opt_var;
20334 UNUSED(_opt_var); // Silence compiler warnings
20335 void *_opt_var_1;
20336 UNUSED(_opt_var_1); // Silence compiler warnings
20337 if (
Łukasz Langa5c9cab52021-10-19 22:31:18 +020020338 (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
Pablo Galindo58fb1562021-02-02 19:54:22 +000020339 &&
20340 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
20341 &&
20342 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20343 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000020344 (_gather_165_var = _gather_165_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000020345 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020020346 (_opt_var_1 = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo58fb1562021-02-02 19:54:22 +000020347 &&
20348 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
20349 &&
20350 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
20351 )
20352 {
20353 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000020354 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _literal, _gather_165_var, _opt_var_1, _literal_1, _literal_2);
Pablo Galindo58fb1562021-02-02 19:54:22 +000020355 goto done;
20356 }
20357 p->mark = _mark;
20358 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20359 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
20360 }
20361 _res = NULL;
20362 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020363 p->level--;
Pablo Galindo58fb1562021-02-02 19:54:22 +000020364 return _res;
20365}
20366
Pablo Galindo56c95df2021-04-21 15:28:21 +010020367// invalid_with_stmt_indent:
20368// | ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
20369// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
Pablo Galindo206cbda2021-02-07 18:42:21 +000020370static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010020371invalid_with_stmt_indent_rule(Parser *p)
20372{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020373 if (p->level++ == MAXSTACK) {
20374 p->error_indicator = 1;
20375 PyErr_NoMemory();
20376 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020377 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020378 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020379 return NULL;
20380 }
20381 void * _res = NULL;
20382 int _mark = p->mark;
20383 { // ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
20384 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020385 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020386 return NULL;
20387 }
20388 D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000020389 asdl_seq * _gather_167_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020390 Token * _literal;
20391 void *_opt_var;
20392 UNUSED(_opt_var); // Silence compiler warnings
20393 Token * a;
20394 Token * newline_var;
20395 if (
Łukasz Langa5c9cab52021-10-19 22:31:18 +020020396 (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
Pablo Galindo56c95df2021-04-21 15:28:21 +010020397 &&
20398 (a = _PyPegen_expect_token(p, 519)) // token='with'
20399 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000020400 (_gather_167_var = _gather_167_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo56c95df2021-04-21 15:28:21 +010020401 &&
20402 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20403 &&
20404 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20405 &&
20406 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20407 )
20408 {
20409 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"));
20410 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
20411 if (_res == NULL && PyErr_Occurred()) {
20412 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020413 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020414 return NULL;
20415 }
20416 goto done;
20417 }
20418 p->mark = _mark;
20419 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
20420 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT"));
20421 }
20422 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
20423 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020424 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020425 return NULL;
20426 }
20427 D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000020428 asdl_seq * _gather_169_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020429 Token * _literal;
20430 Token * _literal_1;
20431 Token * _literal_2;
20432 void *_opt_var;
20433 UNUSED(_opt_var); // Silence compiler warnings
20434 void *_opt_var_1;
20435 UNUSED(_opt_var_1); // Silence compiler warnings
20436 Token * a;
20437 Token * newline_var;
20438 if (
Łukasz Langa5c9cab52021-10-19 22:31:18 +020020439 (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
Pablo Galindo56c95df2021-04-21 15:28:21 +010020440 &&
20441 (a = _PyPegen_expect_token(p, 519)) // token='with'
20442 &&
20443 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20444 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000020445 (_gather_169_var = _gather_169_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo56c95df2021-04-21 15:28:21 +010020446 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020020447 (_opt_var_1 = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','?
Pablo Galindo56c95df2021-04-21 15:28:21 +010020448 &&
20449 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
20450 &&
20451 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
20452 &&
20453 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20454 &&
20455 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20456 )
20457 {
20458 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"));
20459 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
20460 if (_res == NULL && PyErr_Occurred()) {
20461 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020462 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020463 return NULL;
20464 }
20465 goto done;
20466 }
20467 p->mark = _mark;
20468 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
20469 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
20470 }
20471 _res = NULL;
20472 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020473 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020474 return _res;
20475}
20476
Pablo Galindoe53f72a2021-06-04 00:11:43 +010020477// invalid_try_stmt: 'try' ':' NEWLINE !INDENT | 'try' ':' block !('except' | 'finally')
Pablo Galindo56c95df2021-04-21 15:28:21 +010020478static void *
20479invalid_try_stmt_rule(Parser *p)
20480{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020481 if (p->level++ == MAXSTACK) {
20482 p->error_indicator = 1;
20483 PyErr_NoMemory();
20484 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020485 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020486 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020487 return NULL;
20488 }
20489 void * _res = NULL;
20490 int _mark = p->mark;
20491 { // 'try' ':' NEWLINE !INDENT
20492 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020493 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020494 return NULL;
20495 }
20496 D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
20497 Token * _literal;
20498 Token * a;
20499 Token * newline_var;
20500 if (
20501 (a = _PyPegen_expect_token(p, 511)) // token='try'
20502 &&
20503 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20504 &&
20505 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20506 &&
20507 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20508 )
20509 {
20510 D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
20511 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'try' statement on line %d" , a -> lineno );
20512 if (_res == NULL && PyErr_Occurred()) {
20513 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020514 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020515 return NULL;
20516 }
20517 goto done;
20518 }
20519 p->mark = _mark;
20520 D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20521 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
20522 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010020523 { // 'try' ':' block !('except' | 'finally')
20524 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020525 p->level--;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010020526 return NULL;
20527 }
20528 D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
20529 Token * _keyword;
20530 Token * _literal;
20531 asdl_stmt_seq* block_var;
20532 if (
20533 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
20534 &&
20535 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20536 &&
20537 (block_var = block_rule(p)) // block
20538 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000020539 _PyPegen_lookahead(0, _tmp_171_rule, p)
Pablo Galindoe53f72a2021-06-04 00:11:43 +010020540 )
20541 {
20542 D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
20543 _res = RAISE_SYNTAX_ERROR ( "expected 'except' or 'finally' block" );
20544 if (_res == NULL && PyErr_Occurred()) {
20545 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020546 p->level--;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010020547 return NULL;
20548 }
20549 goto done;
20550 }
20551 p->mark = _mark;
20552 D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20553 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
20554 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020555 _res = NULL;
20556 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020557 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020558 return _res;
20559}
20560
20561// invalid_except_stmt:
20562// | 'except' expression ',' expressions ['as' NAME] ':'
20563// | 'except' expression ['as' NAME] NEWLINE
20564// | 'except' NEWLINE
20565static void *
20566invalid_except_stmt_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000020567{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020568 if (p->level++ == MAXSTACK) {
20569 p->error_indicator = 1;
20570 PyErr_NoMemory();
20571 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000020572 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020573 p->level--;
Pablo Galindo206cbda2021-02-07 18:42:21 +000020574 return NULL;
20575 }
20576 void * _res = NULL;
20577 int _mark = p->mark;
20578 { // 'except' expression ',' expressions ['as' NAME] ':'
20579 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020580 p->level--;
Pablo Galindo206cbda2021-02-07 18:42:21 +000020581 return NULL;
20582 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020583 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 +000020584 Token * _keyword;
20585 Token * _literal;
20586 Token * _literal_1;
20587 void *_opt_var;
20588 UNUSED(_opt_var); // Silence compiler warnings
20589 expr_ty a;
20590 expr_ty expressions_var;
20591 if (
20592 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
20593 &&
20594 (a = expression_rule(p)) // expression
20595 &&
20596 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20597 &&
20598 (expressions_var = expressions_rule(p)) // expressions
20599 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000020600 (_opt_var = _tmp_172_rule(p), !p->error_indicator) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000020601 &&
20602 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
20603 )
20604 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010020605 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
Miss Islington (bot)9a0e65c2021-05-09 14:13:50 -070020606 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "multiple exception types must be parenthesized" );
Pablo Galindo206cbda2021-02-07 18:42:21 +000020607 if (_res == NULL && PyErr_Occurred()) {
20608 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020609 p->level--;
Pablo Galindo206cbda2021-02-07 18:42:21 +000020610 return NULL;
20611 }
20612 goto done;
20613 }
20614 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020615 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000020616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
20617 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020618 { // 'except' expression ['as' NAME] NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000020619 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020620 p->level--;
Pablo Galindo206cbda2021-02-07 18:42:21 +000020621 return NULL;
20622 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020623 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 +000020624 void *_opt_var;
20625 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindo56c95df2021-04-21 15:28:21 +010020626 Token * a;
Pablo Galindo206cbda2021-02-07 18:42:21 +000020627 expr_ty expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020628 Token * newline_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +000020629 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010020630 (a = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo206cbda2021-02-07 18:42:21 +000020631 &&
20632 (expression_var = expression_rule(p)) // expression
20633 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000020634 (_opt_var = _tmp_173_rule(p), !p->error_indicator) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000020635 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010020636 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo206cbda2021-02-07 18:42:21 +000020637 )
20638 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010020639 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
20640 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20641 if (_res == NULL && PyErr_Occurred()) {
20642 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020643 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020644 return NULL;
20645 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000020646 goto done;
20647 }
20648 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020649 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20650 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000020651 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020652 { // 'except' NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000020653 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020654 p->level--;
Pablo Galindo206cbda2021-02-07 18:42:21 +000020655 return NULL;
20656 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020657 D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
20658 Token * a;
20659 Token * newline_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +000020660 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010020661 (a = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo206cbda2021-02-07 18:42:21 +000020662 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010020663 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo206cbda2021-02-07 18:42:21 +000020664 )
20665 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010020666 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
20667 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20668 if (_res == NULL && PyErr_Occurred()) {
20669 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020670 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020671 return NULL;
20672 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000020673 goto done;
20674 }
20675 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020676 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000020678 }
20679 _res = NULL;
20680 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020681 p->level--;
Pablo Galindo206cbda2021-02-07 18:42:21 +000020682 return _res;
20683}
20684
Pablo Galindo56c95df2021-04-21 15:28:21 +010020685// invalid_finally_stmt: 'finally' ':' NEWLINE !INDENT
20686static void *
20687invalid_finally_stmt_rule(Parser *p)
20688{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020689 if (p->level++ == MAXSTACK) {
20690 p->error_indicator = 1;
20691 PyErr_NoMemory();
20692 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020693 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020694 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020695 return NULL;
20696 }
20697 void * _res = NULL;
20698 int _mark = p->mark;
20699 { // 'finally' ':' NEWLINE !INDENT
20700 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020701 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020702 return NULL;
20703 }
20704 D(fprintf(stderr, "%*c> invalid_finally_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
20705 Token * _literal;
20706 Token * a;
20707 Token * newline_var;
20708 if (
20709 (a = _PyPegen_expect_token(p, 522)) // token='finally'
20710 &&
20711 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20712 &&
20713 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20714 &&
20715 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20716 )
20717 {
20718 D(fprintf(stderr, "%*c+ invalid_finally_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
20719 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'finally' statement on line %d" , a -> lineno );
20720 if (_res == NULL && PyErr_Occurred()) {
20721 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020722 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020723 return NULL;
20724 }
20725 goto done;
20726 }
20727 p->mark = _mark;
20728 D(fprintf(stderr, "%*c%s invalid_finally_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
20730 }
20731 _res = NULL;
20732 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020733 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020734 return _res;
20735}
20736
20737// invalid_except_stmt_indent:
20738// | 'except' expression ['as' NAME] ':' NEWLINE !INDENT
20739// | 'except' ':' NEWLINE !INDENT
20740static void *
20741invalid_except_stmt_indent_rule(Parser *p)
20742{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020743 if (p->level++ == MAXSTACK) {
20744 p->error_indicator = 1;
20745 PyErr_NoMemory();
20746 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020747 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020748 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020749 return NULL;
20750 }
20751 void * _res = NULL;
20752 int _mark = p->mark;
20753 { // 'except' expression ['as' NAME] ':' NEWLINE !INDENT
20754 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020755 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020756 return NULL;
20757 }
20758 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20759 Token * _literal;
20760 void *_opt_var;
20761 UNUSED(_opt_var); // Silence compiler warnings
20762 Token * a;
20763 expr_ty expression_var;
20764 Token * newline_var;
20765 if (
20766 (a = _PyPegen_expect_token(p, 521)) // token='except'
20767 &&
20768 (expression_var = expression_rule(p)) // expression
20769 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000020770 (_opt_var = _tmp_174_rule(p), !p->error_indicator) // ['as' NAME]
Pablo Galindo56c95df2021-04-21 15:28:21 +010020771 &&
20772 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20773 &&
20774 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20775 &&
20776 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20777 )
20778 {
20779 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20780 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'except' statement on line %d" , a -> lineno );
20781 if (_res == NULL && PyErr_Occurred()) {
20782 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020783 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020784 return NULL;
20785 }
20786 goto done;
20787 }
20788 p->mark = _mark;
20789 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
20790 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20791 }
20792 { // 'except' ':' NEWLINE !INDENT
20793 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020794 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020795 return NULL;
20796 }
20797 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20798 Token * _literal;
20799 Token * a;
20800 Token * newline_var;
20801 if (
20802 (a = _PyPegen_expect_token(p, 521)) // token='except'
20803 &&
20804 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20805 &&
20806 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20807 &&
20808 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20809 )
20810 {
20811 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20812 _res = RAISE_SYNTAX_ERROR ( "expected an indented block after except statement on line %d" , a -> lineno );
20813 if (_res == NULL && PyErr_Occurred()) {
20814 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020815 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020816 return NULL;
20817 }
20818 goto done;
20819 }
20820 p->mark = _mark;
20821 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
20822 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20823 }
20824 _res = NULL;
20825 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020826 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020827 return _res;
20828}
20829
20830// invalid_match_stmt:
20831// | "match" subject_expr !':'
20832// | "match" subject_expr ':' NEWLINE !INDENT
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020833static void *
20834invalid_match_stmt_rule(Parser *p)
20835{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020836 if (p->level++ == MAXSTACK) {
20837 p->error_indicator = 1;
20838 PyErr_NoMemory();
20839 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020840 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020841 p->level--;
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020842 return NULL;
20843 }
20844 void * _res = NULL;
20845 int _mark = p->mark;
20846 { // "match" subject_expr !':'
20847 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020848 p->level--;
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020849 return NULL;
20850 }
20851 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
20852 expr_ty _keyword;
20853 expr_ty subject_expr_var;
20854 if (
20855 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
20856 &&
20857 (subject_expr_var = subject_expr_rule(p)) // subject_expr
20858 &&
20859 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
20860 )
20861 {
20862 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
20863 _res = CHECK_VERSION ( void * , 10 , "Pattern matching is" , RAISE_SYNTAX_ERROR ( "expected ':'" ) );
20864 if (_res == NULL && PyErr_Occurred()) {
20865 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020866 p->level--;
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020867 return NULL;
20868 }
20869 goto done;
20870 }
20871 p->mark = _mark;
20872 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr !':'"));
20874 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020875 { // "match" subject_expr ':' NEWLINE !INDENT
20876 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020877 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020878 return NULL;
20879 }
20880 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20881 Token * _literal;
20882 expr_ty a;
20883 Token * newline_var;
20884 expr_ty subject;
20885 if (
20886 (a = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
20887 &&
20888 (subject = subject_expr_rule(p)) // subject_expr
20889 &&
20890 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20891 &&
20892 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20893 &&
20894 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20895 )
20896 {
20897 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20898 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'match' statement on line %d" , a -> lineno );
20899 if (_res == NULL && PyErr_Occurred()) {
20900 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020901 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020902 return NULL;
20903 }
20904 goto done;
20905 }
20906 p->mark = _mark;
20907 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20908 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20909 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020910 _res = NULL;
20911 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020912 p->level--;
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020913 return _res;
20914}
20915
Pablo Galindo56c95df2021-04-21 15:28:21 +010020916// invalid_case_block:
20917// | "case" patterns guard? !':'
20918// | "case" patterns guard? ':' NEWLINE !INDENT
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020919static void *
20920invalid_case_block_rule(Parser *p)
20921{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020922 if (p->level++ == MAXSTACK) {
20923 p->error_indicator = 1;
20924 PyErr_NoMemory();
20925 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020926 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020927 p->level--;
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020928 return NULL;
20929 }
20930 void * _res = NULL;
20931 int _mark = p->mark;
20932 { // "case" patterns guard? !':'
20933 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020934 p->level--;
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020935 return NULL;
20936 }
20937 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
20938 expr_ty _keyword;
20939 void *_opt_var;
20940 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +100020941 pattern_ty patterns_var;
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020942 if (
20943 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
20944 &&
20945 (patterns_var = patterns_rule(p)) // patterns
20946 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020020947 (_opt_var = guard_rule(p), !p->error_indicator) // guard?
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020948 &&
20949 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
20950 )
20951 {
20952 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
20953 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20954 if (_res == NULL && PyErr_Occurred()) {
20955 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020956 p->level--;
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020957 return NULL;
20958 }
20959 goto done;
20960 }
20961 p->mark = _mark;
20962 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
20963 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? !':'"));
20964 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020965 { // "case" patterns guard? ':' NEWLINE !INDENT
20966 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020967 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020968 return NULL;
20969 }
20970 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20971 Token * _literal;
20972 void *_opt_var;
20973 UNUSED(_opt_var); // Silence compiler warnings
20974 expr_ty a;
20975 Token * newline_var;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100020976 pattern_ty patterns_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020977 if (
20978 (a = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
20979 &&
20980 (patterns_var = patterns_rule(p)) // patterns
20981 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020020982 (_opt_var = guard_rule(p), !p->error_indicator) // guard?
Pablo Galindo56c95df2021-04-21 15:28:21 +010020983 &&
20984 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20985 &&
20986 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20987 &&
20988 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20989 )
20990 {
20991 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20992 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'case' statement on line %d" , a -> lineno );
20993 if (_res == NULL && PyErr_Occurred()) {
20994 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000020995 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020996 return NULL;
20997 }
20998 goto done;
20999 }
21000 p->mark = _mark;
21001 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
21002 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
21003 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000021004 _res = NULL;
21005 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021006 p->level--;
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000021007 return _res;
21008}
21009
Pablo Galindoa8c418d2021-06-18 22:15:57 +010021010// invalid_as_pattern: or_pattern 'as' "_" | or_pattern 'as' !NAME expression
21011static void *
21012invalid_as_pattern_rule(Parser *p)
21013{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021014 if (p->level++ == MAXSTACK) {
21015 p->error_indicator = 1;
21016 PyErr_NoMemory();
21017 }
Pablo Galindoa8c418d2021-06-18 22:15:57 +010021018 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021019 p->level--;
Pablo Galindoa8c418d2021-06-18 22:15:57 +010021020 return NULL;
21021 }
21022 void * _res = NULL;
21023 int _mark = p->mark;
21024 { // or_pattern 'as' "_"
21025 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021026 p->level--;
Pablo Galindoa8c418d2021-06-18 22:15:57 +010021027 return NULL;
21028 }
21029 D(fprintf(stderr, "%*c> invalid_as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' \"_\""));
21030 Token * _keyword;
21031 expr_ty a;
21032 pattern_ty or_pattern_var;
21033 if (
21034 (or_pattern_var = or_pattern_rule(p)) // or_pattern
21035 &&
21036 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
21037 &&
21038 (a = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"'
21039 )
21040 {
21041 D(fprintf(stderr, "%*c+ invalid_as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' \"_\""));
21042 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use '_' as a target" );
21043 if (_res == NULL && PyErr_Occurred()) {
21044 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021045 p->level--;
Pablo Galindoa8c418d2021-06-18 22:15:57 +010021046 return NULL;
21047 }
21048 goto done;
21049 }
21050 p->mark = _mark;
21051 D(fprintf(stderr, "%*c%s invalid_as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
21052 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' \"_\""));
21053 }
21054 { // or_pattern 'as' !NAME expression
21055 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021056 p->level--;
Pablo Galindoa8c418d2021-06-18 22:15:57 +010021057 return NULL;
21058 }
21059 D(fprintf(stderr, "%*c> invalid_as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' !NAME expression"));
21060 Token * _keyword;
21061 expr_ty a;
21062 pattern_ty or_pattern_var;
21063 if (
21064 (or_pattern_var = or_pattern_rule(p)) // or_pattern
21065 &&
21066 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
21067 &&
21068 _PyPegen_lookahead_with_name(0, _PyPegen_name_token, p)
21069 &&
21070 (a = expression_rule(p)) // expression
21071 )
21072 {
21073 D(fprintf(stderr, "%*c+ invalid_as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' !NAME expression"));
21074 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid pattern target" );
21075 if (_res == NULL && PyErr_Occurred()) {
21076 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021077 p->level--;
Pablo Galindoa8c418d2021-06-18 22:15:57 +010021078 return NULL;
21079 }
21080 goto done;
21081 }
21082 p->mark = _mark;
21083 D(fprintf(stderr, "%*c%s invalid_as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
21084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' !NAME expression"));
21085 }
21086 _res = NULL;
21087 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021088 p->level--;
Pablo Galindoa8c418d2021-06-18 22:15:57 +010021089 return _res;
21090}
21091
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070021092// invalid_class_pattern: name_or_attr '(' invalid_class_argument_pattern
21093static void *
21094invalid_class_pattern_rule(Parser *p)
21095{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021096 if (p->level++ == MAXSTACK) {
21097 p->error_indicator = 1;
21098 PyErr_NoMemory();
21099 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070021100 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021101 p->level--;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070021102 return NULL;
21103 }
21104 void * _res = NULL;
21105 int _mark = p->mark;
21106 { // name_or_attr '(' invalid_class_argument_pattern
21107 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021108 p->level--;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070021109 return NULL;
21110 }
21111 D(fprintf(stderr, "%*c> invalid_class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' invalid_class_argument_pattern"));
21112 Token * _literal;
21113 asdl_pattern_seq* a;
21114 expr_ty name_or_attr_var;
21115 if (
21116 (name_or_attr_var = name_or_attr_rule(p)) // name_or_attr
21117 &&
21118 (_literal = _PyPegen_expect_token(p, 7)) // token='('
21119 &&
21120 (a = invalid_class_argument_pattern_rule(p)) // invalid_class_argument_pattern
21121 )
21122 {
21123 D(fprintf(stderr, "%*c+ invalid_class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' invalid_class_argument_pattern"));
21124 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( PyPegen_first_item ( a , pattern_ty ) , PyPegen_last_item ( a , pattern_ty ) , "positional patterns follow keyword patterns" );
21125 if (_res == NULL && PyErr_Occurred()) {
21126 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021127 p->level--;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070021128 return NULL;
21129 }
21130 goto done;
21131 }
21132 p->mark = _mark;
21133 D(fprintf(stderr, "%*c%s invalid_class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
21134 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' invalid_class_argument_pattern"));
21135 }
21136 _res = NULL;
21137 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021138 p->level--;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070021139 return _res;
21140}
21141
21142// invalid_class_argument_pattern:
21143// | [positional_patterns ','] keyword_patterns ',' positional_patterns
21144static asdl_pattern_seq*
21145invalid_class_argument_pattern_rule(Parser *p)
21146{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021147 if (p->level++ == MAXSTACK) {
21148 p->error_indicator = 1;
21149 PyErr_NoMemory();
21150 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070021151 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021152 p->level--;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070021153 return NULL;
21154 }
21155 asdl_pattern_seq* _res = NULL;
21156 int _mark = p->mark;
21157 { // [positional_patterns ','] keyword_patterns ',' positional_patterns
21158 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021159 p->level--;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070021160 return NULL;
21161 }
21162 D(fprintf(stderr, "%*c> invalid_class_argument_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "[positional_patterns ','] keyword_patterns ',' positional_patterns"));
21163 Token * _literal;
21164 void *_opt_var;
21165 UNUSED(_opt_var); // Silence compiler warnings
21166 asdl_pattern_seq* a;
21167 asdl_seq* keyword_patterns_var;
21168 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000021169 (_opt_var = _tmp_175_rule(p), !p->error_indicator) // [positional_patterns ',']
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070021170 &&
21171 (keyword_patterns_var = keyword_patterns_rule(p)) // keyword_patterns
21172 &&
21173 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21174 &&
21175 (a = positional_patterns_rule(p)) // positional_patterns
21176 )
21177 {
21178 D(fprintf(stderr, "%*c+ invalid_class_argument_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "[positional_patterns ','] keyword_patterns ',' positional_patterns"));
21179 _res = a;
21180 if (_res == NULL && PyErr_Occurred()) {
21181 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021182 p->level--;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070021183 return NULL;
21184 }
21185 goto done;
21186 }
21187 p->mark = _mark;
21188 D(fprintf(stderr, "%*c%s invalid_class_argument_pattern[%d-%d]: %s failed!\n", p->level, ' ',
21189 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "[positional_patterns ','] keyword_patterns ',' positional_patterns"));
21190 }
21191 _res = NULL;
21192 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021193 p->level--;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070021194 return _res;
21195}
21196
Pablo Galindo56c95df2021-04-21 15:28:21 +010021197// invalid_if_stmt:
21198// | 'if' named_expression NEWLINE
21199// | 'if' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010021200static void *
21201invalid_if_stmt_rule(Parser *p)
21202{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021203 if (p->level++ == MAXSTACK) {
21204 p->error_indicator = 1;
21205 PyErr_NoMemory();
21206 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010021207 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021208 p->level--;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010021209 return NULL;
21210 }
21211 void * _res = NULL;
21212 int _mark = p->mark;
21213 { // 'if' named_expression NEWLINE
21214 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021215 p->level--;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010021216 return NULL;
21217 }
21218 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
21219 Token * _keyword;
21220 expr_ty named_expression_var;
21221 Token * newline_var;
21222 if (
21223 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
21224 &&
21225 (named_expression_var = named_expression_rule(p)) // named_expression
21226 &&
21227 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21228 )
21229 {
21230 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
21231 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
21232 if (_res == NULL && PyErr_Occurred()) {
21233 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021234 p->level--;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010021235 return NULL;
21236 }
21237 goto done;
21238 }
21239 p->mark = _mark;
21240 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
21241 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression NEWLINE"));
21242 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010021243 { // 'if' named_expression ':' NEWLINE !INDENT
21244 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021245 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010021246 return NULL;
21247 }
21248 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
21249 Token * _literal;
21250 Token * a;
21251 expr_ty a_1;
21252 Token * newline_var;
21253 if (
21254 (a = _PyPegen_expect_token(p, 510)) // token='if'
21255 &&
21256 (a_1 = named_expression_rule(p)) // named_expression
21257 &&
21258 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21259 &&
21260 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21261 &&
21262 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
21263 )
21264 {
21265 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
21266 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'if' statement on line %d" , a -> lineno );
21267 if (_res == NULL && PyErr_Occurred()) {
21268 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021269 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010021270 return NULL;
21271 }
21272 goto done;
21273 }
21274 p->mark = _mark;
21275 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
21276 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
21277 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010021278 _res = NULL;
21279 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021280 p->level--;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010021281 return _res;
21282}
21283
Pablo Galindo56c95df2021-04-21 15:28:21 +010021284// invalid_elif_stmt:
21285// | 'elif' named_expression NEWLINE
21286// | 'elif' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010021287static void *
21288invalid_elif_stmt_rule(Parser *p)
21289{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021290 if (p->level++ == MAXSTACK) {
21291 p->error_indicator = 1;
21292 PyErr_NoMemory();
21293 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010021294 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021295 p->level--;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010021296 return NULL;
21297 }
21298 void * _res = NULL;
21299 int _mark = p->mark;
21300 { // 'elif' named_expression NEWLINE
21301 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021302 p->level--;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010021303 return NULL;
21304 }
21305 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
21306 Token * _keyword;
21307 expr_ty named_expression_var;
21308 Token * newline_var;
21309 if (
21310 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
21311 &&
21312 (named_expression_var = named_expression_rule(p)) // named_expression
21313 &&
21314 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21315 )
21316 {
21317 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
21318 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
21319 if (_res == NULL && PyErr_Occurred()) {
21320 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021321 p->level--;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010021322 return NULL;
21323 }
21324 goto done;
21325 }
21326 p->mark = _mark;
21327 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
21328 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression NEWLINE"));
21329 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010021330 { // 'elif' named_expression ':' NEWLINE !INDENT
21331 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021332 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010021333 return NULL;
21334 }
21335 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
21336 Token * _literal;
21337 Token * a;
21338 expr_ty named_expression_var;
21339 Token * newline_var;
21340 if (
21341 (a = _PyPegen_expect_token(p, 515)) // token='elif'
21342 &&
21343 (named_expression_var = named_expression_rule(p)) // named_expression
21344 &&
21345 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21346 &&
21347 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21348 &&
21349 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
21350 )
21351 {
21352 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
21353 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'elif' statement on line %d" , a -> lineno );
21354 if (_res == NULL && PyErr_Occurred()) {
21355 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021356 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010021357 return NULL;
21358 }
21359 goto done;
21360 }
21361 p->mark = _mark;
21362 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
21363 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
21364 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010021365 _res = NULL;
21366 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021367 p->level--;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010021368 return _res;
21369}
21370
Pablo Galindo56c95df2021-04-21 15:28:21 +010021371// invalid_else_stmt: 'else' ':' NEWLINE !INDENT
21372static void *
21373invalid_else_stmt_rule(Parser *p)
21374{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021375 if (p->level++ == MAXSTACK) {
21376 p->error_indicator = 1;
21377 PyErr_NoMemory();
21378 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010021379 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021380 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010021381 return NULL;
21382 }
21383 void * _res = NULL;
21384 int _mark = p->mark;
21385 { // 'else' ':' NEWLINE !INDENT
21386 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021387 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010021388 return NULL;
21389 }
21390 D(fprintf(stderr, "%*c> invalid_else_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
21391 Token * _literal;
21392 Token * a;
21393 Token * newline_var;
21394 if (
21395 (a = _PyPegen_expect_token(p, 516)) // token='else'
21396 &&
21397 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21398 &&
21399 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21400 &&
21401 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
21402 )
21403 {
21404 D(fprintf(stderr, "%*c+ invalid_else_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
21405 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'else' statement on line %d" , a -> lineno );
21406 if (_res == NULL && PyErr_Occurred()) {
21407 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021408 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010021409 return NULL;
21410 }
21411 goto done;
21412 }
21413 p->mark = _mark;
21414 D(fprintf(stderr, "%*c%s invalid_else_stmt[%d-%d]: %s failed!\n", p->level, ' ',
21415 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
21416 }
21417 _res = NULL;
21418 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021419 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010021420 return _res;
21421}
21422
21423// invalid_while_stmt:
21424// | 'while' named_expression NEWLINE
21425// | 'while' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010021426static void *
21427invalid_while_stmt_rule(Parser *p)
21428{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021429 if (p->level++ == MAXSTACK) {
21430 p->error_indicator = 1;
21431 PyErr_NoMemory();
21432 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010021433 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021434 p->level--;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010021435 return NULL;
21436 }
21437 void * _res = NULL;
21438 int _mark = p->mark;
21439 { // 'while' named_expression NEWLINE
21440 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021441 p->level--;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010021442 return NULL;
21443 }
21444 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
21445 Token * _keyword;
21446 expr_ty named_expression_var;
21447 Token * newline_var;
21448 if (
21449 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
21450 &&
21451 (named_expression_var = named_expression_rule(p)) // named_expression
21452 &&
21453 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21454 )
21455 {
21456 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
21457 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
21458 if (_res == NULL && PyErr_Occurred()) {
21459 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021460 p->level--;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010021461 return NULL;
21462 }
21463 goto done;
21464 }
21465 p->mark = _mark;
21466 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
21467 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression NEWLINE"));
21468 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010021469 { // 'while' named_expression ':' NEWLINE !INDENT
21470 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021471 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010021472 return NULL;
21473 }
21474 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
21475 Token * _literal;
21476 Token * a;
21477 expr_ty named_expression_var;
21478 Token * newline_var;
21479 if (
21480 (a = _PyPegen_expect_token(p, 512)) // token='while'
21481 &&
21482 (named_expression_var = named_expression_rule(p)) // named_expression
21483 &&
21484 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21485 &&
21486 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21487 &&
21488 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
21489 )
21490 {
21491 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
21492 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'while' statement on line %d" , a -> lineno );
21493 if (_res == NULL && PyErr_Occurred()) {
21494 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021495 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010021496 return NULL;
21497 }
21498 goto done;
21499 }
21500 p->mark = _mark;
21501 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
21502 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
21503 }
21504 _res = NULL;
21505 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021506 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010021507 return _res;
21508}
21509
21510// invalid_for_stmt: ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
21511static void *
21512invalid_for_stmt_rule(Parser *p)
21513{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021514 if (p->level++ == MAXSTACK) {
21515 p->error_indicator = 1;
21516 PyErr_NoMemory();
21517 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010021518 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021519 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010021520 return NULL;
21521 }
21522 void * _res = NULL;
21523 int _mark = p->mark;
21524 { // ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
21525 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021526 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010021527 return NULL;
21528 }
21529 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"));
21530 Token * _keyword;
21531 Token * _literal;
21532 void *_opt_var;
21533 UNUSED(_opt_var); // Silence compiler warnings
21534 Token * a;
21535 Token * newline_var;
21536 expr_ty star_expressions_var;
21537 expr_ty star_targets_var;
21538 if (
Łukasz Langa5c9cab52021-10-19 22:31:18 +020021539 (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
Pablo Galindo56c95df2021-04-21 15:28:21 +010021540 &&
21541 (a = _PyPegen_expect_token(p, 517)) // token='for'
21542 &&
21543 (star_targets_var = star_targets_rule(p)) // star_targets
21544 &&
21545 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
21546 &&
21547 (star_expressions_var = star_expressions_rule(p)) // star_expressions
21548 &&
21549 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21550 &&
21551 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21552 &&
21553 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
21554 )
21555 {
21556 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"));
21557 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'for' statement on line %d" , a -> lineno );
21558 if (_res == NULL && PyErr_Occurred()) {
21559 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021560 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010021561 return NULL;
21562 }
21563 goto done;
21564 }
21565 p->mark = _mark;
21566 D(fprintf(stderr, "%*c%s invalid_for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
21567 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT"));
21568 }
21569 _res = NULL;
21570 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021571 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010021572 return _res;
21573}
21574
21575// invalid_def_raw:
21576// | ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
21577static void *
21578invalid_def_raw_rule(Parser *p)
21579{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021580 if (p->level++ == MAXSTACK) {
21581 p->error_indicator = 1;
21582 PyErr_NoMemory();
21583 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010021584 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021585 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010021586 return NULL;
21587 }
21588 void * _res = NULL;
21589 int _mark = p->mark;
21590 { // ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
21591 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021592 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010021593 return NULL;
21594 }
21595 D(fprintf(stderr, "%*c> invalid_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
21596 Token * _literal;
21597 Token * _literal_1;
21598 Token * _literal_2;
21599 void *_opt_var;
21600 UNUSED(_opt_var); // Silence compiler warnings
21601 void *_opt_var_1;
21602 UNUSED(_opt_var_1); // Silence compiler warnings
21603 void *_opt_var_2;
21604 UNUSED(_opt_var_2); // Silence compiler warnings
21605 Token * a;
21606 expr_ty name_var;
21607 Token * newline_var;
21608 if (
Łukasz Langa5c9cab52021-10-19 22:31:18 +020021609 (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator) // ASYNC?
Pablo Galindo56c95df2021-04-21 15:28:21 +010021610 &&
21611 (a = _PyPegen_expect_token(p, 526)) // token='def'
21612 &&
21613 (name_var = _PyPegen_name_token(p)) // NAME
21614 &&
21615 (_literal = _PyPegen_expect_token(p, 7)) // token='('
21616 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020021617 (_opt_var_1 = params_rule(p), !p->error_indicator) // params?
Pablo Galindo56c95df2021-04-21 15:28:21 +010021618 &&
21619 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
21620 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000021621 (_opt_var_2 = _tmp_176_rule(p), !p->error_indicator) // ['->' expression]
Pablo Galindo56c95df2021-04-21 15:28:21 +010021622 &&
21623 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
21624 &&
21625 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21626 &&
21627 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
21628 )
21629 {
21630 D(fprintf(stderr, "%*c+ invalid_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
21631 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after function definition on line %d" , a -> lineno );
21632 if (_res == NULL && PyErr_Occurred()) {
21633 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021634 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010021635 return NULL;
21636 }
21637 goto done;
21638 }
21639 p->mark = _mark;
21640 D(fprintf(stderr, "%*c%s invalid_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
21641 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
21642 }
21643 _res = NULL;
21644 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021645 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010021646 return _res;
21647}
21648
21649// invalid_class_def_raw: 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
21650static void *
21651invalid_class_def_raw_rule(Parser *p)
21652{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021653 if (p->level++ == MAXSTACK) {
21654 p->error_indicator = 1;
21655 PyErr_NoMemory();
21656 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010021657 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021658 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010021659 return NULL;
21660 }
21661 void * _res = NULL;
21662 int _mark = p->mark;
21663 { // 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
21664 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021665 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010021666 return NULL;
21667 }
21668 D(fprintf(stderr, "%*c> invalid_class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
21669 Token * _literal;
21670 void *_opt_var;
21671 UNUSED(_opt_var); // Silence compiler warnings
21672 Token * a;
21673 expr_ty name_var;
21674 Token * newline_var;
21675 if (
21676 (a = _PyPegen_expect_token(p, 527)) // token='class'
21677 &&
21678 (name_var = _PyPegen_name_token(p)) // NAME
21679 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000021680 (_opt_var = _tmp_177_rule(p), !p->error_indicator) // ['(' arguments? ')']
Pablo Galindo56c95df2021-04-21 15:28:21 +010021681 &&
21682 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21683 &&
21684 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21685 &&
21686 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
21687 )
21688 {
21689 D(fprintf(stderr, "%*c+ invalid_class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
21690 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after class definition on line %d" , a -> lineno );
21691 if (_res == NULL && PyErr_Occurred()) {
21692 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021693 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010021694 return NULL;
21695 }
21696 goto done;
21697 }
21698 p->mark = _mark;
21699 D(fprintf(stderr, "%*c%s invalid_class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
21700 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
21701 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010021702 _res = NULL;
21703 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021704 p->level--;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010021705 return _res;
21706}
21707
Pablo Galindoda743502021-04-15 14:06:39 +010021708// invalid_double_starred_kvpairs:
21709// | ','.double_starred_kvpair+ ',' invalid_kvpair
21710// | expression ':' '*' bitwise_or
21711// | expression ':' &('}' | ',')
21712static void *
21713invalid_double_starred_kvpairs_rule(Parser *p)
21714{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021715 if (p->level++ == MAXSTACK) {
21716 p->error_indicator = 1;
21717 PyErr_NoMemory();
21718 }
Pablo Galindoda743502021-04-15 14:06:39 +010021719 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021720 p->level--;
Pablo Galindoda743502021-04-15 14:06:39 +010021721 return NULL;
21722 }
21723 void * _res = NULL;
21724 int _mark = p->mark;
21725 { // ','.double_starred_kvpair+ ',' invalid_kvpair
21726 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021727 p->level--;
Pablo Galindoda743502021-04-15 14:06:39 +010021728 return NULL;
21729 }
21730 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000021731 asdl_seq * _gather_178_var;
Pablo Galindoda743502021-04-15 14:06:39 +010021732 Token * _literal;
21733 void *invalid_kvpair_var;
21734 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000021735 (_gather_178_var = _gather_178_rule(p)) // ','.double_starred_kvpair+
Pablo Galindoda743502021-04-15 14:06:39 +010021736 &&
21737 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21738 &&
21739 (invalid_kvpair_var = invalid_kvpair_rule(p)) // invalid_kvpair
21740 )
21741 {
21742 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000021743 _res = _PyPegen_dummy_name(p, _gather_178_var, _literal, invalid_kvpair_var);
Pablo Galindoda743502021-04-15 14:06:39 +010021744 goto done;
21745 }
21746 p->mark = _mark;
21747 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
21748 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
21749 }
21750 { // expression ':' '*' bitwise_or
21751 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021752 p->level--;
Pablo Galindoda743502021-04-15 14:06:39 +010021753 return NULL;
21754 }
21755 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
21756 Token * _literal;
21757 Token * a;
21758 expr_ty bitwise_or_var;
21759 expr_ty expression_var;
21760 if (
21761 (expression_var = expression_rule(p)) // expression
21762 &&
21763 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21764 &&
21765 (a = _PyPegen_expect_token(p, 16)) // token='*'
21766 &&
21767 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
21768 )
21769 {
21770 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010021771 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
Pablo Galindoda743502021-04-15 14:06:39 +010021772 if (_res == NULL && PyErr_Occurred()) {
21773 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021774 p->level--;
Pablo Galindoda743502021-04-15 14:06:39 +010021775 return NULL;
21776 }
21777 goto done;
21778 }
21779 p->mark = _mark;
21780 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
21781 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
21782 }
21783 { // expression ':' &('}' | ',')
21784 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021785 p->level--;
Pablo Galindoda743502021-04-15 14:06:39 +010021786 return NULL;
21787 }
21788 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
21789 Token * a;
21790 expr_ty expression_var;
21791 if (
21792 (expression_var = expression_rule(p)) // expression
21793 &&
21794 (a = _PyPegen_expect_token(p, 11)) // token=':'
21795 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000021796 _PyPegen_lookahead(1, _tmp_180_rule, p)
Pablo Galindoda743502021-04-15 14:06:39 +010021797 )
21798 {
21799 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
21800 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
21801 if (_res == NULL && PyErr_Occurred()) {
21802 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021803 p->level--;
Pablo Galindoda743502021-04-15 14:06:39 +010021804 return NULL;
21805 }
21806 goto done;
21807 }
21808 p->mark = _mark;
21809 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
21810 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' &('}' | ',')"));
21811 }
21812 _res = NULL;
21813 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021814 p->level--;
Pablo Galindoda743502021-04-15 14:06:39 +010021815 return _res;
21816}
21817
21818// invalid_kvpair: expression !(':') | expression ':' '*' bitwise_or | expression ':'
21819static void *
21820invalid_kvpair_rule(Parser *p)
21821{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021822 if (p->level++ == MAXSTACK) {
21823 p->error_indicator = 1;
21824 PyErr_NoMemory();
21825 }
Pablo Galindoda743502021-04-15 14:06:39 +010021826 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021827 p->level--;
Pablo Galindoda743502021-04-15 14:06:39 +010021828 return NULL;
21829 }
21830 void * _res = NULL;
21831 int _mark = p->mark;
21832 { // expression !(':')
21833 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021834 p->level--;
Pablo Galindoda743502021-04-15 14:06:39 +010021835 return NULL;
21836 }
21837 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
21838 expr_ty a;
21839 if (
21840 (a = expression_rule(p)) // expression
21841 &&
21842 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=(':')
21843 )
21844 {
21845 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010021846 _res = RAISE_ERROR_KNOWN_LOCATION ( p , PyExc_SyntaxError , a -> lineno , a -> end_col_offset - 1 , a -> end_lineno , - 1 , "':' expected after dictionary key" );
Pablo Galindoda743502021-04-15 14:06:39 +010021847 if (_res == NULL && PyErr_Occurred()) {
21848 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021849 p->level--;
Pablo Galindoda743502021-04-15 14:06:39 +010021850 return NULL;
21851 }
21852 goto done;
21853 }
21854 p->mark = _mark;
21855 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21856 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !(':')"));
21857 }
21858 { // expression ':' '*' bitwise_or
21859 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021860 p->level--;
Pablo Galindoda743502021-04-15 14:06:39 +010021861 return NULL;
21862 }
21863 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
21864 Token * _literal;
21865 Token * a;
21866 expr_ty bitwise_or_var;
21867 expr_ty expression_var;
21868 if (
21869 (expression_var = expression_rule(p)) // expression
21870 &&
21871 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21872 &&
21873 (a = _PyPegen_expect_token(p, 16)) // token='*'
21874 &&
21875 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
21876 )
21877 {
21878 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010021879 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
Pablo Galindoda743502021-04-15 14:06:39 +010021880 if (_res == NULL && PyErr_Occurred()) {
21881 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021882 p->level--;
Pablo Galindoda743502021-04-15 14:06:39 +010021883 return NULL;
21884 }
21885 goto done;
21886 }
21887 p->mark = _mark;
21888 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
21890 }
21891 { // expression ':'
21892 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021893 p->level--;
Pablo Galindoda743502021-04-15 14:06:39 +010021894 return NULL;
21895 }
21896 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':'"));
21897 Token * a;
21898 expr_ty expression_var;
21899 if (
21900 (expression_var = expression_rule(p)) // expression
21901 &&
21902 (a = _PyPegen_expect_token(p, 11)) // token=':'
21903 )
21904 {
21905 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':'"));
21906 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
21907 if (_res == NULL && PyErr_Occurred()) {
21908 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021909 p->level--;
Pablo Galindoda743502021-04-15 14:06:39 +010021910 return NULL;
21911 }
21912 goto done;
21913 }
21914 p->mark = _mark;
21915 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21916 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':'"));
21917 }
21918 _res = NULL;
21919 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021920 p->level--;
Pablo Galindoda743502021-04-15 14:06:39 +010021921 return _res;
21922}
21923
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021924// _loop0_1: NEWLINE
21925static asdl_seq *
21926_loop0_1_rule(Parser *p)
21927{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021928 if (p->level++ == MAXSTACK) {
21929 p->error_indicator = 1;
21930 PyErr_NoMemory();
21931 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021932 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021933 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021934 return NULL;
21935 }
21936 void *_res = NULL;
21937 int _mark = p->mark;
21938 int _start_mark = p->mark;
21939 void **_children = PyMem_Malloc(sizeof(void *));
21940 if (!_children) {
21941 p->error_indicator = 1;
21942 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021943 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021944 return NULL;
21945 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021946 Py_ssize_t _children_capacity = 1;
21947 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021948 { // NEWLINE
21949 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021950 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021951 return NULL;
21952 }
21953 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
21954 Token * newline_var;
21955 while (
21956 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21957 )
21958 {
21959 _res = newline_var;
21960 if (_n == _children_capacity) {
21961 _children_capacity *= 2;
21962 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21963 if (!_new_children) {
21964 p->error_indicator = 1;
21965 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021966 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021967 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021968 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021969 _children = _new_children;
21970 }
21971 _children[_n++] = _res;
21972 _mark = p->mark;
21973 }
21974 p->mark = _mark;
21975 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
21976 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
21977 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021978 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021979 if (!_seq) {
21980 PyMem_Free(_children);
21981 p->error_indicator = 1;
21982 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021983 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021984 return NULL;
21985 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021986 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021987 PyMem_Free(_children);
21988 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021989 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021990 return _seq;
21991}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021992
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021993// _loop0_2: NEWLINE
21994static asdl_seq *
21995_loop0_2_rule(Parser *p)
21996{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000021997 if (p->level++ == MAXSTACK) {
21998 p->error_indicator = 1;
21999 PyErr_NoMemory();
22000 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022001 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022002 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022003 return NULL;
22004 }
22005 void *_res = NULL;
22006 int _mark = p->mark;
22007 int _start_mark = p->mark;
22008 void **_children = PyMem_Malloc(sizeof(void *));
22009 if (!_children) {
22010 p->error_indicator = 1;
22011 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022012 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022013 return NULL;
22014 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022015 Py_ssize_t _children_capacity = 1;
22016 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022017 { // NEWLINE
22018 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022019 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022020 return NULL;
22021 }
22022 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
22023 Token * newline_var;
22024 while (
22025 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22026 )
22027 {
22028 _res = newline_var;
22029 if (_n == _children_capacity) {
22030 _children_capacity *= 2;
22031 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22032 if (!_new_children) {
22033 p->error_indicator = 1;
22034 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022035 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022036 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000022037 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022038 _children = _new_children;
22039 }
22040 _children[_n++] = _res;
22041 _mark = p->mark;
22042 }
22043 p->mark = _mark;
22044 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
22045 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
22046 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022047 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022048 if (!_seq) {
22049 PyMem_Free(_children);
22050 p->error_indicator = 1;
22051 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022052 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022053 return NULL;
22054 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022055 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022056 PyMem_Free(_children);
22057 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022058 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022059 return _seq;
22060}
22061
22062// _loop0_4: ',' expression
22063static asdl_seq *
22064_loop0_4_rule(Parser *p)
22065{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022066 if (p->level++ == MAXSTACK) {
22067 p->error_indicator = 1;
22068 PyErr_NoMemory();
22069 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022070 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022071 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022072 return NULL;
22073 }
22074 void *_res = NULL;
22075 int _mark = p->mark;
22076 int _start_mark = p->mark;
22077 void **_children = PyMem_Malloc(sizeof(void *));
22078 if (!_children) {
22079 p->error_indicator = 1;
22080 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022081 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022082 return NULL;
22083 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022084 Py_ssize_t _children_capacity = 1;
22085 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022086 { // ',' expression
22087 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022088 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022089 return NULL;
22090 }
22091 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
22092 Token * _literal;
22093 expr_ty elem;
22094 while (
22095 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22096 &&
22097 (elem = expression_rule(p)) // expression
22098 )
22099 {
22100 _res = elem;
22101 if (_res == NULL && PyErr_Occurred()) {
22102 p->error_indicator = 1;
22103 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022104 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022105 return NULL;
22106 }
22107 if (_n == _children_capacity) {
22108 _children_capacity *= 2;
22109 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22110 if (!_new_children) {
22111 p->error_indicator = 1;
22112 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022113 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022114 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000022115 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022116 _children = _new_children;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000022117 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022118 _children[_n++] = _res;
22119 _mark = p->mark;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000022120 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022121 p->mark = _mark;
22122 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
22123 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000022124 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022125 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022126 if (!_seq) {
22127 PyMem_Free(_children);
22128 p->error_indicator = 1;
22129 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022130 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022131 return NULL;
22132 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022133 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022134 PyMem_Free(_children);
22135 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022136 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022137 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022138}
22139
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022140// _gather_3: expression _loop0_4
22141static asdl_seq *
22142_gather_3_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022143{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022144 if (p->level++ == MAXSTACK) {
22145 p->error_indicator = 1;
22146 PyErr_NoMemory();
22147 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022148 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022149 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022150 return NULL;
22151 }
22152 asdl_seq * _res = NULL;
22153 int _mark = p->mark;
22154 { // expression _loop0_4
22155 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022156 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022157 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000022158 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022159 D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
22160 expr_ty elem;
22161 asdl_seq * seq;
22162 if (
22163 (elem = expression_rule(p)) // expression
22164 &&
22165 (seq = _loop0_4_rule(p)) // _loop0_4
22166 )
22167 {
22168 D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
22169 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22170 goto done;
22171 }
22172 p->mark = _mark;
22173 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
22174 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000022175 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022176 _res = NULL;
22177 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022178 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022179 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022180}
22181
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022182// _loop0_6: ',' expression
22183static asdl_seq *
22184_loop0_6_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022185{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022186 if (p->level++ == MAXSTACK) {
22187 p->error_indicator = 1;
22188 PyErr_NoMemory();
22189 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022190 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022191 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022192 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000022193 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022194 void *_res = NULL;
22195 int _mark = p->mark;
22196 int _start_mark = p->mark;
22197 void **_children = PyMem_Malloc(sizeof(void *));
22198 if (!_children) {
22199 p->error_indicator = 1;
22200 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022201 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022202 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000022203 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022204 Py_ssize_t _children_capacity = 1;
22205 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022206 { // ',' expression
22207 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022208 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022209 return NULL;
22210 }
22211 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
22212 Token * _literal;
22213 expr_ty elem;
22214 while (
22215 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22216 &&
22217 (elem = expression_rule(p)) // expression
22218 )
22219 {
22220 _res = elem;
22221 if (_res == NULL && PyErr_Occurred()) {
22222 p->error_indicator = 1;
22223 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022224 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022225 return NULL;
22226 }
22227 if (_n == _children_capacity) {
22228 _children_capacity *= 2;
22229 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22230 if (!_new_children) {
22231 p->error_indicator = 1;
22232 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022233 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022234 return NULL;
22235 }
22236 _children = _new_children;
22237 }
22238 _children[_n++] = _res;
22239 _mark = p->mark;
22240 }
22241 p->mark = _mark;
22242 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
22243 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
22244 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022245 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022246 if (!_seq) {
22247 PyMem_Free(_children);
22248 p->error_indicator = 1;
22249 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022250 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022251 return NULL;
22252 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022253 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022254 PyMem_Free(_children);
22255 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022256 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022257 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022258}
22259
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022260// _gather_5: expression _loop0_6
22261static asdl_seq *
22262_gather_5_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022263{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022264 if (p->level++ == MAXSTACK) {
22265 p->error_indicator = 1;
22266 PyErr_NoMemory();
22267 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022268 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022269 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022270 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000022271 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022272 asdl_seq * _res = NULL;
22273 int _mark = p->mark;
22274 { // expression _loop0_6
22275 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022276 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022277 return NULL;
22278 }
22279 D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
22280 expr_ty elem;
22281 asdl_seq * seq;
22282 if (
22283 (elem = expression_rule(p)) // expression
22284 &&
22285 (seq = _loop0_6_rule(p)) // _loop0_6
22286 )
22287 {
22288 D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
22289 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22290 goto done;
22291 }
22292 p->mark = _mark;
22293 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
22294 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
22295 }
22296 _res = NULL;
22297 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022298 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022299 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022300}
22301
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022302// _loop0_8: ',' expression
22303static asdl_seq *
22304_loop0_8_rule(Parser *p)
22305{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022306 if (p->level++ == MAXSTACK) {
22307 p->error_indicator = 1;
22308 PyErr_NoMemory();
22309 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022310 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022311 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022312 return NULL;
22313 }
22314 void *_res = NULL;
22315 int _mark = p->mark;
22316 int _start_mark = p->mark;
22317 void **_children = PyMem_Malloc(sizeof(void *));
22318 if (!_children) {
22319 p->error_indicator = 1;
22320 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022321 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022322 return NULL;
22323 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022324 Py_ssize_t _children_capacity = 1;
22325 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022326 { // ',' expression
22327 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022328 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022329 return NULL;
22330 }
22331 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
22332 Token * _literal;
22333 expr_ty elem;
22334 while (
22335 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22336 &&
22337 (elem = expression_rule(p)) // expression
22338 )
22339 {
22340 _res = elem;
22341 if (_res == NULL && PyErr_Occurred()) {
22342 p->error_indicator = 1;
22343 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022344 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022345 return NULL;
22346 }
22347 if (_n == _children_capacity) {
22348 _children_capacity *= 2;
22349 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22350 if (!_new_children) {
22351 p->error_indicator = 1;
22352 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022353 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022354 return NULL;
22355 }
22356 _children = _new_children;
22357 }
22358 _children[_n++] = _res;
22359 _mark = p->mark;
22360 }
22361 p->mark = _mark;
22362 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
22363 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
22364 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022365 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022366 if (!_seq) {
22367 PyMem_Free(_children);
22368 p->error_indicator = 1;
22369 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022370 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022371 return NULL;
22372 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022373 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022374 PyMem_Free(_children);
22375 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022376 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022377 return _seq;
22378}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022379
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022380// _gather_7: expression _loop0_8
22381static asdl_seq *
22382_gather_7_rule(Parser *p)
22383{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022384 if (p->level++ == MAXSTACK) {
22385 p->error_indicator = 1;
22386 PyErr_NoMemory();
22387 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022388 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022389 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022390 return NULL;
22391 }
22392 asdl_seq * _res = NULL;
22393 int _mark = p->mark;
22394 { // expression _loop0_8
22395 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022396 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022397 return NULL;
22398 }
22399 D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
22400 expr_ty elem;
22401 asdl_seq * seq;
22402 if (
22403 (elem = expression_rule(p)) // expression
22404 &&
22405 (seq = _loop0_8_rule(p)) // _loop0_8
22406 )
22407 {
22408 D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
22409 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22410 goto done;
22411 }
22412 p->mark = _mark;
22413 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
22414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
22415 }
22416 _res = NULL;
22417 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022418 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022419 return _res;
22420}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022421
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022422// _loop0_10: ',' expression
22423static asdl_seq *
22424_loop0_10_rule(Parser *p)
22425{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022426 if (p->level++ == MAXSTACK) {
22427 p->error_indicator = 1;
22428 PyErr_NoMemory();
22429 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022430 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022431 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022432 return NULL;
22433 }
22434 void *_res = NULL;
22435 int _mark = p->mark;
22436 int _start_mark = p->mark;
22437 void **_children = PyMem_Malloc(sizeof(void *));
22438 if (!_children) {
22439 p->error_indicator = 1;
22440 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022441 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022442 return NULL;
22443 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022444 Py_ssize_t _children_capacity = 1;
22445 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022446 { // ',' expression
22447 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022448 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022449 return NULL;
22450 }
22451 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
22452 Token * _literal;
22453 expr_ty elem;
22454 while (
22455 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22456 &&
22457 (elem = expression_rule(p)) // expression
22458 )
22459 {
22460 _res = elem;
22461 if (_res == NULL && PyErr_Occurred()) {
22462 p->error_indicator = 1;
22463 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022464 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022465 return NULL;
22466 }
22467 if (_n == _children_capacity) {
22468 _children_capacity *= 2;
22469 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22470 if (!_new_children) {
22471 p->error_indicator = 1;
22472 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022473 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022474 return NULL;
22475 }
22476 _children = _new_children;
22477 }
22478 _children[_n++] = _res;
22479 _mark = p->mark;
22480 }
22481 p->mark = _mark;
22482 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
22483 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
22484 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022485 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022486 if (!_seq) {
22487 PyMem_Free(_children);
22488 p->error_indicator = 1;
22489 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022490 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022491 return NULL;
22492 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022493 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022494 PyMem_Free(_children);
22495 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022496 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022497 return _seq;
22498}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022499
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022500// _gather_9: expression _loop0_10
22501static asdl_seq *
22502_gather_9_rule(Parser *p)
22503{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022504 if (p->level++ == MAXSTACK) {
22505 p->error_indicator = 1;
22506 PyErr_NoMemory();
22507 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022508 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022509 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022510 return NULL;
22511 }
22512 asdl_seq * _res = NULL;
22513 int _mark = p->mark;
22514 { // expression _loop0_10
22515 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022516 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022517 return NULL;
22518 }
22519 D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
22520 expr_ty elem;
22521 asdl_seq * seq;
22522 if (
22523 (elem = expression_rule(p)) // expression
22524 &&
22525 (seq = _loop0_10_rule(p)) // _loop0_10
22526 )
22527 {
22528 D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
22529 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22530 goto done;
22531 }
22532 p->mark = _mark;
22533 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
22534 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
22535 }
22536 _res = NULL;
22537 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022538 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022539 return _res;
22540}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022541
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022542// _loop1_11: statement
22543static asdl_seq *
22544_loop1_11_rule(Parser *p)
22545{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022546 if (p->level++ == MAXSTACK) {
22547 p->error_indicator = 1;
22548 PyErr_NoMemory();
22549 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022550 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022551 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022552 return NULL;
22553 }
22554 void *_res = NULL;
22555 int _mark = p->mark;
22556 int _start_mark = p->mark;
22557 void **_children = PyMem_Malloc(sizeof(void *));
22558 if (!_children) {
22559 p->error_indicator = 1;
22560 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022561 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022562 return NULL;
22563 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022564 Py_ssize_t _children_capacity = 1;
22565 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022566 { // statement
22567 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022568 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022569 return NULL;
22570 }
22571 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010022572 asdl_stmt_seq* statement_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022573 while (
22574 (statement_var = statement_rule(p)) // statement
22575 )
22576 {
22577 _res = statement_var;
22578 if (_n == _children_capacity) {
22579 _children_capacity *= 2;
22580 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22581 if (!_new_children) {
22582 p->error_indicator = 1;
22583 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022584 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022585 return NULL;
22586 }
22587 _children = _new_children;
22588 }
22589 _children[_n++] = _res;
22590 _mark = p->mark;
22591 }
22592 p->mark = _mark;
22593 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
22594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
22595 }
22596 if (_n == 0 || p->error_indicator) {
22597 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022598 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022599 return NULL;
22600 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022601 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022602 if (!_seq) {
22603 PyMem_Free(_children);
22604 p->error_indicator = 1;
22605 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022606 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022607 return NULL;
22608 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022609 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022610 PyMem_Free(_children);
22611 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022612 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022613 return _seq;
22614}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022615
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000022616// _loop0_13: ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022617static asdl_seq *
22618_loop0_13_rule(Parser *p)
22619{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022620 if (p->level++ == MAXSTACK) {
22621 p->error_indicator = 1;
22622 PyErr_NoMemory();
22623 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022624 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022625 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022626 return NULL;
22627 }
22628 void *_res = NULL;
22629 int _mark = p->mark;
22630 int _start_mark = p->mark;
22631 void **_children = PyMem_Malloc(sizeof(void *));
22632 if (!_children) {
22633 p->error_indicator = 1;
22634 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022635 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022636 return NULL;
22637 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022638 Py_ssize_t _children_capacity = 1;
22639 Py_ssize_t _n = 0;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000022640 { // ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022641 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022642 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022643 return NULL;
22644 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000022645 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022646 Token * _literal;
22647 stmt_ty elem;
22648 while (
22649 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
22650 &&
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000022651 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022652 )
22653 {
22654 _res = elem;
22655 if (_res == NULL && PyErr_Occurred()) {
22656 p->error_indicator = 1;
22657 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022658 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022659 return NULL;
22660 }
22661 if (_n == _children_capacity) {
22662 _children_capacity *= 2;
22663 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22664 if (!_new_children) {
22665 p->error_indicator = 1;
22666 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022667 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022668 return NULL;
22669 }
22670 _children = _new_children;
22671 }
22672 _children[_n++] = _res;
22673 _mark = p->mark;
22674 }
22675 p->mark = _mark;
22676 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000022677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022678 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022679 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022680 if (!_seq) {
22681 PyMem_Free(_children);
22682 p->error_indicator = 1;
22683 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022684 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022685 return NULL;
22686 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022687 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022688 PyMem_Free(_children);
22689 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022690 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022691 return _seq;
22692}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022693
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000022694// _gather_12: simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022695static asdl_seq *
22696_gather_12_rule(Parser *p)
22697{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022698 if (p->level++ == MAXSTACK) {
22699 p->error_indicator = 1;
22700 PyErr_NoMemory();
22701 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022702 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022703 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022704 return NULL;
22705 }
22706 asdl_seq * _res = NULL;
22707 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000022708 { // simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022709 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022710 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022711 return NULL;
22712 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000022713 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 +010022714 stmt_ty elem;
22715 asdl_seq * seq;
22716 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000022717 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022718 &&
22719 (seq = _loop0_13_rule(p)) // _loop0_13
22720 )
22721 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000022722 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 +010022723 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22724 goto done;
22725 }
22726 p->mark = _mark;
22727 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000022728 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022729 }
22730 _res = NULL;
22731 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022732 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022733 return _res;
22734}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022735
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022736// _tmp_14: 'import' | 'from'
22737static void *
22738_tmp_14_rule(Parser *p)
22739{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022740 if (p->level++ == MAXSTACK) {
22741 p->error_indicator = 1;
22742 PyErr_NoMemory();
22743 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022744 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022745 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022746 return NULL;
22747 }
22748 void * _res = NULL;
22749 int _mark = p->mark;
22750 { // 'import'
22751 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022752 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022753 return NULL;
22754 }
22755 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
22756 Token * _keyword;
22757 if (
22758 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
22759 )
22760 {
22761 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
22762 _res = _keyword;
22763 goto done;
22764 }
22765 p->mark = _mark;
22766 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
22767 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
22768 }
22769 { // 'from'
22770 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022771 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022772 return NULL;
22773 }
22774 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
22775 Token * _keyword;
22776 if (
22777 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
22778 )
22779 {
22780 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
22781 _res = _keyword;
22782 goto done;
22783 }
22784 p->mark = _mark;
22785 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
22786 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
22787 }
22788 _res = NULL;
22789 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022790 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022791 return _res;
22792}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022793
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022794// _tmp_15: 'def' | '@' | ASYNC
22795static void *
22796_tmp_15_rule(Parser *p)
22797{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022798 if (p->level++ == MAXSTACK) {
22799 p->error_indicator = 1;
22800 PyErr_NoMemory();
22801 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022802 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022803 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022804 return NULL;
22805 }
22806 void * _res = NULL;
22807 int _mark = p->mark;
22808 { // 'def'
22809 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022810 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022811 return NULL;
22812 }
22813 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
22814 Token * _keyword;
22815 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080022816 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022817 )
22818 {
22819 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
22820 _res = _keyword;
22821 goto done;
22822 }
22823 p->mark = _mark;
22824 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
22825 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
22826 }
22827 { // '@'
22828 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022829 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022830 return NULL;
22831 }
22832 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
22833 Token * _literal;
22834 if (
22835 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
22836 )
22837 {
22838 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
22839 _res = _literal;
22840 goto done;
22841 }
22842 p->mark = _mark;
22843 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
22844 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
22845 }
22846 { // ASYNC
22847 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022848 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022849 return NULL;
22850 }
22851 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22852 Token * async_var;
22853 if (
22854 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
22855 )
22856 {
22857 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22858 _res = async_var;
22859 goto done;
22860 }
22861 p->mark = _mark;
22862 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
22863 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
22864 }
22865 _res = NULL;
22866 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022867 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022868 return _res;
22869}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022870
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022871// _tmp_16: 'class' | '@'
22872static void *
22873_tmp_16_rule(Parser *p)
22874{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022875 if (p->level++ == MAXSTACK) {
22876 p->error_indicator = 1;
22877 PyErr_NoMemory();
22878 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022879 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022880 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022881 return NULL;
22882 }
22883 void * _res = NULL;
22884 int _mark = p->mark;
22885 { // 'class'
22886 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022887 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022888 return NULL;
22889 }
22890 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
22891 Token * _keyword;
22892 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080022893 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022894 )
22895 {
22896 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
22897 _res = _keyword;
22898 goto done;
22899 }
22900 p->mark = _mark;
22901 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
22902 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
22903 }
22904 { // '@'
22905 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022906 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022907 return NULL;
22908 }
22909 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
22910 Token * _literal;
22911 if (
22912 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
22913 )
22914 {
22915 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
22916 _res = _literal;
22917 goto done;
22918 }
22919 p->mark = _mark;
22920 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
22921 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
22922 }
22923 _res = NULL;
22924 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022925 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022926 return _res;
22927}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022928
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022929// _tmp_17: 'with' | ASYNC
22930static void *
22931_tmp_17_rule(Parser *p)
22932{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022933 if (p->level++ == MAXSTACK) {
22934 p->error_indicator = 1;
22935 PyErr_NoMemory();
22936 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022937 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022938 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022939 return NULL;
22940 }
22941 void * _res = NULL;
22942 int _mark = p->mark;
22943 { // 'with'
22944 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022945 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022946 return NULL;
22947 }
22948 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
22949 Token * _keyword;
22950 if (
22951 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
22952 )
22953 {
22954 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
22955 _res = _keyword;
22956 goto done;
22957 }
22958 p->mark = _mark;
22959 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
22960 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
22961 }
22962 { // ASYNC
22963 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022964 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022965 return NULL;
22966 }
22967 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22968 Token * async_var;
22969 if (
22970 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
22971 )
22972 {
22973 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22974 _res = async_var;
22975 goto done;
22976 }
22977 p->mark = _mark;
22978 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
22979 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
22980 }
22981 _res = NULL;
22982 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022983 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022984 return _res;
22985}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022986
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022987// _tmp_18: 'for' | ASYNC
22988static void *
22989_tmp_18_rule(Parser *p)
22990{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022991 if (p->level++ == MAXSTACK) {
22992 p->error_indicator = 1;
22993 PyErr_NoMemory();
22994 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022995 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000022996 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022997 return NULL;
22998 }
22999 void * _res = NULL;
23000 int _mark = p->mark;
23001 { // 'for'
23002 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023003 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023004 return NULL;
23005 }
23006 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
23007 Token * _keyword;
23008 if (
23009 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
23010 )
23011 {
23012 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
23013 _res = _keyword;
23014 goto done;
23015 }
23016 p->mark = _mark;
23017 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
23018 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
23019 }
23020 { // ASYNC
23021 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023022 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023023 return NULL;
23024 }
23025 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
23026 Token * async_var;
23027 if (
23028 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
23029 )
23030 {
23031 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
23032 _res = async_var;
23033 goto done;
23034 }
23035 p->mark = _mark;
23036 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
23037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
23038 }
23039 _res = NULL;
23040 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023041 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023042 return _res;
23043}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000023044
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023045// _tmp_19: '=' annotated_rhs
23046static void *
23047_tmp_19_rule(Parser *p)
23048{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023049 if (p->level++ == MAXSTACK) {
23050 p->error_indicator = 1;
23051 PyErr_NoMemory();
23052 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023053 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023054 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023055 return NULL;
23056 }
23057 void * _res = NULL;
23058 int _mark = p->mark;
23059 { // '=' annotated_rhs
23060 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023061 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023062 return NULL;
23063 }
23064 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
23065 Token * _literal;
23066 expr_ty d;
23067 if (
23068 (_literal = _PyPegen_expect_token(p, 22)) // token='='
23069 &&
23070 (d = annotated_rhs_rule(p)) // annotated_rhs
23071 )
23072 {
23073 D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
23074 _res = d;
23075 if (_res == NULL && PyErr_Occurred()) {
23076 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023077 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023078 return NULL;
23079 }
23080 goto done;
23081 }
23082 p->mark = _mark;
23083 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
23084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
23085 }
23086 _res = NULL;
23087 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023088 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023089 return _res;
23090}
23091
23092// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
23093static void *
23094_tmp_20_rule(Parser *p)
23095{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023096 if (p->level++ == MAXSTACK) {
23097 p->error_indicator = 1;
23098 PyErr_NoMemory();
23099 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023100 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023101 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023102 return NULL;
23103 }
23104 void * _res = NULL;
23105 int _mark = p->mark;
23106 { // '(' single_target ')'
23107 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023108 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023109 return NULL;
23110 }
23111 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
23112 Token * _literal;
23113 Token * _literal_1;
23114 expr_ty b;
23115 if (
23116 (_literal = _PyPegen_expect_token(p, 7)) // token='('
23117 &&
23118 (b = single_target_rule(p)) // single_target
23119 &&
23120 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
23121 )
23122 {
23123 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
23124 _res = b;
23125 if (_res == NULL && PyErr_Occurred()) {
23126 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023127 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023128 return NULL;
23129 }
23130 goto done;
23131 }
23132 p->mark = _mark;
23133 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
23134 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
23135 }
23136 { // single_subscript_attribute_target
23137 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023138 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023139 return NULL;
23140 }
23141 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
23142 expr_ty single_subscript_attribute_target_var;
23143 if (
23144 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
23145 )
23146 {
23147 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
23148 _res = single_subscript_attribute_target_var;
23149 goto done;
23150 }
23151 p->mark = _mark;
23152 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
23153 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
23154 }
23155 _res = NULL;
23156 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023157 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023158 return _res;
23159}
23160
23161// _tmp_21: '=' annotated_rhs
23162static void *
23163_tmp_21_rule(Parser *p)
23164{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023165 if (p->level++ == MAXSTACK) {
23166 p->error_indicator = 1;
23167 PyErr_NoMemory();
23168 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023169 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023170 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023171 return NULL;
23172 }
23173 void * _res = NULL;
23174 int _mark = p->mark;
23175 { // '=' annotated_rhs
23176 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023177 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023178 return NULL;
23179 }
23180 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
23181 Token * _literal;
23182 expr_ty d;
23183 if (
23184 (_literal = _PyPegen_expect_token(p, 22)) // token='='
23185 &&
23186 (d = annotated_rhs_rule(p)) // annotated_rhs
23187 )
23188 {
23189 D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
23190 _res = d;
23191 if (_res == NULL && PyErr_Occurred()) {
23192 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023193 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023194 return NULL;
23195 }
23196 goto done;
23197 }
23198 p->mark = _mark;
23199 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
23200 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
23201 }
23202 _res = NULL;
23203 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023204 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023205 return _res;
23206}
23207
23208// _loop1_22: (star_targets '=')
23209static asdl_seq *
23210_loop1_22_rule(Parser *p)
23211{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023212 if (p->level++ == MAXSTACK) {
23213 p->error_indicator = 1;
23214 PyErr_NoMemory();
23215 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023216 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023217 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023218 return NULL;
23219 }
23220 void *_res = NULL;
23221 int _mark = p->mark;
23222 int _start_mark = p->mark;
23223 void **_children = PyMem_Malloc(sizeof(void *));
23224 if (!_children) {
23225 p->error_indicator = 1;
23226 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023227 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023228 return NULL;
23229 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023230 Py_ssize_t _children_capacity = 1;
23231 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023232 { // (star_targets '=')
23233 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023234 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023235 return NULL;
23236 }
23237 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000023238 void *_tmp_181_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023239 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000023240 (_tmp_181_var = _tmp_181_rule(p)) // star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023241 )
23242 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000023243 _res = _tmp_181_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023244 if (_n == _children_capacity) {
23245 _children_capacity *= 2;
23246 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23247 if (!_new_children) {
23248 p->error_indicator = 1;
23249 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023250 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023251 return NULL;
23252 }
23253 _children = _new_children;
23254 }
23255 _children[_n++] = _res;
23256 _mark = p->mark;
23257 }
23258 p->mark = _mark;
23259 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
23260 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
23261 }
23262 if (_n == 0 || p->error_indicator) {
23263 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023264 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023265 return NULL;
23266 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023267 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023268 if (!_seq) {
23269 PyMem_Free(_children);
23270 p->error_indicator = 1;
23271 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023272 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023273 return NULL;
23274 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023275 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023276 PyMem_Free(_children);
23277 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023278 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023279 return _seq;
23280}
23281
23282// _tmp_23: yield_expr | star_expressions
23283static void *
23284_tmp_23_rule(Parser *p)
23285{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023286 if (p->level++ == MAXSTACK) {
23287 p->error_indicator = 1;
23288 PyErr_NoMemory();
23289 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023290 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023291 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023292 return NULL;
23293 }
23294 void * _res = NULL;
23295 int _mark = p->mark;
23296 { // yield_expr
23297 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023298 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023299 return NULL;
23300 }
23301 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
23302 expr_ty yield_expr_var;
23303 if (
23304 (yield_expr_var = yield_expr_rule(p)) // yield_expr
23305 )
23306 {
23307 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
23308 _res = yield_expr_var;
23309 goto done;
23310 }
23311 p->mark = _mark;
23312 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
23313 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
23314 }
23315 { // star_expressions
23316 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023317 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023318 return NULL;
23319 }
23320 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
23321 expr_ty star_expressions_var;
23322 if (
23323 (star_expressions_var = star_expressions_rule(p)) // star_expressions
23324 )
23325 {
23326 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
23327 _res = star_expressions_var;
23328 goto done;
23329 }
23330 p->mark = _mark;
23331 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
23332 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
23333 }
23334 _res = NULL;
23335 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023336 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023337 return _res;
23338}
23339
23340// _tmp_24: yield_expr | star_expressions
23341static void *
23342_tmp_24_rule(Parser *p)
23343{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023344 if (p->level++ == MAXSTACK) {
23345 p->error_indicator = 1;
23346 PyErr_NoMemory();
23347 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023348 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023349 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023350 return NULL;
23351 }
23352 void * _res = NULL;
23353 int _mark = p->mark;
23354 { // yield_expr
23355 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023356 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023357 return NULL;
23358 }
23359 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
23360 expr_ty yield_expr_var;
23361 if (
23362 (yield_expr_var = yield_expr_rule(p)) // yield_expr
23363 )
23364 {
23365 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
23366 _res = yield_expr_var;
23367 goto done;
23368 }
23369 p->mark = _mark;
23370 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
23371 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
23372 }
23373 { // star_expressions
23374 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023375 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023376 return NULL;
23377 }
23378 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
23379 expr_ty star_expressions_var;
23380 if (
23381 (star_expressions_var = star_expressions_rule(p)) // star_expressions
23382 )
23383 {
23384 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
23385 _res = star_expressions_var;
23386 goto done;
23387 }
23388 p->mark = _mark;
23389 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
23390 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
23391 }
23392 _res = NULL;
23393 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023394 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023395 return _res;
23396}
23397
23398// _loop0_26: ',' NAME
23399static asdl_seq *
23400_loop0_26_rule(Parser *p)
23401{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023402 if (p->level++ == MAXSTACK) {
23403 p->error_indicator = 1;
23404 PyErr_NoMemory();
23405 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023406 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023407 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023408 return NULL;
23409 }
23410 void *_res = NULL;
23411 int _mark = p->mark;
23412 int _start_mark = p->mark;
23413 void **_children = PyMem_Malloc(sizeof(void *));
23414 if (!_children) {
23415 p->error_indicator = 1;
23416 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023417 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023418 return NULL;
23419 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023420 Py_ssize_t _children_capacity = 1;
23421 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023422 { // ',' NAME
23423 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023424 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023425 return NULL;
23426 }
23427 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
23428 Token * _literal;
23429 expr_ty elem;
23430 while (
23431 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23432 &&
23433 (elem = _PyPegen_name_token(p)) // NAME
23434 )
23435 {
23436 _res = elem;
23437 if (_res == NULL && PyErr_Occurred()) {
23438 p->error_indicator = 1;
23439 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023440 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023441 return NULL;
23442 }
23443 if (_n == _children_capacity) {
23444 _children_capacity *= 2;
23445 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23446 if (!_new_children) {
23447 p->error_indicator = 1;
23448 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023449 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023450 return NULL;
23451 }
23452 _children = _new_children;
23453 }
23454 _children[_n++] = _res;
23455 _mark = p->mark;
23456 }
23457 p->mark = _mark;
23458 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
23459 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
23460 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023461 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023462 if (!_seq) {
23463 PyMem_Free(_children);
23464 p->error_indicator = 1;
23465 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023466 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023467 return NULL;
23468 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023469 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023470 PyMem_Free(_children);
23471 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023472 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023473 return _seq;
23474}
23475
23476// _gather_25: NAME _loop0_26
23477static asdl_seq *
23478_gather_25_rule(Parser *p)
23479{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023480 if (p->level++ == MAXSTACK) {
23481 p->error_indicator = 1;
23482 PyErr_NoMemory();
23483 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023484 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023485 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023486 return NULL;
23487 }
23488 asdl_seq * _res = NULL;
23489 int _mark = p->mark;
23490 { // NAME _loop0_26
23491 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023492 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023493 return NULL;
23494 }
23495 D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
23496 expr_ty elem;
23497 asdl_seq * seq;
23498 if (
23499 (elem = _PyPegen_name_token(p)) // NAME
23500 &&
23501 (seq = _loop0_26_rule(p)) // _loop0_26
23502 )
23503 {
23504 D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
23505 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23506 goto done;
23507 }
23508 p->mark = _mark;
23509 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
23510 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
23511 }
23512 _res = NULL;
23513 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023514 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023515 return _res;
23516}
23517
23518// _loop0_28: ',' NAME
23519static asdl_seq *
23520_loop0_28_rule(Parser *p)
23521{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023522 if (p->level++ == MAXSTACK) {
23523 p->error_indicator = 1;
23524 PyErr_NoMemory();
23525 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023526 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023527 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023528 return NULL;
23529 }
23530 void *_res = NULL;
23531 int _mark = p->mark;
23532 int _start_mark = p->mark;
23533 void **_children = PyMem_Malloc(sizeof(void *));
23534 if (!_children) {
23535 p->error_indicator = 1;
23536 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023537 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023538 return NULL;
23539 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023540 Py_ssize_t _children_capacity = 1;
23541 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023542 { // ',' NAME
23543 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023544 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023545 return NULL;
23546 }
23547 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
23548 Token * _literal;
23549 expr_ty elem;
23550 while (
23551 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23552 &&
23553 (elem = _PyPegen_name_token(p)) // NAME
23554 )
23555 {
23556 _res = elem;
23557 if (_res == NULL && PyErr_Occurred()) {
23558 p->error_indicator = 1;
23559 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023560 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023561 return NULL;
23562 }
23563 if (_n == _children_capacity) {
23564 _children_capacity *= 2;
23565 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23566 if (!_new_children) {
23567 p->error_indicator = 1;
23568 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023569 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023570 return NULL;
23571 }
23572 _children = _new_children;
23573 }
23574 _children[_n++] = _res;
23575 _mark = p->mark;
23576 }
23577 p->mark = _mark;
23578 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
23579 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
23580 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023581 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023582 if (!_seq) {
23583 PyMem_Free(_children);
23584 p->error_indicator = 1;
23585 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023586 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023587 return NULL;
23588 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023589 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023590 PyMem_Free(_children);
23591 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023592 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023593 return _seq;
23594}
23595
23596// _gather_27: NAME _loop0_28
23597static asdl_seq *
23598_gather_27_rule(Parser *p)
23599{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023600 if (p->level++ == MAXSTACK) {
23601 p->error_indicator = 1;
23602 PyErr_NoMemory();
23603 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023604 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023605 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023606 return NULL;
23607 }
23608 asdl_seq * _res = NULL;
23609 int _mark = p->mark;
23610 { // NAME _loop0_28
23611 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023612 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023613 return NULL;
23614 }
23615 D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
23616 expr_ty elem;
23617 asdl_seq * seq;
23618 if (
23619 (elem = _PyPegen_name_token(p)) // NAME
23620 &&
23621 (seq = _loop0_28_rule(p)) // _loop0_28
23622 )
23623 {
23624 D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
23625 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23626 goto done;
23627 }
23628 p->mark = _mark;
23629 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
23630 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
23631 }
23632 _res = NULL;
23633 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023634 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023635 return _res;
23636}
23637
23638// _tmp_29: ',' expression
23639static void *
23640_tmp_29_rule(Parser *p)
23641{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023642 if (p->level++ == MAXSTACK) {
23643 p->error_indicator = 1;
23644 PyErr_NoMemory();
23645 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023646 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023647 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023648 return NULL;
23649 }
23650 void * _res = NULL;
23651 int _mark = p->mark;
23652 { // ',' expression
23653 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023654 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023655 return NULL;
23656 }
23657 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
23658 Token * _literal;
23659 expr_ty z;
23660 if (
23661 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23662 &&
23663 (z = expression_rule(p)) // expression
23664 )
23665 {
23666 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
23667 _res = z;
23668 if (_res == NULL && PyErr_Occurred()) {
23669 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023670 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023671 return NULL;
23672 }
23673 goto done;
23674 }
23675 p->mark = _mark;
23676 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
23677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
23678 }
23679 _res = NULL;
23680 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023681 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023682 return _res;
23683}
23684
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023685// _tmp_30: ';' | NEWLINE
23686static void *
23687_tmp_30_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023688{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023689 if (p->level++ == MAXSTACK) {
23690 p->error_indicator = 1;
23691 PyErr_NoMemory();
23692 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023693 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023694 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023695 return NULL;
23696 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023697 void * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023698 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023699 { // ';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023700 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023701 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023702 return NULL;
23703 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023704 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
23705 Token * _literal;
23706 if (
23707 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023708 )
23709 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023710 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
23711 _res = _literal;
23712 goto done;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023713 }
23714 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023715 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
23716 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023717 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023718 { // NEWLINE
23719 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023720 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023721 return NULL;
23722 }
23723 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
23724 Token * newline_var;
23725 if (
23726 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
23727 )
23728 {
23729 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
23730 _res = newline_var;
23731 goto done;
23732 }
23733 p->mark = _mark;
23734 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
23735 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023736 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023737 _res = NULL;
23738 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023739 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023740 return _res;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023741}
23742
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023743// _loop0_31: ('.' | '...')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023744static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023745_loop0_31_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023746{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023747 if (p->level++ == MAXSTACK) {
23748 p->error_indicator = 1;
23749 PyErr_NoMemory();
23750 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023751 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023752 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023753 return NULL;
23754 }
23755 void *_res = NULL;
23756 int _mark = p->mark;
23757 int _start_mark = p->mark;
23758 void **_children = PyMem_Malloc(sizeof(void *));
23759 if (!_children) {
23760 p->error_indicator = 1;
23761 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023762 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023763 return NULL;
23764 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023765 Py_ssize_t _children_capacity = 1;
23766 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023767 { // ('.' | '...')
23768 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023769 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023770 return NULL;
23771 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023772 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000023773 void *_tmp_182_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023774 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000023775 (_tmp_182_var = _tmp_182_rule(p)) // '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023776 )
23777 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000023778 _res = _tmp_182_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023779 if (_n == _children_capacity) {
23780 _children_capacity *= 2;
23781 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23782 if (!_new_children) {
23783 p->error_indicator = 1;
23784 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023785 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023786 return NULL;
23787 }
23788 _children = _new_children;
23789 }
23790 _children[_n++] = _res;
23791 _mark = p->mark;
23792 }
23793 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023794 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
23795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
23796 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023797 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023798 if (!_seq) {
23799 PyMem_Free(_children);
23800 p->error_indicator = 1;
23801 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023802 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023803 return NULL;
23804 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023805 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023806 PyMem_Free(_children);
23807 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023808 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023809 return _seq;
23810}
23811
23812// _loop1_32: ('.' | '...')
23813static asdl_seq *
23814_loop1_32_rule(Parser *p)
23815{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023816 if (p->level++ == MAXSTACK) {
23817 p->error_indicator = 1;
23818 PyErr_NoMemory();
23819 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023820 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023821 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023822 return NULL;
23823 }
23824 void *_res = NULL;
23825 int _mark = p->mark;
23826 int _start_mark = p->mark;
23827 void **_children = PyMem_Malloc(sizeof(void *));
23828 if (!_children) {
23829 p->error_indicator = 1;
23830 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023831 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023832 return NULL;
23833 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023834 Py_ssize_t _children_capacity = 1;
23835 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023836 { // ('.' | '...')
23837 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023838 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023839 return NULL;
23840 }
23841 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000023842 void *_tmp_183_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023843 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000023844 (_tmp_183_var = _tmp_183_rule(p)) // '.' | '...'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023845 )
23846 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000023847 _res = _tmp_183_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023848 if (_n == _children_capacity) {
23849 _children_capacity *= 2;
23850 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23851 if (!_new_children) {
23852 p->error_indicator = 1;
23853 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023854 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023855 return NULL;
23856 }
23857 _children = _new_children;
23858 }
23859 _children[_n++] = _res;
23860 _mark = p->mark;
23861 }
23862 p->mark = _mark;
23863 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023864 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
23865 }
23866 if (_n == 0 || p->error_indicator) {
23867 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023868 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023869 return NULL;
23870 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023871 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023872 if (!_seq) {
23873 PyMem_Free(_children);
23874 p->error_indicator = 1;
23875 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023876 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023877 return NULL;
23878 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023879 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023880 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023881 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023882 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023883 return _seq;
23884}
23885
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023886// _loop0_34: ',' import_from_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023887static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023888_loop0_34_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023889{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023890 if (p->level++ == MAXSTACK) {
23891 p->error_indicator = 1;
23892 PyErr_NoMemory();
23893 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023894 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023895 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023896 return NULL;
23897 }
23898 void *_res = NULL;
23899 int _mark = p->mark;
23900 int _start_mark = p->mark;
23901 void **_children = PyMem_Malloc(sizeof(void *));
23902 if (!_children) {
23903 p->error_indicator = 1;
23904 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023905 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023906 return NULL;
23907 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023908 Py_ssize_t _children_capacity = 1;
23909 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023910 { // ',' import_from_as_name
23911 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023912 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023913 return NULL;
23914 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023915 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 +010023916 Token * _literal;
23917 alias_ty elem;
23918 while (
23919 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23920 &&
23921 (elem = import_from_as_name_rule(p)) // import_from_as_name
23922 )
23923 {
23924 _res = elem;
23925 if (_res == NULL && PyErr_Occurred()) {
23926 p->error_indicator = 1;
23927 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023928 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023929 return NULL;
23930 }
23931 if (_n == _children_capacity) {
23932 _children_capacity *= 2;
23933 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23934 if (!_new_children) {
23935 p->error_indicator = 1;
23936 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023937 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023938 return NULL;
23939 }
23940 _children = _new_children;
23941 }
23942 _children[_n++] = _res;
23943 _mark = p->mark;
23944 }
23945 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023946 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023947 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
23948 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023949 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023950 if (!_seq) {
23951 PyMem_Free(_children);
23952 p->error_indicator = 1;
23953 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023954 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023955 return NULL;
23956 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023957 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023958 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023959 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023960 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023961 return _seq;
23962}
23963
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023964// _gather_33: import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023965static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023966_gather_33_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023967{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023968 if (p->level++ == MAXSTACK) {
23969 p->error_indicator = 1;
23970 PyErr_NoMemory();
23971 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023972 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023973 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023974 return NULL;
23975 }
23976 asdl_seq * _res = NULL;
23977 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023978 { // import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023979 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000023980 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023981 return NULL;
23982 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023983 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 +010023984 alias_ty elem;
23985 asdl_seq * seq;
23986 if (
23987 (elem = import_from_as_name_rule(p)) // import_from_as_name
23988 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023989 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023990 )
23991 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023992 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 +010023993 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23994 goto done;
23995 }
23996 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023997 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
23998 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023999 }
24000 _res = NULL;
24001 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024002 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024003 return _res;
24004}
24005
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024006// _tmp_35: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024007static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024008_tmp_35_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024009{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024010 if (p->level++ == MAXSTACK) {
24011 p->error_indicator = 1;
24012 PyErr_NoMemory();
24013 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024014 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024015 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024016 return NULL;
24017 }
24018 void * _res = NULL;
24019 int _mark = p->mark;
24020 { // 'as' NAME
24021 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024022 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024023 return NULL;
24024 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024025 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024026 Token * _keyword;
24027 expr_ty z;
24028 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024029 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024030 &&
24031 (z = _PyPegen_name_token(p)) // NAME
24032 )
24033 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024034 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 +010024035 _res = z;
24036 if (_res == NULL && PyErr_Occurred()) {
24037 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024038 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024039 return NULL;
24040 }
24041 goto done;
24042 }
24043 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024044 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024045 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
24046 }
24047 _res = NULL;
24048 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024049 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024050 return _res;
24051}
24052
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024053// _loop0_37: ',' dotted_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024054static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024055_loop0_37_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024056{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024057 if (p->level++ == MAXSTACK) {
24058 p->error_indicator = 1;
24059 PyErr_NoMemory();
24060 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024061 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024062 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024063 return NULL;
24064 }
24065 void *_res = NULL;
24066 int _mark = p->mark;
24067 int _start_mark = p->mark;
24068 void **_children = PyMem_Malloc(sizeof(void *));
24069 if (!_children) {
24070 p->error_indicator = 1;
24071 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024072 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024073 return NULL;
24074 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024075 Py_ssize_t _children_capacity = 1;
24076 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024077 { // ',' dotted_as_name
24078 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024079 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024080 return NULL;
24081 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024082 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 +010024083 Token * _literal;
24084 alias_ty elem;
24085 while (
24086 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24087 &&
24088 (elem = dotted_as_name_rule(p)) // dotted_as_name
24089 )
24090 {
24091 _res = elem;
24092 if (_res == NULL && PyErr_Occurred()) {
24093 p->error_indicator = 1;
24094 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024095 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024096 return NULL;
24097 }
24098 if (_n == _children_capacity) {
24099 _children_capacity *= 2;
24100 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24101 if (!_new_children) {
24102 p->error_indicator = 1;
24103 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024104 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024105 return NULL;
24106 }
24107 _children = _new_children;
24108 }
24109 _children[_n++] = _res;
24110 _mark = p->mark;
24111 }
24112 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024113 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024114 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
24115 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024116 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024117 if (!_seq) {
24118 PyMem_Free(_children);
24119 p->error_indicator = 1;
24120 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024121 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024122 return NULL;
24123 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024124 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024125 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024126 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024127 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024128 return _seq;
24129}
24130
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024131// _gather_36: dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024132static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024133_gather_36_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024134{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024135 if (p->level++ == MAXSTACK) {
24136 p->error_indicator = 1;
24137 PyErr_NoMemory();
24138 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024139 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024140 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024141 return NULL;
24142 }
24143 asdl_seq * _res = NULL;
24144 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024145 { // dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024146 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024147 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024148 return NULL;
24149 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024150 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 +010024151 alias_ty elem;
24152 asdl_seq * seq;
24153 if (
24154 (elem = dotted_as_name_rule(p)) // dotted_as_name
24155 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024156 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024157 )
24158 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024159 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 +010024160 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24161 goto done;
24162 }
24163 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024164 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
24165 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024166 }
24167 _res = NULL;
24168 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024169 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024170 return _res;
24171}
24172
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024173// _tmp_38: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024174static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024175_tmp_38_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024176{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024177 if (p->level++ == MAXSTACK) {
24178 p->error_indicator = 1;
24179 PyErr_NoMemory();
24180 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024181 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024182 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024183 return NULL;
24184 }
24185 void * _res = NULL;
24186 int _mark = p->mark;
24187 { // 'as' NAME
24188 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024189 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024190 return NULL;
24191 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024192 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024193 Token * _keyword;
24194 expr_ty z;
24195 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024196 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024197 &&
24198 (z = _PyPegen_name_token(p)) // NAME
24199 )
24200 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024201 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 +010024202 _res = z;
24203 if (_res == NULL && PyErr_Occurred()) {
24204 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024205 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024206 return NULL;
24207 }
24208 goto done;
24209 }
24210 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024211 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
24213 }
24214 _res = NULL;
24215 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024216 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024217 return _res;
24218}
24219
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024220// _loop0_40: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024221static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024222_loop0_40_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024223{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024224 if (p->level++ == MAXSTACK) {
24225 p->error_indicator = 1;
24226 PyErr_NoMemory();
24227 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024228 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024229 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024230 return NULL;
24231 }
24232 void *_res = NULL;
24233 int _mark = p->mark;
24234 int _start_mark = p->mark;
24235 void **_children = PyMem_Malloc(sizeof(void *));
24236 if (!_children) {
24237 p->error_indicator = 1;
24238 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024239 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024240 return NULL;
24241 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024242 Py_ssize_t _children_capacity = 1;
24243 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024244 { // ',' with_item
24245 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024246 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024247 return NULL;
24248 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024249 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024250 Token * _literal;
24251 withitem_ty elem;
24252 while (
24253 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24254 &&
24255 (elem = with_item_rule(p)) // with_item
24256 )
24257 {
24258 _res = elem;
24259 if (_res == NULL && PyErr_Occurred()) {
24260 p->error_indicator = 1;
24261 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024262 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024263 return NULL;
24264 }
24265 if (_n == _children_capacity) {
24266 _children_capacity *= 2;
24267 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24268 if (!_new_children) {
24269 p->error_indicator = 1;
24270 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024271 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024272 return NULL;
24273 }
24274 _children = _new_children;
24275 }
24276 _children[_n++] = _res;
24277 _mark = p->mark;
24278 }
24279 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024280 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024281 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
24282 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024283 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024284 if (!_seq) {
24285 PyMem_Free(_children);
24286 p->error_indicator = 1;
24287 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024288 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024289 return NULL;
24290 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024291 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024292 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024293 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024294 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024295 return _seq;
24296}
24297
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024298// _gather_39: with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024299static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024300_gather_39_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024301{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024302 if (p->level++ == MAXSTACK) {
24303 p->error_indicator = 1;
24304 PyErr_NoMemory();
24305 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024306 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024307 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024308 return NULL;
24309 }
24310 asdl_seq * _res = NULL;
24311 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024312 { // with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024313 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024314 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024315 return NULL;
24316 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024317 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 +010024318 withitem_ty elem;
24319 asdl_seq * seq;
24320 if (
24321 (elem = with_item_rule(p)) // with_item
24322 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024323 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024324 )
24325 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024326 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 +010024327 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24328 goto done;
24329 }
24330 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024331 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
24332 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024333 }
24334 _res = NULL;
24335 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024336 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024337 return _res;
24338}
24339
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024340// _loop0_42: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024341static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024342_loop0_42_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024343{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024344 if (p->level++ == MAXSTACK) {
24345 p->error_indicator = 1;
24346 PyErr_NoMemory();
24347 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024348 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024349 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024350 return NULL;
24351 }
24352 void *_res = NULL;
24353 int _mark = p->mark;
24354 int _start_mark = p->mark;
24355 void **_children = PyMem_Malloc(sizeof(void *));
24356 if (!_children) {
24357 p->error_indicator = 1;
24358 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024359 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024360 return NULL;
24361 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024362 Py_ssize_t _children_capacity = 1;
24363 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024364 { // ',' with_item
24365 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024366 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024367 return NULL;
24368 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024369 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024370 Token * _literal;
24371 withitem_ty elem;
24372 while (
24373 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24374 &&
24375 (elem = with_item_rule(p)) // with_item
24376 )
24377 {
24378 _res = elem;
24379 if (_res == NULL && PyErr_Occurred()) {
24380 p->error_indicator = 1;
24381 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024382 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024383 return NULL;
24384 }
24385 if (_n == _children_capacity) {
24386 _children_capacity *= 2;
24387 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24388 if (!_new_children) {
24389 p->error_indicator = 1;
24390 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024391 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024392 return NULL;
24393 }
24394 _children = _new_children;
24395 }
24396 _children[_n++] = _res;
24397 _mark = p->mark;
24398 }
24399 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024400 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024401 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
24402 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024403 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024404 if (!_seq) {
24405 PyMem_Free(_children);
24406 p->error_indicator = 1;
24407 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024408 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024409 return NULL;
24410 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024411 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024412 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024413 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024414 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024415 return _seq;
24416}
24417
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024418// _gather_41: with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024419static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024420_gather_41_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024421{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024422 if (p->level++ == MAXSTACK) {
24423 p->error_indicator = 1;
24424 PyErr_NoMemory();
24425 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024426 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024427 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024428 return NULL;
24429 }
24430 asdl_seq * _res = NULL;
24431 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024432 { // with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024433 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024434 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024435 return NULL;
24436 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024437 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 +010024438 withitem_ty elem;
24439 asdl_seq * seq;
24440 if (
24441 (elem = with_item_rule(p)) // with_item
24442 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024443 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024444 )
24445 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024446 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 +010024447 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24448 goto done;
24449 }
24450 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024451 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
24452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024453 }
24454 _res = NULL;
24455 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024456 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024457 return _res;
24458}
24459
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024460// _loop0_44: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024461static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024462_loop0_44_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024463{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024464 if (p->level++ == MAXSTACK) {
24465 p->error_indicator = 1;
24466 PyErr_NoMemory();
24467 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024468 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024469 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024470 return NULL;
24471 }
24472 void *_res = NULL;
24473 int _mark = p->mark;
24474 int _start_mark = p->mark;
24475 void **_children = PyMem_Malloc(sizeof(void *));
24476 if (!_children) {
24477 p->error_indicator = 1;
24478 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024479 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024480 return NULL;
24481 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024482 Py_ssize_t _children_capacity = 1;
24483 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024484 { // ',' with_item
24485 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024486 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024487 return NULL;
24488 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024489 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024490 Token * _literal;
24491 withitem_ty elem;
24492 while (
24493 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24494 &&
24495 (elem = with_item_rule(p)) // with_item
24496 )
24497 {
24498 _res = elem;
24499 if (_res == NULL && PyErr_Occurred()) {
24500 p->error_indicator = 1;
24501 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024502 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024503 return NULL;
24504 }
24505 if (_n == _children_capacity) {
24506 _children_capacity *= 2;
24507 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24508 if (!_new_children) {
24509 p->error_indicator = 1;
24510 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024511 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024512 return NULL;
24513 }
24514 _children = _new_children;
24515 }
24516 _children[_n++] = _res;
24517 _mark = p->mark;
24518 }
24519 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024520 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024521 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
24522 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024523 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024524 if (!_seq) {
24525 PyMem_Free(_children);
24526 p->error_indicator = 1;
24527 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024528 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024529 return NULL;
24530 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024531 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024532 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024533 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024534 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024535 return _seq;
24536}
24537
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024538// _gather_43: with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024539static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024540_gather_43_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024541{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024542 if (p->level++ == MAXSTACK) {
24543 p->error_indicator = 1;
24544 PyErr_NoMemory();
24545 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024546 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024547 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024548 return NULL;
24549 }
24550 asdl_seq * _res = NULL;
24551 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024552 { // with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024553 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024554 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024555 return NULL;
24556 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024557 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 +010024558 withitem_ty elem;
24559 asdl_seq * seq;
24560 if (
24561 (elem = with_item_rule(p)) // with_item
24562 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024563 (seq = _loop0_44_rule(p)) // _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024564 )
24565 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024566 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 +010024567 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24568 goto done;
24569 }
24570 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024571 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
24572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024573 }
24574 _res = NULL;
24575 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024576 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024577 return _res;
24578}
24579
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024580// _loop0_46: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024581static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024582_loop0_46_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024583{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024584 if (p->level++ == MAXSTACK) {
24585 p->error_indicator = 1;
24586 PyErr_NoMemory();
24587 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024588 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024589 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024590 return NULL;
24591 }
24592 void *_res = NULL;
24593 int _mark = p->mark;
24594 int _start_mark = p->mark;
24595 void **_children = PyMem_Malloc(sizeof(void *));
24596 if (!_children) {
24597 p->error_indicator = 1;
24598 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024599 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024600 return NULL;
24601 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024602 Py_ssize_t _children_capacity = 1;
24603 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024604 { // ',' with_item
24605 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024606 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024607 return NULL;
24608 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024609 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024610 Token * _literal;
24611 withitem_ty elem;
24612 while (
24613 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24614 &&
24615 (elem = with_item_rule(p)) // with_item
24616 )
24617 {
24618 _res = elem;
24619 if (_res == NULL && PyErr_Occurred()) {
24620 p->error_indicator = 1;
24621 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024622 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024623 return NULL;
24624 }
24625 if (_n == _children_capacity) {
24626 _children_capacity *= 2;
24627 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24628 if (!_new_children) {
24629 p->error_indicator = 1;
24630 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024631 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024632 return NULL;
24633 }
24634 _children = _new_children;
24635 }
24636 _children[_n++] = _res;
24637 _mark = p->mark;
24638 }
24639 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024640 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024641 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
24642 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024643 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024644 if (!_seq) {
24645 PyMem_Free(_children);
24646 p->error_indicator = 1;
24647 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024648 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024649 return NULL;
24650 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024651 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024652 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024653 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024654 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024655 return _seq;
24656}
24657
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024658// _gather_45: with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024659static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024660_gather_45_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024661{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024662 if (p->level++ == MAXSTACK) {
24663 p->error_indicator = 1;
24664 PyErr_NoMemory();
24665 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024666 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024667 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024668 return NULL;
24669 }
24670 asdl_seq * _res = NULL;
24671 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024672 { // with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024673 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024674 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024675 return NULL;
24676 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024677 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 +010024678 withitem_ty elem;
24679 asdl_seq * seq;
24680 if (
24681 (elem = with_item_rule(p)) // with_item
24682 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024683 (seq = _loop0_46_rule(p)) // _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024684 )
24685 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024686 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 +010024687 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24688 goto done;
24689 }
24690 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024691 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
24692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024693 }
24694 _res = NULL;
24695 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024696 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024697 return _res;
24698}
24699
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024700// _tmp_47: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024701static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024702_tmp_47_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024703{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024704 if (p->level++ == MAXSTACK) {
24705 p->error_indicator = 1;
24706 PyErr_NoMemory();
24707 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024708 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024709 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024710 return NULL;
24711 }
24712 void * _res = NULL;
24713 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024714 { // ','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024715 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024716 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024717 return NULL;
24718 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024719 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
24720 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024721 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024722 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024723 )
24724 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024725 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
24726 _res = _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024727 goto done;
24728 }
24729 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024730 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
24731 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
24732 }
24733 { // ')'
24734 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024735 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024736 return NULL;
24737 }
24738 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
24739 Token * _literal;
24740 if (
24741 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
24742 )
24743 {
24744 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
24745 _res = _literal;
24746 goto done;
24747 }
24748 p->mark = _mark;
24749 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
24750 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
24751 }
24752 { // ':'
24753 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024754 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024755 return NULL;
24756 }
24757 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
24758 Token * _literal;
24759 if (
24760 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
24761 )
24762 {
24763 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
24764 _res = _literal;
24765 goto done;
24766 }
24767 p->mark = _mark;
24768 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
24769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024770 }
24771 _res = NULL;
24772 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024773 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024774 return _res;
24775}
24776
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024777// _loop1_48: except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024778static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024779_loop1_48_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024780{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024781 if (p->level++ == MAXSTACK) {
24782 p->error_indicator = 1;
24783 PyErr_NoMemory();
24784 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024785 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024786 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024787 return NULL;
24788 }
24789 void *_res = NULL;
24790 int _mark = p->mark;
24791 int _start_mark = p->mark;
24792 void **_children = PyMem_Malloc(sizeof(void *));
24793 if (!_children) {
24794 p->error_indicator = 1;
24795 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024796 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024797 return NULL;
24798 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024799 Py_ssize_t _children_capacity = 1;
24800 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024801 { // except_block
24802 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024803 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024804 return NULL;
24805 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024806 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024807 excepthandler_ty except_block_var;
24808 while (
24809 (except_block_var = except_block_rule(p)) // except_block
24810 )
24811 {
24812 _res = except_block_var;
24813 if (_n == _children_capacity) {
24814 _children_capacity *= 2;
24815 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24816 if (!_new_children) {
24817 p->error_indicator = 1;
24818 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024819 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024820 return NULL;
24821 }
24822 _children = _new_children;
24823 }
24824 _children[_n++] = _res;
24825 _mark = p->mark;
24826 }
24827 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024828 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024829 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
24830 }
24831 if (_n == 0 || p->error_indicator) {
24832 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024833 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024834 return NULL;
24835 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024836 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024837 if (!_seq) {
24838 PyMem_Free(_children);
24839 p->error_indicator = 1;
24840 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024841 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024842 return NULL;
24843 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024844 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024845 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024846 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024847 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024848 return _seq;
24849}
24850
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024851// _tmp_49: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024852static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024853_tmp_49_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024854{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024855 if (p->level++ == MAXSTACK) {
24856 p->error_indicator = 1;
24857 PyErr_NoMemory();
24858 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024859 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024860 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024861 return NULL;
24862 }
24863 void * _res = NULL;
24864 int _mark = p->mark;
24865 { // 'as' NAME
24866 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024867 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024868 return NULL;
24869 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024870 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024871 Token * _keyword;
24872 expr_ty z;
24873 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024874 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024875 &&
24876 (z = _PyPegen_name_token(p)) // NAME
24877 )
24878 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024879 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 +010024880 _res = z;
24881 if (_res == NULL && PyErr_Occurred()) {
24882 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024883 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024884 return NULL;
24885 }
24886 goto done;
24887 }
24888 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024889 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024890 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
24891 }
24892 _res = NULL;
24893 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024894 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024895 return _res;
24896}
24897
Brandt Bucher145bf262021-02-26 14:51:55 -080024898// _loop1_50: case_block
24899static asdl_seq *
24900_loop1_50_rule(Parser *p)
24901{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024902 if (p->level++ == MAXSTACK) {
24903 p->error_indicator = 1;
24904 PyErr_NoMemory();
24905 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024906 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024907 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080024908 return NULL;
24909 }
24910 void *_res = NULL;
24911 int _mark = p->mark;
24912 int _start_mark = p->mark;
24913 void **_children = PyMem_Malloc(sizeof(void *));
24914 if (!_children) {
24915 p->error_indicator = 1;
24916 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024917 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080024918 return NULL;
24919 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024920 Py_ssize_t _children_capacity = 1;
24921 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024922 { // case_block
24923 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024924 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080024925 return NULL;
24926 }
24927 D(fprintf(stderr, "%*c> _loop1_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "case_block"));
24928 match_case_ty case_block_var;
24929 while (
24930 (case_block_var = case_block_rule(p)) // case_block
24931 )
24932 {
24933 _res = case_block_var;
24934 if (_n == _children_capacity) {
24935 _children_capacity *= 2;
24936 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24937 if (!_new_children) {
24938 p->error_indicator = 1;
24939 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024940 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080024941 return NULL;
24942 }
24943 _children = _new_children;
24944 }
24945 _children[_n++] = _res;
24946 _mark = p->mark;
24947 }
24948 p->mark = _mark;
24949 D(fprintf(stderr, "%*c%s _loop1_50[%d-%d]: %s failed!\n", p->level, ' ',
24950 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "case_block"));
24951 }
24952 if (_n == 0 || p->error_indicator) {
24953 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024954 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080024955 return NULL;
24956 }
24957 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24958 if (!_seq) {
24959 PyMem_Free(_children);
24960 p->error_indicator = 1;
24961 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024962 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080024963 return NULL;
24964 }
24965 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24966 PyMem_Free(_children);
24967 _PyPegen_insert_memo(p, _start_mark, _loop1_50_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024968 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080024969 return _seq;
24970}
24971
24972// _loop0_52: '|' closed_pattern
24973static asdl_seq *
24974_loop0_52_rule(Parser *p)
24975{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024976 if (p->level++ == MAXSTACK) {
24977 p->error_indicator = 1;
24978 PyErr_NoMemory();
24979 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024980 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024981 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080024982 return NULL;
24983 }
24984 void *_res = NULL;
24985 int _mark = p->mark;
24986 int _start_mark = p->mark;
24987 void **_children = PyMem_Malloc(sizeof(void *));
24988 if (!_children) {
24989 p->error_indicator = 1;
24990 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024991 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080024992 return NULL;
24993 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024994 Py_ssize_t _children_capacity = 1;
24995 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024996 { // '|' closed_pattern
24997 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000024998 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080024999 return NULL;
25000 }
25001 D(fprintf(stderr, "%*c> _loop0_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|' closed_pattern"));
25002 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025003 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080025004 while (
25005 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
25006 &&
25007 (elem = closed_pattern_rule(p)) // closed_pattern
25008 )
25009 {
25010 _res = elem;
25011 if (_res == NULL && PyErr_Occurred()) {
25012 p->error_indicator = 1;
25013 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025014 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025015 return NULL;
25016 }
25017 if (_n == _children_capacity) {
25018 _children_capacity *= 2;
25019 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25020 if (!_new_children) {
25021 p->error_indicator = 1;
25022 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025023 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025024 return NULL;
25025 }
25026 _children = _new_children;
25027 }
25028 _children[_n++] = _res;
25029 _mark = p->mark;
25030 }
25031 p->mark = _mark;
25032 D(fprintf(stderr, "%*c%s _loop0_52[%d-%d]: %s failed!\n", p->level, ' ',
25033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|' closed_pattern"));
25034 }
25035 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
25036 if (!_seq) {
25037 PyMem_Free(_children);
25038 p->error_indicator = 1;
25039 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025040 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025041 return NULL;
25042 }
25043 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
25044 PyMem_Free(_children);
25045 _PyPegen_insert_memo(p, _start_mark, _loop0_52_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025046 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025047 return _seq;
25048}
25049
25050// _gather_51: closed_pattern _loop0_52
25051static asdl_seq *
25052_gather_51_rule(Parser *p)
25053{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025054 if (p->level++ == MAXSTACK) {
25055 p->error_indicator = 1;
25056 PyErr_NoMemory();
25057 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025058 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025059 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025060 return NULL;
25061 }
25062 asdl_seq * _res = NULL;
25063 int _mark = p->mark;
25064 { // closed_pattern _loop0_52
25065 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025066 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025067 return NULL;
25068 }
25069 D(fprintf(stderr, "%*c> _gather_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025070 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080025071 asdl_seq * seq;
25072 if (
25073 (elem = closed_pattern_rule(p)) // closed_pattern
25074 &&
25075 (seq = _loop0_52_rule(p)) // _loop0_52
25076 )
25077 {
25078 D(fprintf(stderr, "%*c+ _gather_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
25079 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
25080 goto done;
25081 }
25082 p->mark = _mark;
25083 D(fprintf(stderr, "%*c%s _gather_51[%d-%d]: %s failed!\n", p->level, ' ',
25084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "closed_pattern _loop0_52"));
25085 }
25086 _res = NULL;
25087 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025088 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025089 return _res;
25090}
25091
25092// _tmp_53: '+' | '-'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025093static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025094_tmp_53_rule(Parser *p)
25095{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025096 if (p->level++ == MAXSTACK) {
25097 p->error_indicator = 1;
25098 PyErr_NoMemory();
25099 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025100 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025101 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025102 return NULL;
25103 }
25104 void * _res = NULL;
25105 int _mark = p->mark;
25106 { // '+'
25107 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025108 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025109 return NULL;
25110 }
25111 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
25112 Token * _literal;
25113 if (
25114 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
25115 )
25116 {
25117 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
25118 _res = _literal;
25119 goto done;
25120 }
25121 p->mark = _mark;
25122 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
25123 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
25124 }
25125 { // '-'
25126 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025127 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025128 return NULL;
25129 }
25130 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
25131 Token * _literal;
25132 if (
25133 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
25134 )
25135 {
25136 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
25137 _res = _literal;
25138 goto done;
25139 }
25140 p->mark = _mark;
25141 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
25142 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
25143 }
25144 _res = NULL;
25145 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025146 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025147 return _res;
25148}
25149
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025150// _tmp_54: '+' | '-'
Brandt Bucher145bf262021-02-26 14:51:55 -080025151static void *
25152_tmp_54_rule(Parser *p)
25153{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025154 if (p->level++ == MAXSTACK) {
25155 p->error_indicator = 1;
25156 PyErr_NoMemory();
25157 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025158 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025159 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025160 return NULL;
25161 }
25162 void * _res = NULL;
25163 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025164 { // '+'
Brandt Bucher145bf262021-02-26 14:51:55 -080025165 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025166 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025167 return NULL;
25168 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025169 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080025170 Token * _literal;
25171 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025172 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Brandt Bucher145bf262021-02-26 14:51:55 -080025173 )
25174 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025175 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080025176 _res = _literal;
25177 goto done;
25178 }
25179 p->mark = _mark;
25180 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025181 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080025182 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025183 { // '-'
Brandt Bucher145bf262021-02-26 14:51:55 -080025184 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025185 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025186 return NULL;
25187 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025188 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080025189 Token * _literal;
25190 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025191 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
Brandt Bucher145bf262021-02-26 14:51:55 -080025192 )
25193 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025194 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080025195 _res = _literal;
25196 goto done;
25197 }
25198 p->mark = _mark;
25199 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025200 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080025201 }
25202 _res = NULL;
25203 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025204 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025205 return _res;
25206}
25207
25208// _tmp_55: '.' | '(' | '='
25209static void *
25210_tmp_55_rule(Parser *p)
25211{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025212 if (p->level++ == MAXSTACK) {
25213 p->error_indicator = 1;
25214 PyErr_NoMemory();
25215 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025216 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025217 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025218 return NULL;
25219 }
25220 void * _res = NULL;
25221 int _mark = p->mark;
25222 { // '.'
25223 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025224 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025225 return NULL;
25226 }
25227 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
25228 Token * _literal;
25229 if (
25230 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
25231 )
25232 {
25233 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
25234 _res = _literal;
25235 goto done;
25236 }
25237 p->mark = _mark;
25238 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
25239 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
25240 }
25241 { // '('
25242 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025243 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025244 return NULL;
25245 }
25246 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
25247 Token * _literal;
25248 if (
25249 (_literal = _PyPegen_expect_token(p, 7)) // token='('
25250 )
25251 {
25252 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
25253 _res = _literal;
25254 goto done;
25255 }
25256 p->mark = _mark;
25257 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
25258 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
25259 }
25260 { // '='
25261 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025262 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025263 return NULL;
25264 }
25265 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
25266 Token * _literal;
25267 if (
25268 (_literal = _PyPegen_expect_token(p, 22)) // token='='
25269 )
25270 {
25271 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
25272 _res = _literal;
25273 goto done;
25274 }
25275 p->mark = _mark;
25276 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
25277 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
25278 }
25279 _res = NULL;
25280 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025281 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025282 return _res;
25283}
25284
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025285// _tmp_56: '.' | '(' | '='
25286static void *
25287_tmp_56_rule(Parser *p)
25288{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025289 if (p->level++ == MAXSTACK) {
25290 p->error_indicator = 1;
25291 PyErr_NoMemory();
25292 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025293 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025294 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025295 return NULL;
25296 }
25297 void * _res = NULL;
25298 int _mark = p->mark;
25299 { // '.'
25300 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025301 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025302 return NULL;
25303 }
25304 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
25305 Token * _literal;
25306 if (
25307 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
25308 )
25309 {
25310 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
25311 _res = _literal;
25312 goto done;
25313 }
25314 p->mark = _mark;
25315 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
25316 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
25317 }
25318 { // '('
25319 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025320 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025321 return NULL;
25322 }
25323 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
25324 Token * _literal;
25325 if (
25326 (_literal = _PyPegen_expect_token(p, 7)) // token='('
25327 )
25328 {
25329 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
25330 _res = _literal;
25331 goto done;
25332 }
25333 p->mark = _mark;
25334 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
25335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
25336 }
25337 { // '='
25338 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025339 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025340 return NULL;
25341 }
25342 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
25343 Token * _literal;
25344 if (
25345 (_literal = _PyPegen_expect_token(p, 22)) // token='='
25346 )
25347 {
25348 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
25349 _res = _literal;
25350 goto done;
25351 }
25352 p->mark = _mark;
25353 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
25354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
25355 }
25356 _res = NULL;
25357 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025358 p->level--;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025359 return _res;
25360}
25361
25362// _loop0_58: ',' maybe_star_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -080025363static asdl_seq *
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025364_loop0_58_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080025365{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025366 if (p->level++ == MAXSTACK) {
25367 p->error_indicator = 1;
25368 PyErr_NoMemory();
25369 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025370 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025371 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025372 return NULL;
25373 }
25374 void *_res = NULL;
25375 int _mark = p->mark;
25376 int _start_mark = p->mark;
25377 void **_children = PyMem_Malloc(sizeof(void *));
25378 if (!_children) {
25379 p->error_indicator = 1;
25380 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025381 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025382 return NULL;
25383 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025384 Py_ssize_t _children_capacity = 1;
25385 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080025386 { // ',' maybe_star_pattern
25387 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025388 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025389 return NULL;
25390 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025391 D(fprintf(stderr, "%*c> _loop0_58[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' maybe_star_pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -080025392 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025393 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080025394 while (
25395 (_literal = _PyPegen_expect_token(p, 12)) // token=','
25396 &&
25397 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
25398 )
25399 {
25400 _res = elem;
25401 if (_res == NULL && PyErr_Occurred()) {
25402 p->error_indicator = 1;
25403 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025404 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025405 return NULL;
25406 }
25407 if (_n == _children_capacity) {
25408 _children_capacity *= 2;
25409 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25410 if (!_new_children) {
25411 p->error_indicator = 1;
25412 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025413 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025414 return NULL;
25415 }
25416 _children = _new_children;
25417 }
25418 _children[_n++] = _res;
25419 _mark = p->mark;
25420 }
25421 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025422 D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080025423 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' maybe_star_pattern"));
25424 }
25425 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
25426 if (!_seq) {
25427 PyMem_Free(_children);
25428 p->error_indicator = 1;
25429 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025430 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025431 return NULL;
25432 }
25433 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
25434 PyMem_Free(_children);
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025435 _PyPegen_insert_memo(p, _start_mark, _loop0_58_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025436 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025437 return _seq;
25438}
25439
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025440// _gather_57: maybe_star_pattern _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080025441static asdl_seq *
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025442_gather_57_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080025443{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025444 if (p->level++ == MAXSTACK) {
25445 p->error_indicator = 1;
25446 PyErr_NoMemory();
25447 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025448 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025449 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025450 return NULL;
25451 }
25452 asdl_seq * _res = NULL;
25453 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025454 { // maybe_star_pattern _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080025455 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025456 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025457 return NULL;
25458 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025459 D(fprintf(stderr, "%*c> _gather_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_58"));
25460 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080025461 asdl_seq * seq;
25462 if (
25463 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
25464 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025465 (seq = _loop0_58_rule(p)) // _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080025466 )
25467 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025468 D(fprintf(stderr, "%*c+ _gather_57[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_58"));
Brandt Bucher145bf262021-02-26 14:51:55 -080025469 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
25470 goto done;
25471 }
25472 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025473 D(fprintf(stderr, "%*c%s _gather_57[%d-%d]: %s failed!\n", p->level, ' ',
25474 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern _loop0_58"));
Brandt Bucher145bf262021-02-26 14:51:55 -080025475 }
25476 _res = NULL;
25477 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025478 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025479 return _res;
25480}
25481
25482// _loop0_60: ',' key_value_pattern
25483static asdl_seq *
25484_loop0_60_rule(Parser *p)
25485{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025486 if (p->level++ == MAXSTACK) {
25487 p->error_indicator = 1;
25488 PyErr_NoMemory();
25489 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025490 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025491 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025492 return NULL;
25493 }
25494 void *_res = NULL;
25495 int _mark = p->mark;
25496 int _start_mark = p->mark;
25497 void **_children = PyMem_Malloc(sizeof(void *));
25498 if (!_children) {
25499 p->error_indicator = 1;
25500 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025501 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025502 return NULL;
25503 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025504 Py_ssize_t _children_capacity = 1;
25505 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080025506 { // ',' key_value_pattern
25507 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025508 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025509 return NULL;
25510 }
25511 D(fprintf(stderr, "%*c> _loop0_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' key_value_pattern"));
25512 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025513 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080025514 while (
25515 (_literal = _PyPegen_expect_token(p, 12)) // token=','
25516 &&
25517 (elem = key_value_pattern_rule(p)) // key_value_pattern
25518 )
25519 {
25520 _res = elem;
25521 if (_res == NULL && PyErr_Occurred()) {
25522 p->error_indicator = 1;
25523 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025524 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025525 return NULL;
25526 }
25527 if (_n == _children_capacity) {
25528 _children_capacity *= 2;
25529 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25530 if (!_new_children) {
25531 p->error_indicator = 1;
25532 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025533 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025534 return NULL;
25535 }
25536 _children = _new_children;
25537 }
25538 _children[_n++] = _res;
25539 _mark = p->mark;
25540 }
25541 p->mark = _mark;
25542 D(fprintf(stderr, "%*c%s _loop0_60[%d-%d]: %s failed!\n", p->level, ' ',
25543 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' key_value_pattern"));
25544 }
25545 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
25546 if (!_seq) {
25547 PyMem_Free(_children);
25548 p->error_indicator = 1;
25549 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025550 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025551 return NULL;
25552 }
25553 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
25554 PyMem_Free(_children);
25555 _PyPegen_insert_memo(p, _start_mark, _loop0_60_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025556 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025557 return _seq;
25558}
25559
25560// _gather_59: key_value_pattern _loop0_60
25561static asdl_seq *
25562_gather_59_rule(Parser *p)
25563{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025564 if (p->level++ == MAXSTACK) {
25565 p->error_indicator = 1;
25566 PyErr_NoMemory();
25567 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025568 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025569 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025570 return NULL;
25571 }
25572 asdl_seq * _res = NULL;
25573 int _mark = p->mark;
25574 { // key_value_pattern _loop0_60
25575 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025576 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025577 return NULL;
25578 }
25579 D(fprintf(stderr, "%*c> _gather_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025580 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080025581 asdl_seq * seq;
25582 if (
25583 (elem = key_value_pattern_rule(p)) // key_value_pattern
25584 &&
25585 (seq = _loop0_60_rule(p)) // _loop0_60
25586 )
25587 {
25588 D(fprintf(stderr, "%*c+ _gather_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
25589 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
25590 goto done;
25591 }
25592 p->mark = _mark;
25593 D(fprintf(stderr, "%*c%s _gather_59[%d-%d]: %s failed!\n", p->level, ' ',
25594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "key_value_pattern _loop0_60"));
25595 }
25596 _res = NULL;
25597 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025598 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025599 return _res;
25600}
25601
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025602// _tmp_61: literal_expr | attr
Brandt Bucher145bf262021-02-26 14:51:55 -080025603static void *
25604_tmp_61_rule(Parser *p)
25605{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025606 if (p->level++ == MAXSTACK) {
25607 p->error_indicator = 1;
25608 PyErr_NoMemory();
25609 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025610 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025611 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025612 return NULL;
25613 }
25614 void * _res = NULL;
25615 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025616 { // literal_expr
Brandt Bucher145bf262021-02-26 14:51:55 -080025617 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025618 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025619 return NULL;
25620 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025621 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_expr"));
25622 expr_ty literal_expr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080025623 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025624 (literal_expr_var = literal_expr_rule(p)) // literal_expr
Brandt Bucher145bf262021-02-26 14:51:55 -080025625 )
25626 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025627 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_expr"));
25628 _res = literal_expr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080025629 goto done;
25630 }
25631 p->mark = _mark;
25632 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025633 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080025634 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025635 { // attr
Brandt Bucher145bf262021-02-26 14:51:55 -080025636 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025637 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025638 return NULL;
25639 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025640 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
25641 expr_ty attr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080025642 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025643 (attr_var = attr_rule(p)) // attr
Brandt Bucher145bf262021-02-26 14:51:55 -080025644 )
25645 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025646 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
25647 _res = attr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080025648 goto done;
25649 }
25650 p->mark = _mark;
25651 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025652 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080025653 }
25654 _res = NULL;
25655 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025656 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025657 return _res;
25658}
25659
25660// _loop0_63: ',' pattern
25661static asdl_seq *
25662_loop0_63_rule(Parser *p)
25663{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025664 if (p->level++ == MAXSTACK) {
25665 p->error_indicator = 1;
25666 PyErr_NoMemory();
25667 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025668 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025669 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025670 return NULL;
25671 }
25672 void *_res = NULL;
25673 int _mark = p->mark;
25674 int _start_mark = p->mark;
25675 void **_children = PyMem_Malloc(sizeof(void *));
25676 if (!_children) {
25677 p->error_indicator = 1;
25678 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025679 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025680 return NULL;
25681 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025682 Py_ssize_t _children_capacity = 1;
25683 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080025684 { // ',' pattern
25685 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025686 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025687 return NULL;
25688 }
25689 D(fprintf(stderr, "%*c> _loop0_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' pattern"));
25690 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025691 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080025692 while (
25693 (_literal = _PyPegen_expect_token(p, 12)) // token=','
25694 &&
25695 (elem = pattern_rule(p)) // pattern
25696 )
25697 {
25698 _res = elem;
25699 if (_res == NULL && PyErr_Occurred()) {
25700 p->error_indicator = 1;
25701 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025702 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025703 return NULL;
25704 }
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();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025711 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025712 return NULL;
25713 }
25714 _children = _new_children;
25715 }
25716 _children[_n++] = _res;
25717 _mark = p->mark;
25718 }
25719 p->mark = _mark;
25720 D(fprintf(stderr, "%*c%s _loop0_63[%d-%d]: %s failed!\n", p->level, ' ',
25721 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' pattern"));
25722 }
25723 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
25724 if (!_seq) {
25725 PyMem_Free(_children);
25726 p->error_indicator = 1;
25727 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025728 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025729 return NULL;
25730 }
25731 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
25732 PyMem_Free(_children);
25733 _PyPegen_insert_memo(p, _start_mark, _loop0_63_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025734 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025735 return _seq;
25736}
25737
25738// _gather_62: pattern _loop0_63
25739static asdl_seq *
25740_gather_62_rule(Parser *p)
25741{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025742 if (p->level++ == MAXSTACK) {
25743 p->error_indicator = 1;
25744 PyErr_NoMemory();
25745 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025746 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025747 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025748 return NULL;
25749 }
25750 asdl_seq * _res = NULL;
25751 int _mark = p->mark;
25752 { // pattern _loop0_63
25753 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025754 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025755 return NULL;
25756 }
25757 D(fprintf(stderr, "%*c> _gather_62[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025758 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080025759 asdl_seq * seq;
25760 if (
25761 (elem = pattern_rule(p)) // pattern
25762 &&
25763 (seq = _loop0_63_rule(p)) // _loop0_63
25764 )
25765 {
25766 D(fprintf(stderr, "%*c+ _gather_62[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
25767 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
25768 goto done;
25769 }
25770 p->mark = _mark;
25771 D(fprintf(stderr, "%*c%s _gather_62[%d-%d]: %s failed!\n", p->level, ' ',
25772 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern _loop0_63"));
25773 }
25774 _res = NULL;
25775 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025776 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025777 return _res;
25778}
25779
25780// _loop0_65: ',' keyword_pattern
25781static asdl_seq *
25782_loop0_65_rule(Parser *p)
25783{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025784 if (p->level++ == MAXSTACK) {
25785 p->error_indicator = 1;
25786 PyErr_NoMemory();
25787 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025788 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025789 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025790 return NULL;
25791 }
25792 void *_res = NULL;
25793 int _mark = p->mark;
25794 int _start_mark = p->mark;
25795 void **_children = PyMem_Malloc(sizeof(void *));
25796 if (!_children) {
25797 p->error_indicator = 1;
25798 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025799 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025800 return NULL;
25801 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025802 Py_ssize_t _children_capacity = 1;
25803 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080025804 { // ',' keyword_pattern
25805 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025806 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025807 return NULL;
25808 }
25809 D(fprintf(stderr, "%*c> _loop0_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' keyword_pattern"));
25810 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025811 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080025812 while (
25813 (_literal = _PyPegen_expect_token(p, 12)) // token=','
25814 &&
25815 (elem = keyword_pattern_rule(p)) // keyword_pattern
25816 )
25817 {
25818 _res = elem;
25819 if (_res == NULL && PyErr_Occurred()) {
25820 p->error_indicator = 1;
25821 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025822 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025823 return NULL;
25824 }
25825 if (_n == _children_capacity) {
25826 _children_capacity *= 2;
25827 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25828 if (!_new_children) {
25829 p->error_indicator = 1;
25830 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025831 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025832 return NULL;
25833 }
25834 _children = _new_children;
25835 }
25836 _children[_n++] = _res;
25837 _mark = p->mark;
25838 }
25839 p->mark = _mark;
25840 D(fprintf(stderr, "%*c%s _loop0_65[%d-%d]: %s failed!\n", p->level, ' ',
25841 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' keyword_pattern"));
25842 }
25843 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
25844 if (!_seq) {
25845 PyMem_Free(_children);
25846 p->error_indicator = 1;
25847 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025848 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025849 return NULL;
25850 }
25851 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
25852 PyMem_Free(_children);
25853 _PyPegen_insert_memo(p, _start_mark, _loop0_65_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025854 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025855 return _seq;
25856}
25857
25858// _gather_64: keyword_pattern _loop0_65
25859static asdl_seq *
25860_gather_64_rule(Parser *p)
25861{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025862 if (p->level++ == MAXSTACK) {
25863 p->error_indicator = 1;
25864 PyErr_NoMemory();
25865 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025866 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025867 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025868 return NULL;
25869 }
25870 asdl_seq * _res = NULL;
25871 int _mark = p->mark;
25872 { // keyword_pattern _loop0_65
25873 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025874 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025875 return NULL;
25876 }
25877 D(fprintf(stderr, "%*c> _gather_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +100025878 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080025879 asdl_seq * seq;
25880 if (
25881 (elem = keyword_pattern_rule(p)) // keyword_pattern
25882 &&
25883 (seq = _loop0_65_rule(p)) // _loop0_65
25884 )
25885 {
25886 D(fprintf(stderr, "%*c+ _gather_64[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
25887 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
25888 goto done;
25889 }
25890 p->mark = _mark;
25891 D(fprintf(stderr, "%*c%s _gather_64[%d-%d]: %s failed!\n", p->level, ' ',
25892 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "keyword_pattern _loop0_65"));
25893 }
25894 _res = NULL;
25895 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025896 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080025897 return _res;
25898}
25899
25900// _tmp_66: 'from' expression
25901static void *
25902_tmp_66_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025903{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025904 if (p->level++ == MAXSTACK) {
25905 p->error_indicator = 1;
25906 PyErr_NoMemory();
25907 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025908 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025909 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025910 return NULL;
25911 }
25912 void * _res = NULL;
25913 int _mark = p->mark;
25914 { // 'from' expression
25915 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025916 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025917 return NULL;
25918 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025919 D(fprintf(stderr, "%*c> _tmp_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025920 Token * _keyword;
25921 expr_ty z;
25922 if (
25923 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
25924 &&
25925 (z = expression_rule(p)) // expression
25926 )
25927 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025928 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 +010025929 _res = z;
25930 if (_res == NULL && PyErr_Occurred()) {
25931 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025932 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025933 return NULL;
25934 }
25935 goto done;
25936 }
25937 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025938 D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025939 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025940 }
25941 _res = NULL;
25942 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025943 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025944 return _res;
25945}
25946
Brandt Bucher145bf262021-02-26 14:51:55 -080025947// _tmp_67: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025948static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025949_tmp_67_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025950{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025951 if (p->level++ == MAXSTACK) {
25952 p->error_indicator = 1;
25953 PyErr_NoMemory();
25954 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025955 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025956 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025957 return NULL;
25958 }
25959 void * _res = NULL;
25960 int _mark = p->mark;
25961 { // '->' expression
25962 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025963 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025964 return NULL;
25965 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025966 D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025967 Token * _literal;
25968 expr_ty z;
25969 if (
25970 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
25971 &&
25972 (z = expression_rule(p)) // expression
25973 )
25974 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025975 D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025976 _res = z;
25977 if (_res == NULL && PyErr_Occurred()) {
25978 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025979 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025980 return NULL;
25981 }
25982 goto done;
25983 }
25984 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025985 D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025986 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
25987 }
25988 _res = NULL;
25989 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025990 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025991 return _res;
25992}
25993
Brandt Bucher145bf262021-02-26 14:51:55 -080025994// _tmp_68: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025995static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025996_tmp_68_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025997{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000025998 if (p->level++ == MAXSTACK) {
25999 p->error_indicator = 1;
26000 PyErr_NoMemory();
26001 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026002 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026003 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026004 return NULL;
26005 }
26006 void * _res = NULL;
26007 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026008 { // '->' expression
26009 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026010 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026011 return NULL;
26012 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026013 D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026014 Token * _literal;
26015 expr_ty z;
26016 if (
26017 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
26018 &&
26019 (z = expression_rule(p)) // expression
26020 )
26021 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026022 D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026023 _res = z;
26024 if (_res == NULL && PyErr_Occurred()) {
26025 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026026 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026027 return NULL;
26028 }
26029 goto done;
26030 }
26031 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026032 D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
26034 }
26035 _res = NULL;
26036 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026037 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026038 return _res;
26039}
26040
Brandt Bucher145bf262021-02-26 14:51:55 -080026041// _tmp_69: NEWLINE INDENT
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026042static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080026043_tmp_69_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026044{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026045 if (p->level++ == MAXSTACK) {
26046 p->error_indicator = 1;
26047 PyErr_NoMemory();
26048 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026049 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026050 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026051 return NULL;
26052 }
26053 void * _res = NULL;
26054 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026055 { // NEWLINE INDENT
26056 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026057 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026058 return NULL;
26059 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026060 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026061 Token * indent_var;
26062 Token * newline_var;
26063 if (
26064 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
26065 &&
26066 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
26067 )
26068 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026069 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 +010026070 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
26071 goto done;
26072 }
26073 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026074 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026075 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
26076 }
26077 _res = NULL;
26078 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026079 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026080 return _res;
26081}
26082
Brandt Bucher145bf262021-02-26 14:51:55 -080026083// _loop0_70: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026084static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026085_loop0_70_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026086{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026087 if (p->level++ == MAXSTACK) {
26088 p->error_indicator = 1;
26089 PyErr_NoMemory();
26090 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026091 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026092 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026093 return NULL;
26094 }
26095 void *_res = NULL;
26096 int _mark = p->mark;
26097 int _start_mark = p->mark;
26098 void **_children = PyMem_Malloc(sizeof(void *));
26099 if (!_children) {
26100 p->error_indicator = 1;
26101 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026102 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026103 return NULL;
26104 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026105 Py_ssize_t _children_capacity = 1;
26106 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026107 { // param_no_default
26108 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026109 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026110 return NULL;
26111 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026112 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 +010026113 arg_ty param_no_default_var;
26114 while (
26115 (param_no_default_var = param_no_default_rule(p)) // param_no_default
26116 )
26117 {
26118 _res = param_no_default_var;
26119 if (_n == _children_capacity) {
26120 _children_capacity *= 2;
26121 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26122 if (!_new_children) {
26123 p->error_indicator = 1;
26124 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026125 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026126 return NULL;
26127 }
26128 _children = _new_children;
26129 }
26130 _children[_n++] = _res;
26131 _mark = p->mark;
26132 }
26133 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026134 D(fprintf(stderr, "%*c%s _loop0_70[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026135 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026136 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026137 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026138 if (!_seq) {
26139 PyMem_Free(_children);
26140 p->error_indicator = 1;
26141 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026142 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026143 return NULL;
26144 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026145 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026146 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026147 _PyPegen_insert_memo(p, _start_mark, _loop0_70_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026148 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026149 return _seq;
26150}
26151
Brandt Bucher145bf262021-02-26 14:51:55 -080026152// _loop0_71: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026153static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026154_loop0_71_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026155{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026156 if (p->level++ == MAXSTACK) {
26157 p->error_indicator = 1;
26158 PyErr_NoMemory();
26159 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026160 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026161 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026162 return NULL;
26163 }
26164 void *_res = NULL;
26165 int _mark = p->mark;
26166 int _start_mark = p->mark;
26167 void **_children = PyMem_Malloc(sizeof(void *));
26168 if (!_children) {
26169 p->error_indicator = 1;
26170 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026171 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026172 return NULL;
26173 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026174 Py_ssize_t _children_capacity = 1;
26175 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026176 { // param_with_default
26177 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026178 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026179 return NULL;
26180 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026181 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 +010026182 NameDefaultPair* param_with_default_var;
26183 while (
26184 (param_with_default_var = param_with_default_rule(p)) // param_with_default
26185 )
26186 {
26187 _res = param_with_default_var;
26188 if (_n == _children_capacity) {
26189 _children_capacity *= 2;
26190 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26191 if (!_new_children) {
26192 p->error_indicator = 1;
26193 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026194 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026195 return NULL;
26196 }
26197 _children = _new_children;
26198 }
26199 _children[_n++] = _res;
26200 _mark = p->mark;
26201 }
26202 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026203 D(fprintf(stderr, "%*c%s _loop0_71[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026204 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
26205 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026206 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026207 if (!_seq) {
26208 PyMem_Free(_children);
26209 p->error_indicator = 1;
26210 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026211 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026212 return NULL;
26213 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026214 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026215 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026216 _PyPegen_insert_memo(p, _start_mark, _loop0_71_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026217 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026218 return _seq;
26219}
26220
Brandt Bucher145bf262021-02-26 14:51:55 -080026221// _loop0_72: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026222static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026223_loop0_72_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026224{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026225 if (p->level++ == MAXSTACK) {
26226 p->error_indicator = 1;
26227 PyErr_NoMemory();
26228 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026229 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026230 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026231 return NULL;
26232 }
26233 void *_res = NULL;
26234 int _mark = p->mark;
26235 int _start_mark = p->mark;
26236 void **_children = PyMem_Malloc(sizeof(void *));
26237 if (!_children) {
26238 p->error_indicator = 1;
26239 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026240 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026241 return NULL;
26242 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026243 Py_ssize_t _children_capacity = 1;
26244 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026245 { // param_with_default
26246 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026247 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026248 return NULL;
26249 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026250 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 +030026251 NameDefaultPair* param_with_default_var;
26252 while (
26253 (param_with_default_var = param_with_default_rule(p)) // param_with_default
26254 )
26255 {
26256 _res = param_with_default_var;
26257 if (_n == _children_capacity) {
26258 _children_capacity *= 2;
26259 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26260 if (!_new_children) {
26261 p->error_indicator = 1;
26262 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026263 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026264 return NULL;
26265 }
26266 _children = _new_children;
26267 }
26268 _children[_n++] = _res;
26269 _mark = p->mark;
26270 }
26271 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026272 D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026273 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
26274 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026275 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026276 if (!_seq) {
26277 PyMem_Free(_children);
26278 p->error_indicator = 1;
26279 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026280 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026281 return NULL;
26282 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026283 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026284 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026285 _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026286 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026287 return _seq;
26288}
26289
Brandt Bucher145bf262021-02-26 14:51:55 -080026290// _loop1_73: param_no_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026291static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026292_loop1_73_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026293{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026294 if (p->level++ == MAXSTACK) {
26295 p->error_indicator = 1;
26296 PyErr_NoMemory();
26297 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026298 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026299 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026300 return NULL;
26301 }
26302 void *_res = NULL;
26303 int _mark = p->mark;
26304 int _start_mark = p->mark;
26305 void **_children = PyMem_Malloc(sizeof(void *));
26306 if (!_children) {
26307 p->error_indicator = 1;
26308 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026309 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026310 return NULL;
26311 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026312 Py_ssize_t _children_capacity = 1;
26313 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026314 { // param_no_default
26315 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026316 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026317 return NULL;
26318 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026319 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 +010026320 arg_ty param_no_default_var;
26321 while (
26322 (param_no_default_var = param_no_default_rule(p)) // param_no_default
26323 )
26324 {
26325 _res = param_no_default_var;
26326 if (_n == _children_capacity) {
26327 _children_capacity *= 2;
26328 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26329 if (!_new_children) {
26330 p->error_indicator = 1;
26331 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026332 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026333 return NULL;
26334 }
26335 _children = _new_children;
26336 }
26337 _children[_n++] = _res;
26338 _mark = p->mark;
26339 }
26340 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026341 D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026342 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
26343 }
26344 if (_n == 0 || p->error_indicator) {
26345 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026346 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026347 return NULL;
26348 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026349 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026350 if (!_seq) {
26351 PyMem_Free(_children);
26352 p->error_indicator = 1;
26353 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026354 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026355 return NULL;
26356 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026357 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026358 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026359 _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026360 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026361 return _seq;
26362}
26363
Brandt Bucher145bf262021-02-26 14:51:55 -080026364// _loop0_74: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026365static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026366_loop0_74_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026367{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026368 if (p->level++ == MAXSTACK) {
26369 p->error_indicator = 1;
26370 PyErr_NoMemory();
26371 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026372 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026373 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026374 return NULL;
26375 }
26376 void *_res = NULL;
26377 int _mark = p->mark;
26378 int _start_mark = p->mark;
26379 void **_children = PyMem_Malloc(sizeof(void *));
26380 if (!_children) {
26381 p->error_indicator = 1;
26382 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026383 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026384 return NULL;
26385 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026386 Py_ssize_t _children_capacity = 1;
26387 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026388 { // param_with_default
26389 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026390 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026391 return NULL;
26392 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026393 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 +010026394 NameDefaultPair* param_with_default_var;
26395 while (
26396 (param_with_default_var = param_with_default_rule(p)) // param_with_default
26397 )
26398 {
26399 _res = param_with_default_var;
26400 if (_n == _children_capacity) {
26401 _children_capacity *= 2;
26402 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26403 if (!_new_children) {
26404 p->error_indicator = 1;
26405 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026406 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026407 return NULL;
26408 }
26409 _children = _new_children;
26410 }
26411 _children[_n++] = _res;
26412 _mark = p->mark;
26413 }
26414 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026415 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026416 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
26417 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026418 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026419 if (!_seq) {
26420 PyMem_Free(_children);
26421 p->error_indicator = 1;
26422 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026423 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026424 return NULL;
26425 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026426 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026427 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026428 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026429 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026430 return _seq;
26431}
26432
Brandt Bucher145bf262021-02-26 14:51:55 -080026433// _loop1_75: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026434static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026435_loop1_75_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026436{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026437 if (p->level++ == MAXSTACK) {
26438 p->error_indicator = 1;
26439 PyErr_NoMemory();
26440 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026441 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026442 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026443 return NULL;
26444 }
26445 void *_res = NULL;
26446 int _mark = p->mark;
26447 int _start_mark = p->mark;
26448 void **_children = PyMem_Malloc(sizeof(void *));
26449 if (!_children) {
26450 p->error_indicator = 1;
26451 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026452 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026453 return NULL;
26454 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026455 Py_ssize_t _children_capacity = 1;
26456 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026457 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026458 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026459 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026460 return NULL;
26461 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026462 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 +030026463 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026464 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026465 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026466 )
26467 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026468 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026469 if (_n == _children_capacity) {
26470 _children_capacity *= 2;
26471 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26472 if (!_new_children) {
26473 p->error_indicator = 1;
26474 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026475 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026476 return NULL;
26477 }
26478 _children = _new_children;
26479 }
26480 _children[_n++] = _res;
26481 _mark = p->mark;
26482 }
26483 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026484 D(fprintf(stderr, "%*c%s _loop1_75[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026485 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026486 }
26487 if (_n == 0 || p->error_indicator) {
26488 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026489 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026490 return NULL;
26491 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026492 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026493 if (!_seq) {
26494 PyMem_Free(_children);
26495 p->error_indicator = 1;
26496 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026497 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026498 return NULL;
26499 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026500 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026501 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026502 _PyPegen_insert_memo(p, _start_mark, _loop1_75_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026503 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026504 return _seq;
26505}
26506
Brandt Bucher145bf262021-02-26 14:51:55 -080026507// _loop1_76: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026508static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026509_loop1_76_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026510{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026511 if (p->level++ == MAXSTACK) {
26512 p->error_indicator = 1;
26513 PyErr_NoMemory();
26514 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026515 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026516 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026517 return NULL;
26518 }
26519 void *_res = NULL;
26520 int _mark = p->mark;
26521 int _start_mark = p->mark;
26522 void **_children = PyMem_Malloc(sizeof(void *));
26523 if (!_children) {
26524 p->error_indicator = 1;
26525 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026526 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026527 return NULL;
26528 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026529 Py_ssize_t _children_capacity = 1;
26530 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026531 { // param_no_default
26532 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026533 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026534 return NULL;
26535 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026536 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 +010026537 arg_ty param_no_default_var;
26538 while (
26539 (param_no_default_var = param_no_default_rule(p)) // param_no_default
26540 )
26541 {
26542 _res = param_no_default_var;
26543 if (_n == _children_capacity) {
26544 _children_capacity *= 2;
26545 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26546 if (!_new_children) {
26547 p->error_indicator = 1;
26548 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026549 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026550 return NULL;
26551 }
26552 _children = _new_children;
26553 }
26554 _children[_n++] = _res;
26555 _mark = p->mark;
26556 }
26557 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026558 D(fprintf(stderr, "%*c%s _loop1_76[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026559 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
26560 }
26561 if (_n == 0 || p->error_indicator) {
26562 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026563 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026564 return NULL;
26565 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026566 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026567 if (!_seq) {
26568 PyMem_Free(_children);
26569 p->error_indicator = 1;
26570 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026571 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026572 return NULL;
26573 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026574 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026575 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026576 _PyPegen_insert_memo(p, _start_mark, _loop1_76_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026577 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026578 return _seq;
26579}
26580
Brandt Bucher145bf262021-02-26 14:51:55 -080026581// _loop1_77: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026582static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026583_loop1_77_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026584{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026585 if (p->level++ == MAXSTACK) {
26586 p->error_indicator = 1;
26587 PyErr_NoMemory();
26588 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026589 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026590 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026591 return NULL;
26592 }
26593 void *_res = NULL;
26594 int _mark = p->mark;
26595 int _start_mark = p->mark;
26596 void **_children = PyMem_Malloc(sizeof(void *));
26597 if (!_children) {
26598 p->error_indicator = 1;
26599 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026600 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026601 return NULL;
26602 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026603 Py_ssize_t _children_capacity = 1;
26604 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026605 { // param_no_default
26606 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026607 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026608 return NULL;
26609 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026610 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 +010026611 arg_ty param_no_default_var;
26612 while (
26613 (param_no_default_var = param_no_default_rule(p)) // param_no_default
26614 )
26615 {
26616 _res = param_no_default_var;
26617 if (_n == _children_capacity) {
26618 _children_capacity *= 2;
26619 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26620 if (!_new_children) {
26621 p->error_indicator = 1;
26622 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026623 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026624 return NULL;
26625 }
26626 _children = _new_children;
26627 }
26628 _children[_n++] = _res;
26629 _mark = p->mark;
26630 }
26631 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026632 D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026633 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
26634 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026635 if (_n == 0 || p->error_indicator) {
26636 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026637 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026638 return NULL;
26639 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026640 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026641 if (!_seq) {
26642 PyMem_Free(_children);
26643 p->error_indicator = 1;
26644 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026645 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026646 return NULL;
26647 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026648 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026649 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026650 _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026651 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026652 return _seq;
26653}
26654
Brandt Bucher145bf262021-02-26 14:51:55 -080026655// _loop0_78: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026656static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026657_loop0_78_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026658{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026659 if (p->level++ == MAXSTACK) {
26660 p->error_indicator = 1;
26661 PyErr_NoMemory();
26662 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026663 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026664 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026665 return NULL;
26666 }
26667 void *_res = NULL;
26668 int _mark = p->mark;
26669 int _start_mark = p->mark;
26670 void **_children = PyMem_Malloc(sizeof(void *));
26671 if (!_children) {
26672 p->error_indicator = 1;
26673 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026674 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026675 return NULL;
26676 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026677 Py_ssize_t _children_capacity = 1;
26678 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026679 { // param_no_default
26680 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026681 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026682 return NULL;
26683 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026684 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 +010026685 arg_ty param_no_default_var;
26686 while (
26687 (param_no_default_var = param_no_default_rule(p)) // param_no_default
26688 )
26689 {
26690 _res = param_no_default_var;
26691 if (_n == _children_capacity) {
26692 _children_capacity *= 2;
26693 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26694 if (!_new_children) {
26695 p->error_indicator = 1;
26696 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026697 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026698 return NULL;
26699 }
26700 _children = _new_children;
26701 }
26702 _children[_n++] = _res;
26703 _mark = p->mark;
26704 }
26705 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026706 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026707 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
26708 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026709 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026710 if (!_seq) {
26711 PyMem_Free(_children);
26712 p->error_indicator = 1;
26713 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026714 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026715 return NULL;
26716 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026717 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026718 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026719 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026720 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026721 return _seq;
26722}
26723
Brandt Bucher145bf262021-02-26 14:51:55 -080026724// _loop1_79: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026725static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026726_loop1_79_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026727{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026728 if (p->level++ == MAXSTACK) {
26729 p->error_indicator = 1;
26730 PyErr_NoMemory();
26731 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026732 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026733 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026734 return NULL;
26735 }
26736 void *_res = NULL;
26737 int _mark = p->mark;
26738 int _start_mark = p->mark;
26739 void **_children = PyMem_Malloc(sizeof(void *));
26740 if (!_children) {
26741 p->error_indicator = 1;
26742 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026743 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026744 return NULL;
26745 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026746 Py_ssize_t _children_capacity = 1;
26747 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026748 { // param_with_default
26749 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026750 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026751 return NULL;
26752 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026753 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 +010026754 NameDefaultPair* param_with_default_var;
26755 while (
26756 (param_with_default_var = param_with_default_rule(p)) // param_with_default
26757 )
26758 {
26759 _res = param_with_default_var;
26760 if (_n == _children_capacity) {
26761 _children_capacity *= 2;
26762 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26763 if (!_new_children) {
26764 p->error_indicator = 1;
26765 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026766 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026767 return NULL;
26768 }
26769 _children = _new_children;
26770 }
26771 _children[_n++] = _res;
26772 _mark = p->mark;
26773 }
26774 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026775 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026776 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
26777 }
26778 if (_n == 0 || p->error_indicator) {
26779 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026780 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026781 return NULL;
26782 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026783 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026784 if (!_seq) {
26785 PyMem_Free(_children);
26786 p->error_indicator = 1;
26787 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026788 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026789 return NULL;
26790 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026791 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026792 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026793 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026794 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026795 return _seq;
26796}
26797
Brandt Bucher145bf262021-02-26 14:51:55 -080026798// _loop0_80: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026799static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026800_loop0_80_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026801{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026802 if (p->level++ == MAXSTACK) {
26803 p->error_indicator = 1;
26804 PyErr_NoMemory();
26805 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026806 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026807 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026808 return NULL;
26809 }
26810 void *_res = NULL;
26811 int _mark = p->mark;
26812 int _start_mark = p->mark;
26813 void **_children = PyMem_Malloc(sizeof(void *));
26814 if (!_children) {
26815 p->error_indicator = 1;
26816 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026817 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026818 return NULL;
26819 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026820 Py_ssize_t _children_capacity = 1;
26821 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026822 { // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026823 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026824 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026825 return NULL;
26826 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026827 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 +030026828 arg_ty param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026829 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026830 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026831 )
26832 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026833 _res = param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026834 if (_n == _children_capacity) {
26835 _children_capacity *= 2;
26836 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26837 if (!_new_children) {
26838 p->error_indicator = 1;
26839 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026840 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026841 return NULL;
26842 }
26843 _children = _new_children;
26844 }
26845 _children[_n++] = _res;
26846 _mark = p->mark;
26847 }
26848 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026849 D(fprintf(stderr, "%*c%s _loop0_80[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026850 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026851 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026852 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026853 if (!_seq) {
26854 PyMem_Free(_children);
26855 p->error_indicator = 1;
26856 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026857 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026858 return NULL;
26859 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026860 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026861 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026862 _PyPegen_insert_memo(p, _start_mark, _loop0_80_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026863 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026864 return _seq;
26865}
26866
Brandt Bucher145bf262021-02-26 14:51:55 -080026867// _loop1_81: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026868static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026869_loop1_81_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026870{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026871 if (p->level++ == MAXSTACK) {
26872 p->error_indicator = 1;
26873 PyErr_NoMemory();
26874 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026875 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026876 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026877 return NULL;
26878 }
26879 void *_res = NULL;
26880 int _mark = p->mark;
26881 int _start_mark = p->mark;
26882 void **_children = PyMem_Malloc(sizeof(void *));
26883 if (!_children) {
26884 p->error_indicator = 1;
26885 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026886 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026887 return NULL;
26888 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026889 Py_ssize_t _children_capacity = 1;
26890 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026891 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026892 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026893 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026894 return NULL;
26895 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026896 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 +030026897 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026898 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026899 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026900 )
26901 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026902 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026903 if (_n == _children_capacity) {
26904 _children_capacity *= 2;
26905 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26906 if (!_new_children) {
26907 p->error_indicator = 1;
26908 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026909 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026910 return NULL;
26911 }
26912 _children = _new_children;
26913 }
26914 _children[_n++] = _res;
26915 _mark = p->mark;
26916 }
26917 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026918 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026919 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026920 }
26921 if (_n == 0 || p->error_indicator) {
26922 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026923 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026924 return NULL;
26925 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026926 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026927 if (!_seq) {
26928 PyMem_Free(_children);
26929 p->error_indicator = 1;
26930 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026931 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026932 return NULL;
26933 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026934 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026935 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026936 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026937 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026938 return _seq;
26939}
26940
Brandt Bucher145bf262021-02-26 14:51:55 -080026941// _loop0_82: param_maybe_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026942static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026943_loop0_82_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026944{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026945 if (p->level++ == MAXSTACK) {
26946 p->error_indicator = 1;
26947 PyErr_NoMemory();
26948 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026949 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026950 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026951 return NULL;
26952 }
26953 void *_res = NULL;
26954 int _mark = p->mark;
26955 int _start_mark = p->mark;
26956 void **_children = PyMem_Malloc(sizeof(void *));
26957 if (!_children) {
26958 p->error_indicator = 1;
26959 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026960 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026961 return NULL;
26962 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026963 Py_ssize_t _children_capacity = 1;
26964 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026965 { // param_maybe_default
26966 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026967 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026968 return NULL;
26969 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026970 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 +030026971 NameDefaultPair* param_maybe_default_var;
26972 while (
26973 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
26974 )
26975 {
26976 _res = param_maybe_default_var;
26977 if (_n == _children_capacity) {
26978 _children_capacity *= 2;
26979 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26980 if (!_new_children) {
26981 p->error_indicator = 1;
26982 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000026983 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026984 return NULL;
26985 }
26986 _children = _new_children;
26987 }
26988 _children[_n++] = _res;
26989 _mark = p->mark;
26990 }
26991 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026992 D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
26994 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026995 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026996 if (!_seq) {
26997 PyMem_Free(_children);
26998 p->error_indicator = 1;
26999 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027000 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027001 return NULL;
27002 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027003 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027004 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027005 _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027006 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027007 return _seq;
27008}
27009
Brandt Bucher145bf262021-02-26 14:51:55 -080027010// _loop1_83: param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027011static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027012_loop1_83_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027013{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027014 if (p->level++ == MAXSTACK) {
27015 p->error_indicator = 1;
27016 PyErr_NoMemory();
27017 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027018 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027019 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027020 return NULL;
27021 }
27022 void *_res = NULL;
27023 int _mark = p->mark;
27024 int _start_mark = p->mark;
27025 void **_children = PyMem_Malloc(sizeof(void *));
27026 if (!_children) {
27027 p->error_indicator = 1;
27028 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027029 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027030 return NULL;
27031 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027032 Py_ssize_t _children_capacity = 1;
27033 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027034 { // param_maybe_default
27035 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027036 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027037 return NULL;
27038 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027039 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 +030027040 NameDefaultPair* param_maybe_default_var;
27041 while (
27042 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
27043 )
27044 {
27045 _res = param_maybe_default_var;
27046 if (_n == _children_capacity) {
27047 _children_capacity *= 2;
27048 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27049 if (!_new_children) {
27050 p->error_indicator = 1;
27051 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027052 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027053 return NULL;
27054 }
27055 _children = _new_children;
27056 }
27057 _children[_n++] = _res;
27058 _mark = p->mark;
27059 }
27060 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027061 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
27063 }
27064 if (_n == 0 || p->error_indicator) {
27065 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027066 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027067 return NULL;
27068 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027069 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027070 if (!_seq) {
27071 PyMem_Free(_children);
27072 p->error_indicator = 1;
27073 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027074 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027075 return NULL;
27076 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027077 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027078 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027079 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027080 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027081 return _seq;
27082}
27083
Brandt Bucher145bf262021-02-26 14:51:55 -080027084// _loop1_84: ('@' named_expression NEWLINE)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027085static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027086_loop1_84_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027087{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027088 if (p->level++ == MAXSTACK) {
27089 p->error_indicator = 1;
27090 PyErr_NoMemory();
27091 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027092 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027093 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027094 return NULL;
27095 }
27096 void *_res = NULL;
27097 int _mark = p->mark;
27098 int _start_mark = p->mark;
27099 void **_children = PyMem_Malloc(sizeof(void *));
27100 if (!_children) {
27101 p->error_indicator = 1;
27102 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027103 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027104 return NULL;
27105 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027106 Py_ssize_t _children_capacity = 1;
27107 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027108 { // ('@' named_expression NEWLINE)
27109 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027110 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027111 return NULL;
27112 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027113 D(fprintf(stderr, "%*c> _loop1_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000027114 void *_tmp_184_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027115 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000027116 (_tmp_184_var = _tmp_184_rule(p)) // '@' named_expression NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027117 )
27118 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000027119 _res = _tmp_184_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027120 if (_n == _children_capacity) {
27121 _children_capacity *= 2;
27122 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27123 if (!_new_children) {
27124 p->error_indicator = 1;
27125 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027126 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027127 return NULL;
27128 }
27129 _children = _new_children;
27130 }
27131 _children[_n++] = _res;
27132 _mark = p->mark;
27133 }
27134 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027135 D(fprintf(stderr, "%*c%s _loop1_84[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027136 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
27137 }
27138 if (_n == 0 || p->error_indicator) {
27139 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027140 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027141 return NULL;
27142 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027143 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027144 if (!_seq) {
27145 PyMem_Free(_children);
27146 p->error_indicator = 1;
27147 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027148 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027149 return NULL;
27150 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027151 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027152 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027153 _PyPegen_insert_memo(p, _start_mark, _loop1_84_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027154 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027155 return _seq;
27156}
27157
Brandt Bucher145bf262021-02-26 14:51:55 -080027158// _tmp_85: '(' arguments? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027159static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027160_tmp_85_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027161{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027162 if (p->level++ == MAXSTACK) {
27163 p->error_indicator = 1;
27164 PyErr_NoMemory();
27165 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027166 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027167 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027168 return NULL;
27169 }
27170 void * _res = NULL;
27171 int _mark = p->mark;
27172 { // '(' arguments? ')'
27173 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027174 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027175 return NULL;
27176 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027177 D(fprintf(stderr, "%*c> _tmp_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027178 Token * _literal;
27179 Token * _literal_1;
27180 void *z;
27181 if (
27182 (_literal = _PyPegen_expect_token(p, 7)) // token='('
27183 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020027184 (z = arguments_rule(p), !p->error_indicator) // arguments?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027185 &&
27186 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
27187 )
27188 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027189 D(fprintf(stderr, "%*c+ _tmp_85[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027190 _res = z;
27191 if (_res == NULL && PyErr_Occurred()) {
27192 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027193 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027194 return NULL;
27195 }
27196 goto done;
27197 }
27198 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027199 D(fprintf(stderr, "%*c%s _tmp_85[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027200 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
27201 }
27202 _res = NULL;
27203 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027204 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027205 return _res;
27206}
27207
Brandt Bucher145bf262021-02-26 14:51:55 -080027208// _loop1_86: (',' star_expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027209static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027210_loop1_86_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027211{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027212 if (p->level++ == MAXSTACK) {
27213 p->error_indicator = 1;
27214 PyErr_NoMemory();
27215 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027216 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027217 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027218 return NULL;
27219 }
27220 void *_res = NULL;
27221 int _mark = p->mark;
27222 int _start_mark = p->mark;
27223 void **_children = PyMem_Malloc(sizeof(void *));
27224 if (!_children) {
27225 p->error_indicator = 1;
27226 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027227 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027228 return NULL;
27229 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027230 Py_ssize_t _children_capacity = 1;
27231 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027232 { // (',' star_expression)
27233 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027234 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027235 return NULL;
27236 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027237 D(fprintf(stderr, "%*c> _loop1_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000027238 void *_tmp_185_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027239 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000027240 (_tmp_185_var = _tmp_185_rule(p)) // ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027241 )
27242 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000027243 _res = _tmp_185_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027244 if (_n == _children_capacity) {
27245 _children_capacity *= 2;
27246 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27247 if (!_new_children) {
27248 p->error_indicator = 1;
27249 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027250 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027251 return NULL;
27252 }
27253 _children = _new_children;
27254 }
27255 _children[_n++] = _res;
27256 _mark = p->mark;
27257 }
27258 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027259 D(fprintf(stderr, "%*c%s _loop1_86[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027260 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
27261 }
27262 if (_n == 0 || p->error_indicator) {
27263 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027264 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027265 return NULL;
27266 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027267 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027268 if (!_seq) {
27269 PyMem_Free(_children);
27270 p->error_indicator = 1;
27271 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027272 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027273 return NULL;
27274 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027275 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027276 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027277 _PyPegen_insert_memo(p, _start_mark, _loop1_86_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027278 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027279 return _seq;
27280}
27281
Brandt Bucher145bf262021-02-26 14:51:55 -080027282// _loop0_88: ',' star_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027283static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027284_loop0_88_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027285{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027286 if (p->level++ == MAXSTACK) {
27287 p->error_indicator = 1;
27288 PyErr_NoMemory();
27289 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027290 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027291 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027292 return NULL;
27293 }
27294 void *_res = NULL;
27295 int _mark = p->mark;
27296 int _start_mark = p->mark;
27297 void **_children = PyMem_Malloc(sizeof(void *));
27298 if (!_children) {
27299 p->error_indicator = 1;
27300 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027301 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027302 return NULL;
27303 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027304 Py_ssize_t _children_capacity = 1;
27305 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027306 { // ',' star_named_expression
27307 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027308 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027309 return NULL;
27310 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027311 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 +010027312 Token * _literal;
27313 expr_ty elem;
27314 while (
27315 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27316 &&
27317 (elem = star_named_expression_rule(p)) // star_named_expression
27318 )
27319 {
27320 _res = elem;
27321 if (_res == NULL && PyErr_Occurred()) {
27322 p->error_indicator = 1;
27323 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027324 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027325 return NULL;
27326 }
27327 if (_n == _children_capacity) {
27328 _children_capacity *= 2;
27329 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27330 if (!_new_children) {
27331 p->error_indicator = 1;
27332 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027333 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027334 return NULL;
27335 }
27336 _children = _new_children;
27337 }
27338 _children[_n++] = _res;
27339 _mark = p->mark;
27340 }
27341 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027342 D(fprintf(stderr, "%*c%s _loop0_88[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027343 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
27344 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027345 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027346 if (!_seq) {
27347 PyMem_Free(_children);
27348 p->error_indicator = 1;
27349 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027350 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027351 return NULL;
27352 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027353 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027354 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027355 _PyPegen_insert_memo(p, _start_mark, _loop0_88_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027356 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027357 return _seq;
27358}
27359
Brandt Bucher145bf262021-02-26 14:51:55 -080027360// _gather_87: star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027361static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027362_gather_87_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027363{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027364 if (p->level++ == MAXSTACK) {
27365 p->error_indicator = 1;
27366 PyErr_NoMemory();
27367 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027368 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027369 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027370 return NULL;
27371 }
27372 asdl_seq * _res = NULL;
27373 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027374 { // star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027375 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027376 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027377 return NULL;
27378 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027379 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 +010027380 expr_ty elem;
27381 asdl_seq * seq;
27382 if (
27383 (elem = star_named_expression_rule(p)) // star_named_expression
27384 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027385 (seq = _loop0_88_rule(p)) // _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027386 )
27387 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027388 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 +010027389 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27390 goto done;
27391 }
27392 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027393 D(fprintf(stderr, "%*c%s _gather_87[%d-%d]: %s failed!\n", p->level, ' ',
27394 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_88"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027395 }
27396 _res = NULL;
27397 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027398 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027399 return _res;
27400}
27401
Brandt Bucher145bf262021-02-26 14:51:55 -080027402// _loop1_89: (',' expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027403static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027404_loop1_89_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027405{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027406 if (p->level++ == MAXSTACK) {
27407 p->error_indicator = 1;
27408 PyErr_NoMemory();
27409 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027410 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027411 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027412 return NULL;
27413 }
27414 void *_res = NULL;
27415 int _mark = p->mark;
27416 int _start_mark = p->mark;
27417 void **_children = PyMem_Malloc(sizeof(void *));
27418 if (!_children) {
27419 p->error_indicator = 1;
27420 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027421 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027422 return NULL;
27423 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027424 Py_ssize_t _children_capacity = 1;
27425 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027426 { // (',' expression)
27427 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027428 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027429 return NULL;
27430 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027431 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000027432 void *_tmp_186_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027433 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000027434 (_tmp_186_var = _tmp_186_rule(p)) // ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027435 )
27436 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000027437 _res = _tmp_186_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027438 if (_n == _children_capacity) {
27439 _children_capacity *= 2;
27440 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27441 if (!_new_children) {
27442 p->error_indicator = 1;
27443 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027444 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027445 return NULL;
27446 }
27447 _children = _new_children;
27448 }
27449 _children[_n++] = _res;
27450 _mark = p->mark;
27451 }
27452 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027453 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027454 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
27455 }
27456 if (_n == 0 || p->error_indicator) {
27457 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027458 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027459 return NULL;
27460 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027461 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027462 if (!_seq) {
27463 PyMem_Free(_children);
27464 p->error_indicator = 1;
27465 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027466 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027467 return NULL;
27468 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027469 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027470 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027471 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027472 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027473 return _seq;
27474}
27475
Brandt Bucher145bf262021-02-26 14:51:55 -080027476// _loop0_90: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027477static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027478_loop0_90_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027479{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027480 if (p->level++ == MAXSTACK) {
27481 p->error_indicator = 1;
27482 PyErr_NoMemory();
27483 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027484 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027485 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027486 return NULL;
27487 }
27488 void *_res = NULL;
27489 int _mark = p->mark;
27490 int _start_mark = p->mark;
27491 void **_children = PyMem_Malloc(sizeof(void *));
27492 if (!_children) {
27493 p->error_indicator = 1;
27494 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027495 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027496 return NULL;
27497 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027498 Py_ssize_t _children_capacity = 1;
27499 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027500 { // lambda_param_no_default
27501 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027502 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027503 return NULL;
27504 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027505 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 +010027506 arg_ty lambda_param_no_default_var;
27507 while (
27508 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
27509 )
27510 {
27511 _res = lambda_param_no_default_var;
27512 if (_n == _children_capacity) {
27513 _children_capacity *= 2;
27514 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27515 if (!_new_children) {
27516 p->error_indicator = 1;
27517 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027518 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027519 return NULL;
27520 }
27521 _children = _new_children;
27522 }
27523 _children[_n++] = _res;
27524 _mark = p->mark;
27525 }
27526 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027527 D(fprintf(stderr, "%*c%s _loop0_90[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027528 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027529 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027530 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027531 if (!_seq) {
27532 PyMem_Free(_children);
27533 p->error_indicator = 1;
27534 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027535 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027536 return NULL;
27537 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027538 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027539 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027540 _PyPegen_insert_memo(p, _start_mark, _loop0_90_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027541 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027542 return _seq;
27543}
27544
Brandt Bucher145bf262021-02-26 14:51:55 -080027545// _loop0_91: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027546static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027547_loop0_91_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027548{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027549 if (p->level++ == MAXSTACK) {
27550 p->error_indicator = 1;
27551 PyErr_NoMemory();
27552 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027553 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027554 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027555 return NULL;
27556 }
27557 void *_res = NULL;
27558 int _mark = p->mark;
27559 int _start_mark = p->mark;
27560 void **_children = PyMem_Malloc(sizeof(void *));
27561 if (!_children) {
27562 p->error_indicator = 1;
27563 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027564 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027565 return NULL;
27566 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027567 Py_ssize_t _children_capacity = 1;
27568 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027569 { // lambda_param_with_default
27570 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027571 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027572 return NULL;
27573 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027574 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 +010027575 NameDefaultPair* lambda_param_with_default_var;
27576 while (
27577 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
27578 )
27579 {
27580 _res = lambda_param_with_default_var;
27581 if (_n == _children_capacity) {
27582 _children_capacity *= 2;
27583 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27584 if (!_new_children) {
27585 p->error_indicator = 1;
27586 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027587 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027588 return NULL;
27589 }
27590 _children = _new_children;
27591 }
27592 _children[_n++] = _res;
27593 _mark = p->mark;
27594 }
27595 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027596 D(fprintf(stderr, "%*c%s _loop0_91[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
27598 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027599 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027600 if (!_seq) {
27601 PyMem_Free(_children);
27602 p->error_indicator = 1;
27603 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027604 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027605 return NULL;
27606 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027607 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027608 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027609 _PyPegen_insert_memo(p, _start_mark, _loop0_91_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027610 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027611 return _seq;
27612}
27613
Brandt Bucher145bf262021-02-26 14:51:55 -080027614// _loop0_92: lambda_param_with_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027615static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027616_loop0_92_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027617{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027618 if (p->level++ == MAXSTACK) {
27619 p->error_indicator = 1;
27620 PyErr_NoMemory();
27621 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027622 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027623 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027624 return NULL;
27625 }
27626 void *_res = NULL;
27627 int _mark = p->mark;
27628 int _start_mark = p->mark;
27629 void **_children = PyMem_Malloc(sizeof(void *));
27630 if (!_children) {
27631 p->error_indicator = 1;
27632 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027633 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027634 return NULL;
27635 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027636 Py_ssize_t _children_capacity = 1;
27637 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027638 { // lambda_param_with_default
27639 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027640 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027641 return NULL;
27642 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027643 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 +000027644 NameDefaultPair* lambda_param_with_default_var;
27645 while (
27646 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
27647 )
27648 {
27649 _res = lambda_param_with_default_var;
27650 if (_n == _children_capacity) {
27651 _children_capacity *= 2;
27652 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27653 if (!_new_children) {
27654 p->error_indicator = 1;
27655 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027656 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027657 return NULL;
27658 }
27659 _children = _new_children;
27660 }
27661 _children[_n++] = _res;
27662 _mark = p->mark;
27663 }
27664 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027665 D(fprintf(stderr, "%*c%s _loop0_92[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027666 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
27667 }
27668 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27669 if (!_seq) {
27670 PyMem_Free(_children);
27671 p->error_indicator = 1;
27672 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027673 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027674 return NULL;
27675 }
27676 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27677 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027678 _PyPegen_insert_memo(p, _start_mark, _loop0_92_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027679 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027680 return _seq;
27681}
27682
Brandt Bucher145bf262021-02-26 14:51:55 -080027683// _loop1_93: lambda_param_no_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027684static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027685_loop1_93_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027686{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027687 if (p->level++ == MAXSTACK) {
27688 p->error_indicator = 1;
27689 PyErr_NoMemory();
27690 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027691 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027692 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027693 return NULL;
27694 }
27695 void *_res = NULL;
27696 int _mark = p->mark;
27697 int _start_mark = p->mark;
27698 void **_children = PyMem_Malloc(sizeof(void *));
27699 if (!_children) {
27700 p->error_indicator = 1;
27701 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027702 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027703 return NULL;
27704 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027705 Py_ssize_t _children_capacity = 1;
27706 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027707 { // lambda_param_no_default
27708 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027709 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027710 return NULL;
27711 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027712 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 +000027713 arg_ty lambda_param_no_default_var;
27714 while (
27715 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
27716 )
27717 {
27718 _res = lambda_param_no_default_var;
27719 if (_n == _children_capacity) {
27720 _children_capacity *= 2;
27721 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27722 if (!_new_children) {
27723 p->error_indicator = 1;
27724 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027725 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027726 return NULL;
27727 }
27728 _children = _new_children;
27729 }
27730 _children[_n++] = _res;
27731 _mark = p->mark;
27732 }
27733 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027734 D(fprintf(stderr, "%*c%s _loop1_93[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027735 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
27736 }
27737 if (_n == 0 || p->error_indicator) {
27738 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027739 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027740 return NULL;
27741 }
27742 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27743 if (!_seq) {
27744 PyMem_Free(_children);
27745 p->error_indicator = 1;
27746 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027747 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027748 return NULL;
27749 }
27750 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27751 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027752 _PyPegen_insert_memo(p, _start_mark, _loop1_93_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027753 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027754 return _seq;
27755}
27756
Brandt Bucher145bf262021-02-26 14:51:55 -080027757// _loop0_94: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027758static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027759_loop0_94_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027760{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027761 if (p->level++ == MAXSTACK) {
27762 p->error_indicator = 1;
27763 PyErr_NoMemory();
27764 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027765 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027766 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027767 return NULL;
27768 }
27769 void *_res = NULL;
27770 int _mark = p->mark;
27771 int _start_mark = p->mark;
27772 void **_children = PyMem_Malloc(sizeof(void *));
27773 if (!_children) {
27774 p->error_indicator = 1;
27775 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027776 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027777 return NULL;
27778 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027779 Py_ssize_t _children_capacity = 1;
27780 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027781 { // lambda_param_with_default
27782 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027783 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027784 return NULL;
27785 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027786 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 +030027787 NameDefaultPair* lambda_param_with_default_var;
27788 while (
27789 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
27790 )
27791 {
27792 _res = lambda_param_with_default_var;
27793 if (_n == _children_capacity) {
27794 _children_capacity *= 2;
27795 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27796 if (!_new_children) {
27797 p->error_indicator = 1;
27798 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027799 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027800 return NULL;
27801 }
27802 _children = _new_children;
27803 }
27804 _children[_n++] = _res;
27805 _mark = p->mark;
27806 }
27807 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027808 D(fprintf(stderr, "%*c%s _loop0_94[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027809 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
27810 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027811 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027812 if (!_seq) {
27813 PyMem_Free(_children);
27814 p->error_indicator = 1;
27815 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027816 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027817 return NULL;
27818 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027819 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027820 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027821 _PyPegen_insert_memo(p, _start_mark, _loop0_94_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027822 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027823 return _seq;
27824}
27825
Brandt Bucher145bf262021-02-26 14:51:55 -080027826// _loop1_95: lambda_param_with_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027827static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027828_loop1_95_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027829{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027830 if (p->level++ == MAXSTACK) {
27831 p->error_indicator = 1;
27832 PyErr_NoMemory();
27833 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027834 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027835 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027836 return NULL;
27837 }
27838 void *_res = NULL;
27839 int _mark = p->mark;
27840 int _start_mark = p->mark;
27841 void **_children = PyMem_Malloc(sizeof(void *));
27842 if (!_children) {
27843 p->error_indicator = 1;
27844 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027845 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027846 return NULL;
27847 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027848 Py_ssize_t _children_capacity = 1;
27849 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027850 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027851 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027852 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027853 return NULL;
27854 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027855 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 +000027856 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027857 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027858 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027859 )
27860 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027861 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027862 if (_n == _children_capacity) {
27863 _children_capacity *= 2;
27864 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27865 if (!_new_children) {
27866 p->error_indicator = 1;
27867 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027868 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027869 return NULL;
27870 }
27871 _children = _new_children;
27872 }
27873 _children[_n++] = _res;
27874 _mark = p->mark;
27875 }
27876 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027877 D(fprintf(stderr, "%*c%s _loop1_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027879 }
27880 if (_n == 0 || p->error_indicator) {
27881 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027882 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027883 return NULL;
27884 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027885 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027886 if (!_seq) {
27887 PyMem_Free(_children);
27888 p->error_indicator = 1;
27889 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027890 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027891 return NULL;
27892 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027893 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027894 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027895 _PyPegen_insert_memo(p, _start_mark, _loop1_95_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027896 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027897 return _seq;
27898}
27899
Brandt Bucher145bf262021-02-26 14:51:55 -080027900// _loop1_96: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027901static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027902_loop1_96_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027903{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027904 if (p->level++ == MAXSTACK) {
27905 p->error_indicator = 1;
27906 PyErr_NoMemory();
27907 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027908 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027909 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027910 return NULL;
27911 }
27912 void *_res = NULL;
27913 int _mark = p->mark;
27914 int _start_mark = p->mark;
27915 void **_children = PyMem_Malloc(sizeof(void *));
27916 if (!_children) {
27917 p->error_indicator = 1;
27918 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027919 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027920 return NULL;
27921 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027922 Py_ssize_t _children_capacity = 1;
27923 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027924 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027925 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027926 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027927 return NULL;
27928 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027929 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 +000027930 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027931 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027932 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027933 )
27934 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027935 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027936 if (_n == _children_capacity) {
27937 _children_capacity *= 2;
27938 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27939 if (!_new_children) {
27940 p->error_indicator = 1;
27941 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027942 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027943 return NULL;
27944 }
27945 _children = _new_children;
27946 }
27947 _children[_n++] = _res;
27948 _mark = p->mark;
27949 }
27950 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027951 D(fprintf(stderr, "%*c%s _loop1_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027952 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
27953 }
27954 if (_n == 0 || p->error_indicator) {
27955 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027956 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027957 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027958 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027959 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027960 if (!_seq) {
27961 PyMem_Free(_children);
27962 p->error_indicator = 1;
27963 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027964 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027965 return NULL;
27966 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027967 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027968 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027969 _PyPegen_insert_memo(p, _start_mark, _loop1_96_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027970 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027971 return _seq;
27972}
27973
Brandt Bucher145bf262021-02-26 14:51:55 -080027974// _loop1_97: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027975static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027976_loop1_97_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027977{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027978 if (p->level++ == MAXSTACK) {
27979 p->error_indicator = 1;
27980 PyErr_NoMemory();
27981 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027982 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027983 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027984 return NULL;
27985 }
27986 void *_res = NULL;
27987 int _mark = p->mark;
27988 int _start_mark = p->mark;
27989 void **_children = PyMem_Malloc(sizeof(void *));
27990 if (!_children) {
27991 p->error_indicator = 1;
27992 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000027993 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027994 return NULL;
27995 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027996 Py_ssize_t _children_capacity = 1;
27997 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027998 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027999 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028000 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028001 return NULL;
28002 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028003 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 +000028004 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028005 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028006 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028007 )
28008 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028009 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028010 if (_n == _children_capacity) {
28011 _children_capacity *= 2;
28012 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28013 if (!_new_children) {
28014 p->error_indicator = 1;
28015 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028016 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028017 return NULL;
28018 }
28019 _children = _new_children;
28020 }
28021 _children[_n++] = _res;
28022 _mark = p->mark;
28023 }
28024 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028025 D(fprintf(stderr, "%*c%s _loop1_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028026 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028027 }
28028 if (_n == 0 || p->error_indicator) {
28029 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028030 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028031 return NULL;
28032 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028033 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028034 if (!_seq) {
28035 PyMem_Free(_children);
28036 p->error_indicator = 1;
28037 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028038 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028039 return NULL;
28040 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028041 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028042 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028043 _PyPegen_insert_memo(p, _start_mark, _loop1_97_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028044 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028045 return _seq;
28046}
28047
Brandt Bucher145bf262021-02-26 14:51:55 -080028048// _loop0_98: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028049static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028050_loop0_98_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028051{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028052 if (p->level++ == MAXSTACK) {
28053 p->error_indicator = 1;
28054 PyErr_NoMemory();
28055 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028056 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028057 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028058 return NULL;
28059 }
28060 void *_res = NULL;
28061 int _mark = p->mark;
28062 int _start_mark = p->mark;
28063 void **_children = PyMem_Malloc(sizeof(void *));
28064 if (!_children) {
28065 p->error_indicator = 1;
28066 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028067 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028068 return NULL;
28069 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028070 Py_ssize_t _children_capacity = 1;
28071 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028072 { // lambda_param_no_default
28073 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028074 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028075 return NULL;
28076 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028077 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 +010028078 arg_ty lambda_param_no_default_var;
28079 while (
28080 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
28081 )
28082 {
28083 _res = lambda_param_no_default_var;
28084 if (_n == _children_capacity) {
28085 _children_capacity *= 2;
28086 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28087 if (!_new_children) {
28088 p->error_indicator = 1;
28089 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028090 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028091 return NULL;
28092 }
28093 _children = _new_children;
28094 }
28095 _children[_n++] = _res;
28096 _mark = p->mark;
28097 }
28098 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028099 D(fprintf(stderr, "%*c%s _loop0_98[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028100 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
28101 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028102 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028103 if (!_seq) {
28104 PyMem_Free(_children);
28105 p->error_indicator = 1;
28106 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028107 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028108 return NULL;
28109 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028110 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028111 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028112 _PyPegen_insert_memo(p, _start_mark, _loop0_98_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028113 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028114 return _seq;
28115}
28116
Brandt Bucher145bf262021-02-26 14:51:55 -080028117// _loop1_99: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028118static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028119_loop1_99_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028120{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028121 if (p->level++ == MAXSTACK) {
28122 p->error_indicator = 1;
28123 PyErr_NoMemory();
28124 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028125 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028126 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028127 return NULL;
28128 }
28129 void *_res = NULL;
28130 int _mark = p->mark;
28131 int _start_mark = p->mark;
28132 void **_children = PyMem_Malloc(sizeof(void *));
28133 if (!_children) {
28134 p->error_indicator = 1;
28135 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028136 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028137 return NULL;
28138 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028139 Py_ssize_t _children_capacity = 1;
28140 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028141 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028142 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028143 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028144 return NULL;
28145 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028146 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 +000028147 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028148 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028149 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028150 )
28151 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028152 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028153 if (_n == _children_capacity) {
28154 _children_capacity *= 2;
28155 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28156 if (!_new_children) {
28157 p->error_indicator = 1;
28158 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028159 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028160 return NULL;
28161 }
28162 _children = _new_children;
28163 }
28164 _children[_n++] = _res;
28165 _mark = p->mark;
28166 }
28167 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028168 D(fprintf(stderr, "%*c%s _loop1_99[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028170 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028171 if (_n == 0 || p->error_indicator) {
28172 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028173 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028174 return NULL;
28175 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028176 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028177 if (!_seq) {
28178 PyMem_Free(_children);
28179 p->error_indicator = 1;
28180 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028181 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028182 return NULL;
28183 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028184 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028185 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028186 _PyPegen_insert_memo(p, _start_mark, _loop1_99_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028187 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028188 return _seq;
28189}
28190
Brandt Bucher145bf262021-02-26 14:51:55 -080028191// _loop0_100: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028192static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028193_loop0_100_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028194{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028195 if (p->level++ == MAXSTACK) {
28196 p->error_indicator = 1;
28197 PyErr_NoMemory();
28198 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028199 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028200 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028201 return NULL;
28202 }
28203 void *_res = NULL;
28204 int _mark = p->mark;
28205 int _start_mark = p->mark;
28206 void **_children = PyMem_Malloc(sizeof(void *));
28207 if (!_children) {
28208 p->error_indicator = 1;
28209 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028210 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028211 return NULL;
28212 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028213 Py_ssize_t _children_capacity = 1;
28214 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028215 { // lambda_param_no_default
28216 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028217 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028218 return NULL;
28219 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028220 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 +010028221 arg_ty lambda_param_no_default_var;
28222 while (
28223 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
28224 )
28225 {
28226 _res = lambda_param_no_default_var;
28227 if (_n == _children_capacity) {
28228 _children_capacity *= 2;
28229 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28230 if (!_new_children) {
28231 p->error_indicator = 1;
28232 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028233 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028234 return NULL;
28235 }
28236 _children = _new_children;
28237 }
28238 _children[_n++] = _res;
28239 _mark = p->mark;
28240 }
28241 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028242 D(fprintf(stderr, "%*c%s _loop0_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028243 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
28244 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028245 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028246 if (!_seq) {
28247 PyMem_Free(_children);
28248 p->error_indicator = 1;
28249 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028250 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028251 return NULL;
28252 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028253 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028254 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028255 _PyPegen_insert_memo(p, _start_mark, _loop0_100_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028256 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028257 return _seq;
28258}
28259
Brandt Bucher145bf262021-02-26 14:51:55 -080028260// _loop1_101: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028261static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028262_loop1_101_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028263{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028264 if (p->level++ == MAXSTACK) {
28265 p->error_indicator = 1;
28266 PyErr_NoMemory();
28267 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028268 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028269 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028270 return NULL;
28271 }
28272 void *_res = NULL;
28273 int _mark = p->mark;
28274 int _start_mark = p->mark;
28275 void **_children = PyMem_Malloc(sizeof(void *));
28276 if (!_children) {
28277 p->error_indicator = 1;
28278 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028279 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028280 return NULL;
28281 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028282 Py_ssize_t _children_capacity = 1;
28283 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028284 { // lambda_param_with_default
28285 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028286 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028287 return NULL;
28288 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028289 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 +010028290 NameDefaultPair* lambda_param_with_default_var;
28291 while (
28292 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
28293 )
28294 {
28295 _res = lambda_param_with_default_var;
28296 if (_n == _children_capacity) {
28297 _children_capacity *= 2;
28298 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28299 if (!_new_children) {
28300 p->error_indicator = 1;
28301 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028302 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028303 return NULL;
28304 }
28305 _children = _new_children;
28306 }
28307 _children[_n++] = _res;
28308 _mark = p->mark;
28309 }
28310 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028311 D(fprintf(stderr, "%*c%s _loop1_101[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028312 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
28313 }
28314 if (_n == 0 || p->error_indicator) {
28315 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028316 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028317 return NULL;
28318 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028319 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028320 if (!_seq) {
28321 PyMem_Free(_children);
28322 p->error_indicator = 1;
28323 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028324 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028325 return NULL;
28326 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028327 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028328 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028329 _PyPegen_insert_memo(p, _start_mark, _loop1_101_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028330 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028331 return _seq;
28332}
28333
Brandt Bucher145bf262021-02-26 14:51:55 -080028334// _loop0_102: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028335static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028336_loop0_102_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028337{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028338 if (p->level++ == MAXSTACK) {
28339 p->error_indicator = 1;
28340 PyErr_NoMemory();
28341 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028342 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028343 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028344 return NULL;
28345 }
28346 void *_res = NULL;
28347 int _mark = p->mark;
28348 int _start_mark = p->mark;
28349 void **_children = PyMem_Malloc(sizeof(void *));
28350 if (!_children) {
28351 p->error_indicator = 1;
28352 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028353 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028354 return NULL;
28355 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028356 Py_ssize_t _children_capacity = 1;
28357 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028358 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028359 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028360 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028361 return NULL;
28362 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028363 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 +000028364 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028365 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028366 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028367 )
28368 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028369 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028370 if (_n == _children_capacity) {
28371 _children_capacity *= 2;
28372 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28373 if (!_new_children) {
28374 p->error_indicator = 1;
28375 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028376 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028377 return NULL;
28378 }
28379 _children = _new_children;
28380 }
28381 _children[_n++] = _res;
28382 _mark = p->mark;
28383 }
28384 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028385 D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028386 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028387 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028388 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028389 if (!_seq) {
28390 PyMem_Free(_children);
28391 p->error_indicator = 1;
28392 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028393 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028394 return NULL;
28395 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028396 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028397 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028398 _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028399 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028400 return _seq;
28401}
28402
Brandt Bucher145bf262021-02-26 14:51:55 -080028403// _loop1_103: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028404static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028405_loop1_103_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028406{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028407 if (p->level++ == MAXSTACK) {
28408 p->error_indicator = 1;
28409 PyErr_NoMemory();
28410 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028411 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028412 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028413 return NULL;
28414 }
28415 void *_res = NULL;
28416 int _mark = p->mark;
28417 int _start_mark = p->mark;
28418 void **_children = PyMem_Malloc(sizeof(void *));
28419 if (!_children) {
28420 p->error_indicator = 1;
28421 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028422 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028423 return NULL;
28424 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028425 Py_ssize_t _children_capacity = 1;
28426 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028427 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028428 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028429 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028430 return NULL;
28431 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028432 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 +000028433 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028434 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028435 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028436 )
28437 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028438 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028439 if (_n == _children_capacity) {
28440 _children_capacity *= 2;
28441 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28442 if (!_new_children) {
28443 p->error_indicator = 1;
28444 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028445 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028446 return NULL;
28447 }
28448 _children = _new_children;
28449 }
28450 _children[_n++] = _res;
28451 _mark = p->mark;
28452 }
28453 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028454 D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028455 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028456 }
28457 if (_n == 0 || p->error_indicator) {
28458 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028459 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028460 return NULL;
28461 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028462 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028463 if (!_seq) {
28464 PyMem_Free(_children);
28465 p->error_indicator = 1;
28466 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028467 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028468 return NULL;
28469 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028470 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028471 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028472 _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028473 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028474 return _seq;
28475}
28476
Brandt Bucher145bf262021-02-26 14:51:55 -080028477// _loop1_104: ('or' conjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028478static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028479_loop1_104_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028480{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028481 if (p->level++ == MAXSTACK) {
28482 p->error_indicator = 1;
28483 PyErr_NoMemory();
28484 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028485 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028486 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028487 return NULL;
28488 }
28489 void *_res = NULL;
28490 int _mark = p->mark;
28491 int _start_mark = p->mark;
28492 void **_children = PyMem_Malloc(sizeof(void *));
28493 if (!_children) {
28494 p->error_indicator = 1;
28495 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028496 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028497 return NULL;
28498 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028499 Py_ssize_t _children_capacity = 1;
28500 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028501 { // ('or' conjunction)
28502 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028503 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028504 return NULL;
28505 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028506 D(fprintf(stderr, "%*c> _loop1_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000028507 void *_tmp_187_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028508 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000028509 (_tmp_187_var = _tmp_187_rule(p)) // 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028510 )
28511 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000028512 _res = _tmp_187_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028513 if (_n == _children_capacity) {
28514 _children_capacity *= 2;
28515 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28516 if (!_new_children) {
28517 p->error_indicator = 1;
28518 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028519 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028520 return NULL;
28521 }
28522 _children = _new_children;
28523 }
28524 _children[_n++] = _res;
28525 _mark = p->mark;
28526 }
28527 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028528 D(fprintf(stderr, "%*c%s _loop1_104[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028529 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
28530 }
28531 if (_n == 0 || p->error_indicator) {
28532 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028533 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028534 return NULL;
28535 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028536 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028537 if (!_seq) {
28538 PyMem_Free(_children);
28539 p->error_indicator = 1;
28540 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028541 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028542 return NULL;
28543 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028544 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028545 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028546 _PyPegen_insert_memo(p, _start_mark, _loop1_104_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028547 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028548 return _seq;
28549}
28550
Brandt Bucher145bf262021-02-26 14:51:55 -080028551// _loop1_105: ('and' inversion)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028552static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028553_loop1_105_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028554{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028555 if (p->level++ == MAXSTACK) {
28556 p->error_indicator = 1;
28557 PyErr_NoMemory();
28558 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028559 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028560 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028561 return NULL;
28562 }
28563 void *_res = NULL;
28564 int _mark = p->mark;
28565 int _start_mark = p->mark;
28566 void **_children = PyMem_Malloc(sizeof(void *));
28567 if (!_children) {
28568 p->error_indicator = 1;
28569 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028570 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028571 return NULL;
28572 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028573 Py_ssize_t _children_capacity = 1;
28574 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028575 { // ('and' inversion)
28576 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028577 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028578 return NULL;
28579 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028580 D(fprintf(stderr, "%*c> _loop1_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000028581 void *_tmp_188_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028582 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000028583 (_tmp_188_var = _tmp_188_rule(p)) // 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028584 )
28585 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000028586 _res = _tmp_188_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028587 if (_n == _children_capacity) {
28588 _children_capacity *= 2;
28589 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28590 if (!_new_children) {
28591 p->error_indicator = 1;
28592 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028593 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028594 return NULL;
28595 }
28596 _children = _new_children;
28597 }
28598 _children[_n++] = _res;
28599 _mark = p->mark;
28600 }
28601 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028602 D(fprintf(stderr, "%*c%s _loop1_105[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
28604 }
28605 if (_n == 0 || p->error_indicator) {
28606 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028607 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028608 return NULL;
28609 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028610 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028611 if (!_seq) {
28612 PyMem_Free(_children);
28613 p->error_indicator = 1;
28614 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028615 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028616 return NULL;
28617 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028618 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028619 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028620 _PyPegen_insert_memo(p, _start_mark, _loop1_105_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028621 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028622 return _seq;
28623}
28624
Brandt Bucher145bf262021-02-26 14:51:55 -080028625// _loop1_106: compare_op_bitwise_or_pair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028626static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028627_loop1_106_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028628{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028629 if (p->level++ == MAXSTACK) {
28630 p->error_indicator = 1;
28631 PyErr_NoMemory();
28632 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028633 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028634 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028635 return NULL;
28636 }
28637 void *_res = NULL;
28638 int _mark = p->mark;
28639 int _start_mark = p->mark;
28640 void **_children = PyMem_Malloc(sizeof(void *));
28641 if (!_children) {
28642 p->error_indicator = 1;
28643 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028644 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028645 return NULL;
28646 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028647 Py_ssize_t _children_capacity = 1;
28648 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028649 { // compare_op_bitwise_or_pair
28650 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028651 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028652 return NULL;
28653 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028654 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 +010028655 CmpopExprPair* compare_op_bitwise_or_pair_var;
28656 while (
28657 (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
28658 )
28659 {
28660 _res = compare_op_bitwise_or_pair_var;
28661 if (_n == _children_capacity) {
28662 _children_capacity *= 2;
28663 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28664 if (!_new_children) {
28665 p->error_indicator = 1;
28666 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028667 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028668 return NULL;
28669 }
28670 _children = _new_children;
28671 }
28672 _children[_n++] = _res;
28673 _mark = p->mark;
28674 }
28675 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028676 D(fprintf(stderr, "%*c%s _loop1_106[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
28678 }
28679 if (_n == 0 || p->error_indicator) {
28680 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028681 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028682 return NULL;
28683 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028684 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028685 if (!_seq) {
28686 PyMem_Free(_children);
28687 p->error_indicator = 1;
28688 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028689 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028690 return NULL;
28691 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028692 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028693 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028694 _PyPegen_insert_memo(p, _start_mark, _loop1_106_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028695 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028696 return _seq;
28697}
28698
Brandt Bucher145bf262021-02-26 14:51:55 -080028699// _tmp_107: '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028700static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028701_tmp_107_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028702{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028703 if (p->level++ == MAXSTACK) {
28704 p->error_indicator = 1;
28705 PyErr_NoMemory();
28706 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028707 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028708 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028709 return NULL;
28710 }
28711 void * _res = NULL;
28712 int _mark = p->mark;
28713 { // '!='
28714 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028715 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028716 return NULL;
28717 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028718 D(fprintf(stderr, "%*c> _tmp_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028719 Token * tok;
28720 if (
28721 (tok = _PyPegen_expect_token(p, 28)) // token='!='
28722 )
28723 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028724 D(fprintf(stderr, "%*c+ _tmp_107[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo06f8c332020-10-30 23:48:42 +000028725 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028726 if (_res == NULL && PyErr_Occurred()) {
28727 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028728 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028729 return NULL;
28730 }
28731 goto done;
28732 }
28733 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028734 D(fprintf(stderr, "%*c%s _tmp_107[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028735 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
28736 }
28737 _res = NULL;
28738 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028739 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028740 return _res;
28741}
28742
Brandt Bucher145bf262021-02-26 14:51:55 -080028743// _loop0_109: ',' slice
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028744static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028745_loop0_109_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028746{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028747 if (p->level++ == MAXSTACK) {
28748 p->error_indicator = 1;
28749 PyErr_NoMemory();
28750 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028751 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028752 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028753 return NULL;
28754 }
28755 void *_res = NULL;
28756 int _mark = p->mark;
28757 int _start_mark = p->mark;
28758 void **_children = PyMem_Malloc(sizeof(void *));
28759 if (!_children) {
28760 p->error_indicator = 1;
28761 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028762 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028763 return NULL;
28764 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028765 Py_ssize_t _children_capacity = 1;
28766 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028767 { // ',' slice
28768 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028769 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028770 return NULL;
28771 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028772 D(fprintf(stderr, "%*c> _loop0_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028773 Token * _literal;
28774 expr_ty elem;
28775 while (
28776 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28777 &&
28778 (elem = slice_rule(p)) // slice
28779 )
28780 {
28781 _res = elem;
28782 if (_res == NULL && PyErr_Occurred()) {
28783 p->error_indicator = 1;
28784 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028785 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028786 return NULL;
28787 }
28788 if (_n == _children_capacity) {
28789 _children_capacity *= 2;
28790 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28791 if (!_new_children) {
28792 p->error_indicator = 1;
28793 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028794 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028795 return NULL;
28796 }
28797 _children = _new_children;
28798 }
28799 _children[_n++] = _res;
28800 _mark = p->mark;
28801 }
28802 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028803 D(fprintf(stderr, "%*c%s _loop0_109[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028804 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
28805 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028806 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028807 if (!_seq) {
28808 PyMem_Free(_children);
28809 p->error_indicator = 1;
28810 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028811 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028812 return NULL;
28813 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028814 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028815 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028816 _PyPegen_insert_memo(p, _start_mark, _loop0_109_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028817 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028818 return _seq;
28819}
28820
Brandt Bucher145bf262021-02-26 14:51:55 -080028821// _gather_108: slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028822static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028823_gather_108_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028824{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028825 if (p->level++ == MAXSTACK) {
28826 p->error_indicator = 1;
28827 PyErr_NoMemory();
28828 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028829 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028830 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028831 return NULL;
28832 }
28833 asdl_seq * _res = NULL;
28834 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028835 { // slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028836 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028837 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028838 return NULL;
28839 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028840 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 +010028841 expr_ty elem;
28842 asdl_seq * seq;
28843 if (
28844 (elem = slice_rule(p)) // slice
28845 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028846 (seq = _loop0_109_rule(p)) // _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028847 )
28848 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028849 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 +010028850 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28851 goto done;
28852 }
28853 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028854 D(fprintf(stderr, "%*c%s _gather_108[%d-%d]: %s failed!\n", p->level, ' ',
28855 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_109"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028856 }
28857 _res = NULL;
28858 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028859 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028860 return _res;
28861}
28862
Brandt Bucher145bf262021-02-26 14:51:55 -080028863// _tmp_110: ':' expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028864static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028865_tmp_110_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028866{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028867 if (p->level++ == MAXSTACK) {
28868 p->error_indicator = 1;
28869 PyErr_NoMemory();
28870 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028871 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028872 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028873 return NULL;
28874 }
28875 void * _res = NULL;
28876 int _mark = p->mark;
28877 { // ':' expression?
28878 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028879 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028880 return NULL;
28881 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028882 D(fprintf(stderr, "%*c> _tmp_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028883 Token * _literal;
28884 void *d;
28885 if (
28886 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
28887 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020028888 (d = expression_rule(p), !p->error_indicator) // expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028889 )
28890 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028891 D(fprintf(stderr, "%*c+ _tmp_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028892 _res = d;
28893 if (_res == NULL && PyErr_Occurred()) {
28894 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028895 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028896 return NULL;
28897 }
28898 goto done;
28899 }
28900 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028901 D(fprintf(stderr, "%*c%s _tmp_110[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028902 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
28903 }
28904 _res = NULL;
28905 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028906 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028907 return _res;
28908}
28909
Brandt Bucher145bf262021-02-26 14:51:55 -080028910// _tmp_111: tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028911static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028912_tmp_111_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028913{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028914 if (p->level++ == MAXSTACK) {
28915 p->error_indicator = 1;
28916 PyErr_NoMemory();
28917 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028918 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028919 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028920 return NULL;
28921 }
28922 void * _res = NULL;
28923 int _mark = p->mark;
28924 { // tuple
28925 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028926 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028927 return NULL;
28928 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028929 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028930 expr_ty tuple_var;
28931 if (
28932 (tuple_var = tuple_rule(p)) // tuple
28933 )
28934 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028935 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028936 _res = tuple_var;
28937 goto done;
28938 }
28939 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028940 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028941 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
28942 }
28943 { // group
28944 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028945 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028946 return NULL;
28947 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028948 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028949 expr_ty group_var;
28950 if (
28951 (group_var = group_rule(p)) // group
28952 )
28953 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028954 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028955 _res = group_var;
28956 goto done;
28957 }
28958 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028959 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028960 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
28961 }
28962 { // genexp
28963 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028964 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028965 return NULL;
28966 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028967 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028968 expr_ty genexp_var;
28969 if (
28970 (genexp_var = genexp_rule(p)) // genexp
28971 )
28972 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028973 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028974 _res = genexp_var;
28975 goto done;
28976 }
28977 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028978 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028979 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
28980 }
28981 _res = NULL;
28982 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028983 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028984 return _res;
28985}
28986
Brandt Bucher145bf262021-02-26 14:51:55 -080028987// _tmp_112: list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028988static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028989_tmp_112_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028990{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028991 if (p->level++ == MAXSTACK) {
28992 p->error_indicator = 1;
28993 PyErr_NoMemory();
28994 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028995 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000028996 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028997 return NULL;
28998 }
28999 void * _res = NULL;
29000 int _mark = p->mark;
29001 { // list
29002 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029003 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029004 return NULL;
29005 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029006 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029007 expr_ty list_var;
29008 if (
29009 (list_var = list_rule(p)) // list
29010 )
29011 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029012 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029013 _res = list_var;
29014 goto done;
29015 }
29016 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029017 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029018 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
29019 }
29020 { // listcomp
29021 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029022 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029023 return NULL;
29024 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029025 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029026 expr_ty listcomp_var;
29027 if (
29028 (listcomp_var = listcomp_rule(p)) // listcomp
29029 )
29030 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029031 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029032 _res = listcomp_var;
29033 goto done;
29034 }
29035 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029036 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
29038 }
29039 _res = NULL;
29040 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029041 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029042 return _res;
29043}
29044
Brandt Bucher145bf262021-02-26 14:51:55 -080029045// _tmp_113: dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029046static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080029047_tmp_113_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029048{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029049 if (p->level++ == MAXSTACK) {
29050 p->error_indicator = 1;
29051 PyErr_NoMemory();
29052 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029053 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029054 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029055 return NULL;
29056 }
29057 void * _res = NULL;
29058 int _mark = p->mark;
29059 { // dict
29060 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029061 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029062 return NULL;
29063 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029064 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029065 expr_ty dict_var;
29066 if (
29067 (dict_var = dict_rule(p)) // dict
29068 )
29069 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029070 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029071 _res = dict_var;
29072 goto done;
29073 }
29074 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029075 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029076 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
29077 }
29078 { // set
29079 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029080 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029081 return NULL;
29082 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029083 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029084 expr_ty set_var;
29085 if (
29086 (set_var = set_rule(p)) // set
29087 )
29088 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029089 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029090 _res = set_var;
29091 goto done;
29092 }
29093 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029094 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029095 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
29096 }
29097 { // dictcomp
29098 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029099 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029100 return NULL;
29101 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029102 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029103 expr_ty dictcomp_var;
29104 if (
29105 (dictcomp_var = dictcomp_rule(p)) // dictcomp
29106 )
29107 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029108 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029109 _res = dictcomp_var;
29110 goto done;
29111 }
29112 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029113 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029114 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
29115 }
29116 { // setcomp
29117 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029118 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029119 return NULL;
29120 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029121 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029122 expr_ty setcomp_var;
29123 if (
29124 (setcomp_var = setcomp_rule(p)) // setcomp
29125 )
29126 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029127 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029128 _res = setcomp_var;
29129 goto done;
29130 }
29131 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029132 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
29134 }
29135 _res = NULL;
29136 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029137 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029138 return _res;
29139}
29140
Brandt Bucher145bf262021-02-26 14:51:55 -080029141// _loop1_114: STRING
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029142static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080029143_loop1_114_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029144{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029145 if (p->level++ == MAXSTACK) {
29146 p->error_indicator = 1;
29147 PyErr_NoMemory();
29148 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029149 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029150 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029151 return NULL;
29152 }
29153 void *_res = NULL;
29154 int _mark = p->mark;
29155 int _start_mark = p->mark;
29156 void **_children = PyMem_Malloc(sizeof(void *));
29157 if (!_children) {
29158 p->error_indicator = 1;
29159 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029160 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029161 return NULL;
29162 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029163 Py_ssize_t _children_capacity = 1;
29164 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029165 { // STRING
29166 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029167 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029168 return NULL;
29169 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029170 D(fprintf(stderr, "%*c> _loop1_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029171 expr_ty string_var;
29172 while (
29173 (string_var = _PyPegen_string_token(p)) // STRING
29174 )
29175 {
29176 _res = string_var;
29177 if (_n == _children_capacity) {
29178 _children_capacity *= 2;
29179 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29180 if (!_new_children) {
29181 p->error_indicator = 1;
29182 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029183 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029184 return NULL;
29185 }
29186 _children = _new_children;
29187 }
29188 _children[_n++] = _res;
29189 _mark = p->mark;
29190 }
29191 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029192 D(fprintf(stderr, "%*c%s _loop1_114[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029193 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
29194 }
29195 if (_n == 0 || p->error_indicator) {
29196 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029197 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029198 return NULL;
29199 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029200 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029201 if (!_seq) {
29202 PyMem_Free(_children);
29203 p->error_indicator = 1;
29204 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029205 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029206 return NULL;
29207 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029208 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029209 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080029210 _PyPegen_insert_memo(p, _start_mark, _loop1_114_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029211 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029212 return _seq;
29213}
29214
Brandt Bucher145bf262021-02-26 14:51:55 -080029215// _tmp_115: star_named_expression ',' star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029216static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080029217_tmp_115_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029218{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029219 if (p->level++ == MAXSTACK) {
29220 p->error_indicator = 1;
29221 PyErr_NoMemory();
29222 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029223 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029224 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029225 return NULL;
29226 }
29227 void * _res = NULL;
29228 int _mark = p->mark;
29229 { // star_named_expression ',' star_named_expressions?
29230 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029231 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029232 return NULL;
29233 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029234 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 +010029235 Token * _literal;
29236 expr_ty y;
29237 void *z;
29238 if (
29239 (y = star_named_expression_rule(p)) // star_named_expression
29240 &&
29241 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29242 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020029243 (z = star_named_expressions_rule(p), !p->error_indicator) // star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029244 )
29245 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029246 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 +010029247 _res = _PyPegen_seq_insert_in_front ( p , y , z );
29248 if (_res == NULL && PyErr_Occurred()) {
29249 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029250 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029251 return NULL;
29252 }
29253 goto done;
29254 }
29255 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029256 D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029257 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
29258 }
29259 _res = NULL;
29260 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029261 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029262 return _res;
29263}
29264
Brandt Bucher145bf262021-02-26 14:51:55 -080029265// _tmp_116: yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029266static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080029267_tmp_116_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029268{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029269 if (p->level++ == MAXSTACK) {
29270 p->error_indicator = 1;
29271 PyErr_NoMemory();
29272 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029273 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029274 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029275 return NULL;
29276 }
29277 void * _res = NULL;
29278 int _mark = p->mark;
29279 { // yield_expr
29280 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029281 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029282 return NULL;
29283 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029284 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029285 expr_ty yield_expr_var;
29286 if (
29287 (yield_expr_var = yield_expr_rule(p)) // yield_expr
29288 )
29289 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029290 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 +010029291 _res = yield_expr_var;
29292 goto done;
29293 }
29294 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029295 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029296 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
29297 }
29298 { // named_expression
29299 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029300 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029301 return NULL;
29302 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029303 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029304 expr_ty named_expression_var;
29305 if (
29306 (named_expression_var = named_expression_rule(p)) // named_expression
29307 )
29308 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029309 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 +010029310 _res = named_expression_var;
29311 goto done;
29312 }
29313 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029314 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029315 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
29316 }
29317 _res = NULL;
29318 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029319 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029320 return _res;
29321}
29322
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000029323// _tmp_117: assignment_expression | expression !':='
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029324static void *
29325_tmp_117_rule(Parser *p)
29326{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029327 if (p->level++ == MAXSTACK) {
29328 p->error_indicator = 1;
29329 PyErr_NoMemory();
29330 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029331 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029332 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029333 return NULL;
29334 }
29335 void * _res = NULL;
29336 int _mark = p->mark;
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000029337 { // assignment_expression
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029338 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029339 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029340 return NULL;
29341 }
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000029342 D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
29343 expr_ty assignment_expression_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029344 if (
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000029345 (assignment_expression_var = assignment_expression_rule(p)) // assignment_expression
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029346 )
29347 {
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000029348 D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
29349 _res = assignment_expression_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029350 goto done;
29351 }
29352 p->mark = _mark;
29353 D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000029354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029355 }
29356 { // expression !':='
29357 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029358 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029359 return NULL;
29360 }
29361 D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
29362 expr_ty expression_var;
29363 if (
29364 (expression_var = expression_rule(p)) // expression
29365 &&
29366 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
29367 )
29368 {
29369 D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
29370 _res = expression_var;
29371 goto done;
29372 }
29373 p->mark = _mark;
29374 D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ',
29375 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
29376 }
29377 _res = NULL;
29378 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029379 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029380 return _res;
29381}
29382
29383// _loop0_119: ',' double_starred_kvpair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029384static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029385_loop0_119_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029386{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029387 if (p->level++ == MAXSTACK) {
29388 p->error_indicator = 1;
29389 PyErr_NoMemory();
29390 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029391 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029392 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029393 return NULL;
29394 }
29395 void *_res = NULL;
29396 int _mark = p->mark;
29397 int _start_mark = p->mark;
29398 void **_children = PyMem_Malloc(sizeof(void *));
29399 if (!_children) {
29400 p->error_indicator = 1;
29401 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029402 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029403 return NULL;
29404 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029405 Py_ssize_t _children_capacity = 1;
29406 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029407 { // ',' double_starred_kvpair
29408 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029409 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029410 return NULL;
29411 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029412 D(fprintf(stderr, "%*c> _loop0_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029413 Token * _literal;
29414 KeyValuePair* elem;
29415 while (
29416 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29417 &&
29418 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
29419 )
29420 {
29421 _res = elem;
29422 if (_res == NULL && PyErr_Occurred()) {
29423 p->error_indicator = 1;
29424 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029425 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029426 return NULL;
29427 }
29428 if (_n == _children_capacity) {
29429 _children_capacity *= 2;
29430 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29431 if (!_new_children) {
29432 p->error_indicator = 1;
29433 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029434 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029435 return NULL;
29436 }
29437 _children = _new_children;
29438 }
29439 _children[_n++] = _res;
29440 _mark = p->mark;
29441 }
29442 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029443 D(fprintf(stderr, "%*c%s _loop0_119[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029444 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
29445 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029446 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029447 if (!_seq) {
29448 PyMem_Free(_children);
29449 p->error_indicator = 1;
29450 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029451 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029452 return NULL;
29453 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029454 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029455 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029456 _PyPegen_insert_memo(p, _start_mark, _loop0_119_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029457 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029458 return _seq;
29459}
29460
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029461// _gather_118: double_starred_kvpair _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029462static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029463_gather_118_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029464{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029465 if (p->level++ == MAXSTACK) {
29466 p->error_indicator = 1;
29467 PyErr_NoMemory();
29468 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029469 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029470 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029471 return NULL;
29472 }
29473 asdl_seq * _res = NULL;
29474 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029475 { // double_starred_kvpair _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029476 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029477 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029478 return NULL;
29479 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029480 D(fprintf(stderr, "%*c> _gather_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_119"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029481 KeyValuePair* elem;
29482 asdl_seq * seq;
29483 if (
29484 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
29485 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029486 (seq = _loop0_119_rule(p)) // _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029487 )
29488 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029489 D(fprintf(stderr, "%*c+ _gather_118[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_119"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029490 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29491 goto done;
29492 }
29493 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029494 D(fprintf(stderr, "%*c%s _gather_118[%d-%d]: %s failed!\n", p->level, ' ',
29495 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_119"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029496 }
29497 _res = NULL;
29498 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029499 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029500 return _res;
29501}
29502
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029503// _loop1_120: for_if_clause
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029504static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029505_loop1_120_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029506{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029507 if (p->level++ == MAXSTACK) {
29508 p->error_indicator = 1;
29509 PyErr_NoMemory();
29510 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029511 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029512 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029513 return NULL;
29514 }
29515 void *_res = NULL;
29516 int _mark = p->mark;
29517 int _start_mark = p->mark;
29518 void **_children = PyMem_Malloc(sizeof(void *));
29519 if (!_children) {
29520 p->error_indicator = 1;
29521 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029522 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029523 return NULL;
29524 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029525 Py_ssize_t _children_capacity = 1;
29526 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029527 { // for_if_clause
29528 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029529 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029530 return NULL;
29531 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029532 D(fprintf(stderr, "%*c> _loop1_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029533 comprehension_ty for_if_clause_var;
29534 while (
29535 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
29536 )
29537 {
29538 _res = for_if_clause_var;
29539 if (_n == _children_capacity) {
29540 _children_capacity *= 2;
29541 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29542 if (!_new_children) {
29543 p->error_indicator = 1;
29544 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029545 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029546 return NULL;
29547 }
29548 _children = _new_children;
29549 }
29550 _children[_n++] = _res;
29551 _mark = p->mark;
29552 }
29553 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029554 D(fprintf(stderr, "%*c%s _loop1_120[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
29556 }
29557 if (_n == 0 || p->error_indicator) {
29558 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029559 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029560 return NULL;
29561 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029562 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029563 if (!_seq) {
29564 PyMem_Free(_children);
29565 p->error_indicator = 1;
29566 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029567 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029568 return NULL;
29569 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029570 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029571 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029572 _PyPegen_insert_memo(p, _start_mark, _loop1_120_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029573 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029574 return _seq;
29575}
29576
Brandt Bucher145bf262021-02-26 14:51:55 -080029577// _loop0_121: ('if' disjunction)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029578static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080029579_loop0_121_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029580{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029581 if (p->level++ == MAXSTACK) {
29582 p->error_indicator = 1;
29583 PyErr_NoMemory();
29584 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029585 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029586 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029587 return NULL;
29588 }
29589 void *_res = NULL;
29590 int _mark = p->mark;
29591 int _start_mark = p->mark;
29592 void **_children = PyMem_Malloc(sizeof(void *));
29593 if (!_children) {
29594 p->error_indicator = 1;
29595 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029596 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029597 return NULL;
29598 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029599 Py_ssize_t _children_capacity = 1;
29600 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029601 { // ('if' disjunction)
29602 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029603 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029604 return NULL;
29605 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029606 D(fprintf(stderr, "%*c> _loop0_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029607 void *_tmp_189_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029608 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029609 (_tmp_189_var = _tmp_189_rule(p)) // 'if' disjunction
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029610 )
29611 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029612 _res = _tmp_189_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029613 if (_n == _children_capacity) {
29614 _children_capacity *= 2;
29615 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29616 if (!_new_children) {
29617 p->error_indicator = 1;
29618 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029619 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029620 return NULL;
29621 }
29622 _children = _new_children;
29623 }
29624 _children[_n++] = _res;
29625 _mark = p->mark;
29626 }
29627 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029628 D(fprintf(stderr, "%*c%s _loop0_121[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029629 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
29630 }
29631 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29632 if (!_seq) {
29633 PyMem_Free(_children);
29634 p->error_indicator = 1;
29635 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029636 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029637 return NULL;
29638 }
29639 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29640 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080029641 _PyPegen_insert_memo(p, _start_mark, _loop0_121_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029642 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029643 return _seq;
29644}
29645
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029646// _loop0_122: ('if' disjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030029647static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029648_loop0_122_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029649{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029650 if (p->level++ == MAXSTACK) {
29651 p->error_indicator = 1;
29652 PyErr_NoMemory();
29653 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029654 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029655 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029656 return NULL;
29657 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030029658 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029659 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030029660 int _start_mark = p->mark;
29661 void **_children = PyMem_Malloc(sizeof(void *));
29662 if (!_children) {
29663 p->error_indicator = 1;
29664 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029665 p->level--;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030029666 return NULL;
29667 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029668 Py_ssize_t _children_capacity = 1;
29669 Py_ssize_t _n = 0;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029670 { // ('if' disjunction)
Pablo Galindo4a97b152020-09-02 17:44:19 +010029671 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029672 p->level--;
Pablo Galindo4a97b152020-09-02 17:44:19 +010029673 return NULL;
29674 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029675 D(fprintf(stderr, "%*c> _loop0_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029676 void *_tmp_190_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029677 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029678 (_tmp_190_var = _tmp_190_rule(p)) // 'if' disjunction
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029679 )
29680 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029681 _res = _tmp_190_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029682 if (_n == _children_capacity) {
29683 _children_capacity *= 2;
29684 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29685 if (!_new_children) {
29686 p->error_indicator = 1;
29687 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029688 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029689 return NULL;
29690 }
29691 _children = _new_children;
29692 }
29693 _children[_n++] = _res;
29694 _mark = p->mark;
29695 }
29696 p->mark = _mark;
29697 D(fprintf(stderr, "%*c%s _loop0_122[%d-%d]: %s failed!\n", p->level, ' ',
29698 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
29699 }
29700 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29701 if (!_seq) {
29702 PyMem_Free(_children);
29703 p->error_indicator = 1;
29704 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029705 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029706 return NULL;
29707 }
29708 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29709 PyMem_Free(_children);
29710 _PyPegen_insert_memo(p, _start_mark, _loop0_122_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029711 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029712 return _seq;
29713}
29714
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000029715// _loop0_124: ',' (starred_expression | (assignment_expression | expression !':=') !'=')
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029716static asdl_seq *
29717_loop0_124_rule(Parser *p)
29718{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029719 if (p->level++ == MAXSTACK) {
29720 p->error_indicator = 1;
29721 PyErr_NoMemory();
29722 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029723 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029724 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029725 return NULL;
29726 }
29727 void *_res = NULL;
29728 int _mark = p->mark;
29729 int _start_mark = p->mark;
29730 void **_children = PyMem_Malloc(sizeof(void *));
29731 if (!_children) {
29732 p->error_indicator = 1;
29733 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029734 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029735 return NULL;
29736 }
29737 Py_ssize_t _children_capacity = 1;
29738 Py_ssize_t _n = 0;
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000029739 { // ',' (starred_expression | (assignment_expression | expression !':=') !'=')
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029740 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029741 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029742 return NULL;
29743 }
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000029744 D(fprintf(stderr, "%*c> _loop0_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | (assignment_expression | expression !':=') !'=')"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010029745 Token * _literal;
29746 void *elem;
29747 while (
29748 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29749 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029750 (elem = _tmp_191_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029751 )
29752 {
29753 _res = elem;
29754 if (_res == NULL && PyErr_Occurred()) {
29755 p->error_indicator = 1;
29756 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029757 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029758 return NULL;
29759 }
29760 if (_n == _children_capacity) {
29761 _children_capacity *= 2;
29762 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29763 if (!_new_children) {
29764 p->error_indicator = 1;
29765 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029766 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029767 return NULL;
29768 }
29769 _children = _new_children;
29770 }
29771 _children[_n++] = _res;
29772 _mark = p->mark;
29773 }
29774 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029775 D(fprintf(stderr, "%*c%s _loop0_124[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000029776 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | (assignment_expression | expression !':=') !'=')"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029777 }
29778 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29779 if (!_seq) {
29780 PyMem_Free(_children);
29781 p->error_indicator = 1;
29782 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029783 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029784 return NULL;
29785 }
29786 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29787 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029788 _PyPegen_insert_memo(p, _start_mark, _loop0_124_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029789 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029790 return _seq;
29791}
29792
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029793// _gather_123:
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000029794// | (starred_expression | (assignment_expression | expression !':=') !'=') _loop0_124
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029795static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029796_gather_123_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029797{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029798 if (p->level++ == MAXSTACK) {
29799 p->error_indicator = 1;
29800 PyErr_NoMemory();
29801 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029802 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029803 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029804 return NULL;
29805 }
29806 asdl_seq * _res = NULL;
29807 int _mark = p->mark;
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000029808 { // (starred_expression | (assignment_expression | expression !':=') !'=') _loop0_124
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029809 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029810 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029811 return NULL;
29812 }
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000029813 D(fprintf(stderr, "%*c> _gather_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_124"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029814 void *elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029815 asdl_seq * seq;
29816 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000029817 (elem = _tmp_191_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'='
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029818 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029819 (seq = _loop0_124_rule(p)) // _loop0_124
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029820 )
29821 {
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000029822 D(fprintf(stderr, "%*c+ _gather_123[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_124"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029823 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29824 goto done;
29825 }
29826 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029827 D(fprintf(stderr, "%*c%s _gather_123[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000029828 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | (assignment_expression | expression !':=') !'=') _loop0_124"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029829 }
29830 _res = NULL;
29831 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029832 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029833 return _res;
29834}
29835
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029836// _tmp_125: ',' kwargs
Brandt Bucher145bf262021-02-26 14:51:55 -080029837static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029838_tmp_125_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029839{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029840 if (p->level++ == MAXSTACK) {
29841 p->error_indicator = 1;
29842 PyErr_NoMemory();
29843 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029844 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029845 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080029846 return NULL;
29847 }
29848 void * _res = NULL;
29849 int _mark = p->mark;
29850 { // ',' kwargs
29851 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029852 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080029853 return NULL;
29854 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029855 D(fprintf(stderr, "%*c> _tmp_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029856 Token * _literal;
29857 asdl_seq* k;
29858 if (
29859 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29860 &&
29861 (k = kwargs_rule(p)) // kwargs
29862 )
29863 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029864 D(fprintf(stderr, "%*c+ _tmp_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029865 _res = k;
29866 if (_res == NULL && PyErr_Occurred()) {
29867 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029868 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080029869 return NULL;
29870 }
29871 goto done;
29872 }
29873 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029874 D(fprintf(stderr, "%*c%s _tmp_125[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029875 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
29876 }
29877 _res = NULL;
29878 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029879 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080029880 return _res;
29881}
29882
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029883// _loop0_127: ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029884static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029885_loop0_127_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029886{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029887 if (p->level++ == MAXSTACK) {
29888 p->error_indicator = 1;
29889 PyErr_NoMemory();
29890 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029891 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029892 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029893 return NULL;
29894 }
29895 void *_res = NULL;
29896 int _mark = p->mark;
29897 int _start_mark = p->mark;
29898 void **_children = PyMem_Malloc(sizeof(void *));
29899 if (!_children) {
29900 p->error_indicator = 1;
29901 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029902 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029903 return NULL;
29904 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029905 Py_ssize_t _children_capacity = 1;
29906 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029907 { // ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029908 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029909 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029910 return NULL;
29911 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029912 D(fprintf(stderr, "%*c> _loop0_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029913 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080029914 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029915 while (
29916 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29917 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029918 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029919 )
29920 {
29921 _res = elem;
29922 if (_res == NULL && PyErr_Occurred()) {
29923 p->error_indicator = 1;
29924 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029925 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029926 return NULL;
29927 }
29928 if (_n == _children_capacity) {
29929 _children_capacity *= 2;
29930 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29931 if (!_new_children) {
29932 p->error_indicator = 1;
29933 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029934 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029935 return NULL;
29936 }
29937 _children = _new_children;
29938 }
29939 _children[_n++] = _res;
29940 _mark = p->mark;
29941 }
29942 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029943 D(fprintf(stderr, "%*c%s _loop0_127[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029944 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029945 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029946 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029947 if (!_seq) {
29948 PyMem_Free(_children);
29949 p->error_indicator = 1;
29950 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029951 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029952 return NULL;
29953 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029954 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029955 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029956 _PyPegen_insert_memo(p, _start_mark, _loop0_127_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029957 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029958 return _seq;
29959}
29960
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029961// _gather_126: kwarg_or_starred _loop0_127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029962static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029963_gather_126_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029964{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029965 if (p->level++ == MAXSTACK) {
29966 p->error_indicator = 1;
29967 PyErr_NoMemory();
29968 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029969 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029970 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029971 return NULL;
29972 }
29973 asdl_seq * _res = NULL;
29974 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029975 { // kwarg_or_starred _loop0_127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029976 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029977 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029978 return NULL;
29979 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029980 D(fprintf(stderr, "%*c> _gather_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_127"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029981 KeywordOrStarred* elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029982 asdl_seq * seq;
29983 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029984 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029985 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029986 (seq = _loop0_127_rule(p)) // _loop0_127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029987 )
29988 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029989 D(fprintf(stderr, "%*c+ _gather_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_127"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029990 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29991 goto done;
29992 }
29993 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029994 D(fprintf(stderr, "%*c%s _gather_126[%d-%d]: %s failed!\n", p->level, ' ',
29995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_127"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029996 }
29997 _res = NULL;
29998 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000029999 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030000 return _res;
30001}
30002
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030003// _loop0_129: ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000030004static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030005_loop0_129_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000030006{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030007 if (p->level++ == MAXSTACK) {
30008 p->error_indicator = 1;
30009 PyErr_NoMemory();
30010 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000030011 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030012 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000030013 return NULL;
30014 }
30015 void *_res = NULL;
30016 int _mark = p->mark;
30017 int _start_mark = p->mark;
30018 void **_children = PyMem_Malloc(sizeof(void *));
30019 if (!_children) {
30020 p->error_indicator = 1;
30021 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030022 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000030023 return NULL;
30024 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030025 Py_ssize_t _children_capacity = 1;
30026 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030027 { // ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000030028 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030029 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000030030 return NULL;
30031 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030032 D(fprintf(stderr, "%*c> _loop0_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030033 Token * _literal;
30034 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000030035 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080030036 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30037 &&
30038 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000030039 )
30040 {
Brandt Bucher145bf262021-02-26 14:51:55 -080030041 _res = elem;
30042 if (_res == NULL && PyErr_Occurred()) {
30043 p->error_indicator = 1;
30044 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030045 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080030046 return NULL;
30047 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000030048 if (_n == _children_capacity) {
30049 _children_capacity *= 2;
30050 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30051 if (!_new_children) {
30052 p->error_indicator = 1;
30053 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030054 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000030055 return NULL;
30056 }
30057 _children = _new_children;
30058 }
30059 _children[_n++] = _res;
30060 _mark = p->mark;
30061 }
30062 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030063 D(fprintf(stderr, "%*c%s _loop0_129[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030064 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000030065 }
30066 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30067 if (!_seq) {
30068 PyMem_Free(_children);
30069 p->error_indicator = 1;
30070 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030071 p->level--;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000030072 return NULL;
30073 }
30074 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30075 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030076 _PyPegen_insert_memo(p, _start_mark, _loop0_129_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030077 p->level--;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030030078 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030079}
30080
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030081// _gather_128: kwarg_or_double_starred _loop0_129
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020030082static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030083_gather_128_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030084{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030085 if (p->level++ == MAXSTACK) {
30086 p->error_indicator = 1;
30087 PyErr_NoMemory();
30088 }
Brandt Bucher145bf262021-02-26 14:51:55 -080030089 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030090 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080030091 return NULL;
30092 }
30093 asdl_seq * _res = NULL;
30094 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030095 { // kwarg_or_double_starred _loop0_129
Brandt Bucher145bf262021-02-26 14:51:55 -080030096 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030097 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080030098 return NULL;
30099 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030100 D(fprintf(stderr, "%*c> _gather_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_129"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030101 KeywordOrStarred* elem;
30102 asdl_seq * seq;
30103 if (
30104 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
30105 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030106 (seq = _loop0_129_rule(p)) // _loop0_129
Brandt Bucher145bf262021-02-26 14:51:55 -080030107 )
30108 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030109 D(fprintf(stderr, "%*c+ _gather_128[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_129"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030110 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
30111 goto done;
30112 }
30113 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030114 D(fprintf(stderr, "%*c%s _gather_128[%d-%d]: %s failed!\n", p->level, ' ',
30115 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_129"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030116 }
30117 _res = NULL;
30118 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030119 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080030120 return _res;
30121}
30122
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030123// _loop0_131: ',' kwarg_or_starred
Brandt Bucher145bf262021-02-26 14:51:55 -080030124static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030125_loop0_131_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020030126{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030127 if (p->level++ == MAXSTACK) {
30128 p->error_indicator = 1;
30129 PyErr_NoMemory();
30130 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020030131 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030132 p->level--;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020030133 return NULL;
30134 }
30135 void *_res = NULL;
30136 int _mark = p->mark;
30137 int _start_mark = p->mark;
30138 void **_children = PyMem_Malloc(sizeof(void *));
30139 if (!_children) {
30140 p->error_indicator = 1;
30141 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030142 p->level--;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020030143 return NULL;
30144 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030145 Py_ssize_t _children_capacity = 1;
30146 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030147 { // ',' kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020030148 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030149 p->level--;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020030150 return NULL;
30151 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030152 D(fprintf(stderr, "%*c> _loop0_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030153 Token * _literal;
30154 KeywordOrStarred* elem;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020030155 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080030156 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30157 &&
30158 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020030159 )
30160 {
Brandt Bucher145bf262021-02-26 14:51:55 -080030161 _res = elem;
30162 if (_res == NULL && PyErr_Occurred()) {
30163 p->error_indicator = 1;
30164 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030165 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080030166 return NULL;
30167 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020030168 if (_n == _children_capacity) {
30169 _children_capacity *= 2;
30170 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30171 if (!_new_children) {
30172 p->error_indicator = 1;
30173 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030174 p->level--;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020030175 return NULL;
30176 }
30177 _children = _new_children;
30178 }
30179 _children[_n++] = _res;
30180 _mark = p->mark;
30181 }
30182 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030183 D(fprintf(stderr, "%*c%s _loop0_131[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030184 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020030185 }
30186 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30187 if (!_seq) {
30188 PyMem_Free(_children);
30189 p->error_indicator = 1;
30190 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030191 p->level--;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020030192 return NULL;
30193 }
30194 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30195 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030196 _PyPegen_insert_memo(p, _start_mark, _loop0_131_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030197 p->level--;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020030198 return _seq;
30199}
30200
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030201// _gather_130: kwarg_or_starred _loop0_131
Brandt Bucher145bf262021-02-26 14:51:55 -080030202static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030203_gather_130_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030204{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030205 if (p->level++ == MAXSTACK) {
30206 p->error_indicator = 1;
30207 PyErr_NoMemory();
30208 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030209 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030210 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030211 return NULL;
30212 }
Brandt Bucher145bf262021-02-26 14:51:55 -080030213 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030214 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030215 { // kwarg_or_starred _loop0_131
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030216 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030217 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030218 return NULL;
30219 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030220 D(fprintf(stderr, "%*c> _gather_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_131"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030221 KeywordOrStarred* elem;
30222 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030223 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080030224 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
30225 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030226 (seq = _loop0_131_rule(p)) // _loop0_131
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030227 )
30228 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030229 D(fprintf(stderr, "%*c+ _gather_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_131"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030230 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030231 goto done;
30232 }
30233 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030234 D(fprintf(stderr, "%*c%s _gather_130[%d-%d]: %s failed!\n", p->level, ' ',
30235 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_131"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030236 }
30237 _res = NULL;
30238 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030239 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030240 return _res;
30241}
30242
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030243// _loop0_133: ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030244static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000030245_loop0_133_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030246{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030247 if (p->level++ == MAXSTACK) {
30248 p->error_indicator = 1;
30249 PyErr_NoMemory();
30250 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030251 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030252 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030253 return NULL;
30254 }
30255 void *_res = NULL;
30256 int _mark = p->mark;
30257 int _start_mark = p->mark;
30258 void **_children = PyMem_Malloc(sizeof(void *));
30259 if (!_children) {
30260 p->error_indicator = 1;
30261 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030262 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030263 return NULL;
30264 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030265 Py_ssize_t _children_capacity = 1;
30266 Py_ssize_t _n = 0;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030267 { // ',' kwarg_or_double_starred
30268 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030269 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030270 return NULL;
30271 }
30272 D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
30273 Token * _literal;
30274 KeywordOrStarred* elem;
30275 while (
30276 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30277 &&
30278 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
30279 )
30280 {
30281 _res = elem;
30282 if (_res == NULL && PyErr_Occurred()) {
30283 p->error_indicator = 1;
30284 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030285 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030286 return NULL;
30287 }
30288 if (_n == _children_capacity) {
30289 _children_capacity *= 2;
30290 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30291 if (!_new_children) {
30292 p->error_indicator = 1;
30293 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030294 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030295 return NULL;
30296 }
30297 _children = _new_children;
30298 }
30299 _children[_n++] = _res;
30300 _mark = p->mark;
30301 }
30302 p->mark = _mark;
30303 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
30304 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
30305 }
30306 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30307 if (!_seq) {
30308 PyMem_Free(_children);
30309 p->error_indicator = 1;
30310 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030311 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030312 return NULL;
30313 }
30314 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30315 PyMem_Free(_children);
30316 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030317 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030318 return _seq;
30319}
30320
30321// _gather_132: kwarg_or_double_starred _loop0_133
30322static asdl_seq *
30323_gather_132_rule(Parser *p)
30324{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030325 if (p->level++ == MAXSTACK) {
30326 p->error_indicator = 1;
30327 PyErr_NoMemory();
30328 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030329 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030330 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030331 return NULL;
30332 }
30333 asdl_seq * _res = NULL;
30334 int _mark = p->mark;
30335 { // kwarg_or_double_starred _loop0_133
30336 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030337 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030338 return NULL;
30339 }
30340 D(fprintf(stderr, "%*c> _gather_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_133"));
30341 KeywordOrStarred* elem;
30342 asdl_seq * seq;
30343 if (
30344 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
30345 &&
30346 (seq = _loop0_133_rule(p)) // _loop0_133
30347 )
30348 {
30349 D(fprintf(stderr, "%*c+ _gather_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_133"));
30350 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
30351 goto done;
30352 }
30353 p->mark = _mark;
30354 D(fprintf(stderr, "%*c%s _gather_132[%d-%d]: %s failed!\n", p->level, ' ',
30355 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_133"));
30356 }
30357 _res = NULL;
30358 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030359 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030360 return _res;
30361}
30362
30363// _loop0_134: (',' star_target)
30364static asdl_seq *
30365_loop0_134_rule(Parser *p)
30366{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030367 if (p->level++ == MAXSTACK) {
30368 p->error_indicator = 1;
30369 PyErr_NoMemory();
30370 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030371 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030372 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030373 return NULL;
30374 }
30375 void *_res = NULL;
30376 int _mark = p->mark;
30377 int _start_mark = p->mark;
30378 void **_children = PyMem_Malloc(sizeof(void *));
30379 if (!_children) {
30380 p->error_indicator = 1;
30381 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030382 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030383 return NULL;
30384 }
30385 Py_ssize_t _children_capacity = 1;
30386 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030387 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030388 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030389 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030390 return NULL;
30391 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030392 D(fprintf(stderr, "%*c> _loop0_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030393 void *_tmp_192_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030394 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030395 (_tmp_192_var = _tmp_192_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030396 )
30397 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030398 _res = _tmp_192_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030399 if (_n == _children_capacity) {
30400 _children_capacity *= 2;
30401 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30402 if (!_new_children) {
30403 p->error_indicator = 1;
30404 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030405 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030406 return NULL;
30407 }
30408 _children = _new_children;
30409 }
30410 _children[_n++] = _res;
30411 _mark = p->mark;
30412 }
30413 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030414 D(fprintf(stderr, "%*c%s _loop0_134[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030415 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030416 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010030417 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030418 if (!_seq) {
30419 PyMem_Free(_children);
30420 p->error_indicator = 1;
30421 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030422 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030423 return NULL;
30424 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010030425 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030426 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030427 _PyPegen_insert_memo(p, _start_mark, _loop0_134_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030428 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030429 return _seq;
30430}
30431
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030432// _loop0_136: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030433static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030434_loop0_136_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030435{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030436 if (p->level++ == MAXSTACK) {
30437 p->error_indicator = 1;
30438 PyErr_NoMemory();
30439 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030440 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030441 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030442 return NULL;
30443 }
30444 void *_res = NULL;
30445 int _mark = p->mark;
30446 int _start_mark = p->mark;
30447 void **_children = PyMem_Malloc(sizeof(void *));
30448 if (!_children) {
30449 p->error_indicator = 1;
30450 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030451 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030452 return NULL;
30453 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030454 Py_ssize_t _children_capacity = 1;
30455 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030456 { // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030457 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030458 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030459 return NULL;
30460 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030461 D(fprintf(stderr, "%*c> _loop0_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030462 Token * _literal;
30463 expr_ty elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030464 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080030465 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30466 &&
30467 (elem = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030468 )
30469 {
Brandt Bucher145bf262021-02-26 14:51:55 -080030470 _res = elem;
30471 if (_res == NULL && PyErr_Occurred()) {
30472 p->error_indicator = 1;
30473 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030474 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080030475 return NULL;
30476 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030477 if (_n == _children_capacity) {
30478 _children_capacity *= 2;
30479 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30480 if (!_new_children) {
30481 p->error_indicator = 1;
30482 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030483 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030484 return NULL;
30485 }
30486 _children = _new_children;
30487 }
30488 _children[_n++] = _res;
30489 _mark = p->mark;
30490 }
30491 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030492 D(fprintf(stderr, "%*c%s _loop0_136[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030493 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030494 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010030495 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030496 if (!_seq) {
30497 PyMem_Free(_children);
30498 p->error_indicator = 1;
30499 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030500 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030501 return NULL;
30502 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010030503 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030504 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030505 _PyPegen_insert_memo(p, _start_mark, _loop0_136_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030506 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030507 return _seq;
30508}
30509
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030510// _gather_135: star_target _loop0_136
Brandt Bucher145bf262021-02-26 14:51:55 -080030511static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030512_gather_135_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030513{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030514 if (p->level++ == MAXSTACK) {
30515 p->error_indicator = 1;
30516 PyErr_NoMemory();
30517 }
Brandt Bucher145bf262021-02-26 14:51:55 -080030518 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030519 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080030520 return NULL;
30521 }
30522 asdl_seq * _res = NULL;
30523 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030524 { // star_target _loop0_136
Brandt Bucher145bf262021-02-26 14:51:55 -080030525 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030526 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080030527 return NULL;
30528 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030529 D(fprintf(stderr, "%*c> _gather_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_136"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030530 expr_ty elem;
30531 asdl_seq * seq;
30532 if (
30533 (elem = star_target_rule(p)) // star_target
30534 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030535 (seq = _loop0_136_rule(p)) // _loop0_136
Brandt Bucher145bf262021-02-26 14:51:55 -080030536 )
30537 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030538 D(fprintf(stderr, "%*c+ _gather_135[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_136"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030539 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
30540 goto done;
30541 }
30542 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030543 D(fprintf(stderr, "%*c%s _gather_135[%d-%d]: %s failed!\n", p->level, ' ',
30544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_136"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030545 }
30546 _res = NULL;
30547 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030548 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080030549 return _res;
30550}
30551
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030552// _loop1_137: (',' star_target)
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020030553static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030554_loop1_137_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030555{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030556 if (p->level++ == MAXSTACK) {
30557 p->error_indicator = 1;
30558 PyErr_NoMemory();
30559 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030560 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030561 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030562 return NULL;
30563 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020030564 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030565 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020030566 int _start_mark = p->mark;
30567 void **_children = PyMem_Malloc(sizeof(void *));
30568 if (!_children) {
30569 p->error_indicator = 1;
30570 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030571 p->level--;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020030572 return NULL;
30573 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030574 Py_ssize_t _children_capacity = 1;
30575 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030576 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030577 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030578 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030579 return NULL;
30580 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030581 D(fprintf(stderr, "%*c> _loop1_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030582 void *_tmp_193_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020030583 while (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030584 (_tmp_193_var = _tmp_193_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030585 )
30586 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030587 _res = _tmp_193_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020030588 if (_n == _children_capacity) {
30589 _children_capacity *= 2;
30590 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30591 if (!_new_children) {
30592 p->error_indicator = 1;
30593 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030594 p->level--;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020030595 return NULL;
30596 }
30597 _children = _new_children;
30598 }
30599 _children[_n++] = _res;
30600 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030601 }
30602 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030603 D(fprintf(stderr, "%*c%s _loop1_137[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030605 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020030606 if (_n == 0 || p->error_indicator) {
30607 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030608 p->level--;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020030609 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030610 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020030611 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30612 if (!_seq) {
30613 PyMem_Free(_children);
30614 p->error_indicator = 1;
30615 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030616 p->level--;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020030617 return NULL;
30618 }
30619 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30620 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030621 _PyPegen_insert_memo(p, _start_mark, _loop1_137_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030622 p->level--;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020030623 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030624}
30625
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030626// _tmp_138: !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030627static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030628_tmp_138_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030629{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030630 if (p->level++ == MAXSTACK) {
30631 p->error_indicator = 1;
30632 PyErr_NoMemory();
30633 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030634 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030635 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030636 return NULL;
30637 }
30638 void * _res = NULL;
30639 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080030640 { // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030641 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030642 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030643 return NULL;
30644 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030645 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030646 expr_ty star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030647 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080030648 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030649 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080030650 (star_target_var = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030651 )
30652 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030653 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030654 _res = star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030655 goto done;
30656 }
30657 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030658 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030659 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030660 }
30661 _res = NULL;
30662 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030663 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030664 return _res;
30665}
30666
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030667// _loop0_140: ',' del_target
Brandt Bucher145bf262021-02-26 14:51:55 -080030668static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030669_loop0_140_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030670{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030671 if (p->level++ == MAXSTACK) {
30672 p->error_indicator = 1;
30673 PyErr_NoMemory();
30674 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030675 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030676 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030677 return NULL;
30678 }
Brandt Bucher145bf262021-02-26 14:51:55 -080030679 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030680 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080030681 int _start_mark = p->mark;
30682 void **_children = PyMem_Malloc(sizeof(void *));
30683 if (!_children) {
30684 p->error_indicator = 1;
30685 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030686 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080030687 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030688 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030689 Py_ssize_t _children_capacity = 1;
30690 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030691 { // ',' del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030692 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030693 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030694 return NULL;
30695 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030696 D(fprintf(stderr, "%*c> _loop0_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030697 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080030698 expr_ty elem;
30699 while (
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030700 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30701 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080030702 (elem = del_target_rule(p)) // del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030703 )
30704 {
Brandt Bucher145bf262021-02-26 14:51:55 -080030705 _res = elem;
30706 if (_res == NULL && PyErr_Occurred()) {
30707 p->error_indicator = 1;
30708 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030709 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080030710 return NULL;
30711 }
30712 if (_n == _children_capacity) {
30713 _children_capacity *= 2;
30714 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30715 if (!_new_children) {
30716 p->error_indicator = 1;
30717 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030718 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080030719 return NULL;
30720 }
30721 _children = _new_children;
30722 }
30723 _children[_n++] = _res;
30724 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030725 }
30726 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030727 D(fprintf(stderr, "%*c%s _loop0_140[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030728 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030729 }
Brandt Bucher145bf262021-02-26 14:51:55 -080030730 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30731 if (!_seq) {
30732 PyMem_Free(_children);
30733 p->error_indicator = 1;
30734 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030735 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080030736 return NULL;
30737 }
30738 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30739 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030740 _PyPegen_insert_memo(p, _start_mark, _loop0_140_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030741 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080030742 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030743}
30744
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030745// _gather_139: del_target _loop0_140
Brandt Bucher145bf262021-02-26 14:51:55 -080030746static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030747_gather_139_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030748{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030749 if (p->level++ == MAXSTACK) {
30750 p->error_indicator = 1;
30751 PyErr_NoMemory();
30752 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030753 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030754 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030755 return NULL;
30756 }
Brandt Bucher145bf262021-02-26 14:51:55 -080030757 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010030758 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030759 { // del_target _loop0_140
Pablo Galindo58fb1562021-02-02 19:54:22 +000030760 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030761 p->level--;
Pablo Galindo58fb1562021-02-02 19:54:22 +000030762 return NULL;
30763 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030764 D(fprintf(stderr, "%*c> _gather_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_140"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030765 expr_ty elem;
30766 asdl_seq * seq;
Pablo Galindo58fb1562021-02-02 19:54:22 +000030767 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080030768 (elem = del_target_rule(p)) // del_target
30769 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030770 (seq = _loop0_140_rule(p)) // _loop0_140
Pablo Galindo58fb1562021-02-02 19:54:22 +000030771 )
30772 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030773 D(fprintf(stderr, "%*c+ _gather_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_140"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030774 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo58fb1562021-02-02 19:54:22 +000030775 goto done;
30776 }
30777 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030778 D(fprintf(stderr, "%*c%s _gather_139[%d-%d]: %s failed!\n", p->level, ' ',
30779 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_140"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000030780 }
30781 _res = NULL;
30782 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030783 p->level--;
Pablo Galindo58fb1562021-02-02 19:54:22 +000030784 return _res;
30785}
30786
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030787// _tmp_141: args | expression for_if_clauses
Brandt Bucher145bf262021-02-26 14:51:55 -080030788static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030789_tmp_141_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030790{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030791 if (p->level++ == MAXSTACK) {
30792 p->error_indicator = 1;
30793 PyErr_NoMemory();
30794 }
Brandt Bucher145bf262021-02-26 14:51:55 -080030795 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030796 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080030797 return NULL;
30798 }
30799 void * _res = NULL;
30800 int _mark = p->mark;
30801 { // args
30802 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030803 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080030804 return NULL;
30805 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030806 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030807 expr_ty args_var;
30808 if (
30809 (args_var = args_rule(p)) // args
30810 )
30811 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030812 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030813 _res = args_var;
30814 goto done;
30815 }
30816 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030817 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030818 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
30819 }
30820 { // expression for_if_clauses
30821 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030822 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080030823 return NULL;
30824 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030825 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030826 expr_ty expression_var;
30827 asdl_comprehension_seq* for_if_clauses_var;
30828 if (
30829 (expression_var = expression_rule(p)) // expression
30830 &&
30831 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
30832 )
30833 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030834 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030835 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
30836 goto done;
30837 }
30838 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030839 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
30841 }
30842 _res = NULL;
30843 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030844 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080030845 return _res;
30846}
30847
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030848// _tmp_142: 'True' | 'False' | 'None'
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030849static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030850_tmp_142_rule(Parser *p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030851{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030852 if (p->level++ == MAXSTACK) {
30853 p->error_indicator = 1;
30854 PyErr_NoMemory();
30855 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030856 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030857 p->level--;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030858 return NULL;
30859 }
30860 void * _res = NULL;
30861 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030862 { // 'True'
30863 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030864 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030865 return NULL;
30866 }
30867 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
30868 Token * _keyword;
30869 if (
30870 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
30871 )
30872 {
30873 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
30874 _res = _keyword;
30875 goto done;
30876 }
30877 p->mark = _mark;
30878 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
30879 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
30880 }
30881 { // 'False'
30882 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030883 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030884 return NULL;
30885 }
30886 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
30887 Token * _keyword;
30888 if (
30889 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
30890 )
30891 {
30892 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
30893 _res = _keyword;
30894 goto done;
30895 }
30896 p->mark = _mark;
30897 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
30898 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
30899 }
30900 { // 'None'
30901 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030902 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030903 return NULL;
30904 }
30905 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
30906 Token * _keyword;
30907 if (
30908 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
30909 )
30910 {
30911 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
30912 _res = _keyword;
30913 goto done;
30914 }
30915 p->mark = _mark;
30916 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
30917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
30918 }
30919 _res = NULL;
30920 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030921 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030922 return _res;
30923}
30924
30925// _tmp_143: NAME '='
30926static void *
30927_tmp_143_rule(Parser *p)
30928{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030929 if (p->level++ == MAXSTACK) {
30930 p->error_indicator = 1;
30931 PyErr_NoMemory();
30932 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030933 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030934 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030935 return NULL;
30936 }
30937 void * _res = NULL;
30938 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030939 { // NAME '='
30940 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030941 p->level--;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030942 return NULL;
30943 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030944 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '='"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030945 Token * _literal;
30946 expr_ty name_var;
30947 if (
30948 (name_var = _PyPegen_name_token(p)) // NAME
30949 &&
30950 (_literal = _PyPegen_expect_token(p, 22)) // token='='
30951 )
30952 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030953 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '='"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030954 _res = _PyPegen_dummy_name(p, name_var, _literal);
30955 goto done;
30956 }
30957 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030958 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '='"));
30960 }
30961 _res = NULL;
30962 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030963 p->level--;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030964 return _res;
30965}
30966
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030967// _tmp_144: NAME STRING | SOFT_KEYWORD
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030968static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030969_tmp_144_rule(Parser *p)
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030970{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030971 if (p->level++ == MAXSTACK) {
30972 p->error_indicator = 1;
30973 PyErr_NoMemory();
30974 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030975 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030976 p->level--;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030977 return NULL;
30978 }
30979 void * _res = NULL;
30980 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010030981 { // NAME STRING
30982 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000030983 p->level--;
Pablo Galindob2802482021-04-15 21:38:45 +010030984 return NULL;
30985 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030986 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
Pablo Galindob2802482021-04-15 21:38:45 +010030987 expr_ty name_var;
30988 expr_ty string_var;
30989 if (
30990 (name_var = _PyPegen_name_token(p)) // NAME
30991 &&
30992 (string_var = _PyPegen_string_token(p)) // STRING
30993 )
30994 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000030995 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
Pablo Galindob2802482021-04-15 21:38:45 +010030996 _res = _PyPegen_dummy_name(p, name_var, string_var);
30997 goto done;
30998 }
30999 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031000 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010031001 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME STRING"));
31002 }
31003 { // SOFT_KEYWORD
31004 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031005 p->level--;
Pablo Galindob2802482021-04-15 21:38:45 +010031006 return NULL;
31007 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031008 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
Pablo Galindob2802482021-04-15 21:38:45 +010031009 expr_ty soft_keyword_var;
31010 if (
31011 (soft_keyword_var = _PyPegen_soft_keyword_token(p)) // SOFT_KEYWORD
31012 )
31013 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031014 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
Pablo Galindob2802482021-04-15 21:38:45 +010031015 _res = soft_keyword_var;
31016 goto done;
31017 }
31018 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031019 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010031020 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "SOFT_KEYWORD"));
31021 }
31022 _res = NULL;
31023 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031024 p->level--;
Pablo Galindob2802482021-04-15 21:38:45 +010031025 return _res;
31026}
31027
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031028// _tmp_145: 'else' | ':'
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031029static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031030_tmp_145_rule(Parser *p)
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031031{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031032 if (p->level++ == MAXSTACK) {
31033 p->error_indicator = 1;
31034 PyErr_NoMemory();
31035 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031036 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031037 p->level--;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031038 return NULL;
31039 }
31040 void * _res = NULL;
31041 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031042 { // 'else'
31043 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031044 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031045 return NULL;
31046 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031047 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else'"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031048 Token * _keyword;
31049 if (
31050 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
31051 )
31052 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031053 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else'"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031054 _res = _keyword;
31055 goto done;
31056 }
31057 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031058 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031059 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else'"));
31060 }
31061 { // ':'
31062 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031063 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031064 return NULL;
31065 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031066 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031067 Token * _literal;
31068 if (
31069 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
31070 )
31071 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031072 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031073 _res = _literal;
31074 goto done;
31075 }
31076 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031077 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031078 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
31079 }
31080 _res = NULL;
31081 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031082 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031083 return _res;
31084}
31085
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031086// _tmp_146: '=' | ':='
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031087static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031088_tmp_146_rule(Parser *p)
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031089{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031090 if (p->level++ == MAXSTACK) {
31091 p->error_indicator = 1;
31092 PyErr_NoMemory();
31093 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031094 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031095 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031096 return NULL;
31097 }
31098 void * _res = NULL;
31099 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031100 { // '='
31101 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031102 p->level--;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031103 return NULL;
31104 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031105 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031106 Token * _literal;
31107 if (
31108 (_literal = _PyPegen_expect_token(p, 22)) // token='='
31109 )
31110 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031111 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031112 _res = _literal;
31113 goto done;
31114 }
31115 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031116 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031117 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
31118 }
31119 { // ':='
31120 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031121 p->level--;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031122 return NULL;
31123 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031124 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031125 Token * _literal;
31126 if (
31127 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
31128 )
31129 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031130 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031131 _res = _literal;
31132 goto done;
31133 }
31134 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031135 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031136 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
31137 }
31138 _res = NULL;
31139 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031140 p->level--;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031141 return _res;
31142}
31143
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031144// _tmp_147: list | tuple | genexp | 'True' | 'None' | 'False'
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031145static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031146_tmp_147_rule(Parser *p)
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031147{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031148 if (p->level++ == MAXSTACK) {
31149 p->error_indicator = 1;
31150 PyErr_NoMemory();
31151 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031152 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031153 p->level--;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031154 return NULL;
31155 }
31156 void * _res = NULL;
31157 int _mark = p->mark;
31158 { // list
31159 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031160 p->level--;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031161 return NULL;
31162 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031163 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031164 expr_ty list_var;
31165 if (
31166 (list_var = list_rule(p)) // list
31167 )
31168 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031169 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031170 _res = list_var;
31171 goto done;
31172 }
31173 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031174 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
31176 }
31177 { // tuple
31178 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031179 p->level--;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031180 return NULL;
31181 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031182 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031183 expr_ty tuple_var;
31184 if (
31185 (tuple_var = tuple_rule(p)) // tuple
31186 )
31187 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031188 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031189 _res = tuple_var;
31190 goto done;
31191 }
31192 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031193 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031194 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
31195 }
31196 { // genexp
31197 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031198 p->level--;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031199 return NULL;
31200 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031201 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031202 expr_ty genexp_var;
31203 if (
31204 (genexp_var = genexp_rule(p)) // genexp
31205 )
31206 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031207 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031208 _res = genexp_var;
31209 goto done;
31210 }
31211 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031212 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031213 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
31214 }
31215 { // 'True'
31216 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031217 p->level--;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031218 return NULL;
31219 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031220 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031221 Token * _keyword;
31222 if (
31223 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
31224 )
31225 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031226 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031227 _res = _keyword;
31228 goto done;
31229 }
31230 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031231 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
31233 }
31234 { // 'None'
31235 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031236 p->level--;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031237 return NULL;
31238 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031239 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031240 Token * _keyword;
31241 if (
31242 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
31243 )
31244 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031245 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031246 _res = _keyword;
31247 goto done;
31248 }
31249 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031250 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031251 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
31252 }
31253 { // 'False'
31254 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031255 p->level--;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031256 return NULL;
31257 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031258 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031259 Token * _keyword;
31260 if (
31261 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
31262 )
31263 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031264 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031265 _res = _keyword;
31266 goto done;
31267 }
31268 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031269 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031270 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
31271 }
31272 _res = NULL;
31273 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031274 p->level--;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031275 return _res;
31276}
31277
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031278// _tmp_148: '=' | ':='
Pablo Galindob2802482021-04-15 21:38:45 +010031279static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031280_tmp_148_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010031281{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031282 if (p->level++ == MAXSTACK) {
31283 p->error_indicator = 1;
31284 PyErr_NoMemory();
31285 }
Pablo Galindob2802482021-04-15 21:38:45 +010031286 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031287 p->level--;
Pablo Galindob2802482021-04-15 21:38:45 +010031288 return NULL;
31289 }
31290 void * _res = NULL;
31291 int _mark = p->mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010031292 { // '='
31293 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031294 p->level--;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010031295 return NULL;
31296 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031297 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010031298 Token * _literal;
31299 if (
31300 (_literal = _PyPegen_expect_token(p, 22)) // token='='
31301 )
31302 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031303 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010031304 _res = _literal;
31305 goto done;
31306 }
31307 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031308 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010031309 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
31310 }
31311 { // ':='
31312 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031313 p->level--;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010031314 return NULL;
31315 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031316 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010031317 Token * _literal;
31318 if (
31319 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
31320 )
31321 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031322 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010031323 _res = _literal;
31324 goto done;
31325 }
31326 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031327 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010031328 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
31329 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010031330 _res = NULL;
31331 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031332 p->level--;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010031333 return _res;
31334}
31335
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031336// _loop0_149: star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000031337static asdl_seq *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031338_loop0_149_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000031339{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031340 if (p->level++ == MAXSTACK) {
31341 p->error_indicator = 1;
31342 PyErr_NoMemory();
31343 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000031344 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031345 p->level--;
Pablo Galindo58fb1562021-02-02 19:54:22 +000031346 return NULL;
31347 }
31348 void *_res = NULL;
31349 int _mark = p->mark;
31350 int _start_mark = p->mark;
31351 void **_children = PyMem_Malloc(sizeof(void *));
31352 if (!_children) {
31353 p->error_indicator = 1;
31354 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031355 p->level--;
Pablo Galindo58fb1562021-02-02 19:54:22 +000031356 return NULL;
31357 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010031358 Py_ssize_t _children_capacity = 1;
31359 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080031360 { // star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000031361 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031362 p->level--;
Pablo Galindo58fb1562021-02-02 19:54:22 +000031363 return NULL;
31364 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031365 D(fprintf(stderr, "%*c> _loop0_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080031366 asdl_expr_seq* star_named_expressions_var;
31367 while (
31368 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
31369 )
31370 {
31371 _res = star_named_expressions_var;
31372 if (_n == _children_capacity) {
31373 _children_capacity *= 2;
31374 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31375 if (!_new_children) {
31376 p->error_indicator = 1;
31377 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031378 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080031379 return NULL;
31380 }
31381 _children = _new_children;
31382 }
31383 _children[_n++] = _res;
31384 _mark = p->mark;
31385 }
31386 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031387 D(fprintf(stderr, "%*c%s _loop0_149[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031388 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031389 }
31390 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31391 if (!_seq) {
31392 PyMem_Free(_children);
31393 p->error_indicator = 1;
31394 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031395 p->level--;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031396 return NULL;
31397 }
31398 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31399 PyMem_Free(_children);
Pablo Galindob2802482021-04-15 21:38:45 +010031400 _PyPegen_insert_memo(p, _start_mark, _loop0_149_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031401 p->level--;
Pablo Galindob2802482021-04-15 21:38:45 +010031402 return _seq;
31403}
31404
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031405// _loop0_150: (star_targets '=')
31406static asdl_seq *
31407_loop0_150_rule(Parser *p)
31408{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031409 if (p->level++ == MAXSTACK) {
31410 p->error_indicator = 1;
31411 PyErr_NoMemory();
31412 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031413 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031414 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031415 return NULL;
31416 }
31417 void *_res = NULL;
31418 int _mark = p->mark;
31419 int _start_mark = p->mark;
31420 void **_children = PyMem_Malloc(sizeof(void *));
31421 if (!_children) {
31422 p->error_indicator = 1;
31423 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031424 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031425 return NULL;
31426 }
31427 Py_ssize_t _children_capacity = 1;
31428 Py_ssize_t _n = 0;
31429 { // (star_targets '=')
31430 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031431 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031432 return NULL;
31433 }
31434 D(fprintf(stderr, "%*c> _loop0_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
31435 void *_tmp_194_var;
31436 while (
31437 (_tmp_194_var = _tmp_194_rule(p)) // star_targets '='
31438 )
31439 {
31440 _res = _tmp_194_var;
31441 if (_n == _children_capacity) {
31442 _children_capacity *= 2;
31443 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31444 if (!_new_children) {
31445 p->error_indicator = 1;
31446 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031447 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031448 return NULL;
31449 }
31450 _children = _new_children;
31451 }
31452 _children[_n++] = _res;
31453 _mark = p->mark;
31454 }
31455 p->mark = _mark;
31456 D(fprintf(stderr, "%*c%s _loop0_150[%d-%d]: %s failed!\n", p->level, ' ',
31457 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
31458 }
31459 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31460 if (!_seq) {
31461 PyMem_Free(_children);
31462 p->error_indicator = 1;
31463 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031464 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031465 return NULL;
31466 }
31467 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31468 PyMem_Free(_children);
31469 _PyPegen_insert_memo(p, _start_mark, _loop0_150_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031470 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031471 return _seq;
31472}
31473
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031474// _loop0_151: (star_targets '=')
31475static asdl_seq *
31476_loop0_151_rule(Parser *p)
31477{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031478 if (p->level++ == MAXSTACK) {
31479 p->error_indicator = 1;
31480 PyErr_NoMemory();
31481 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031482 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031483 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031484 return NULL;
31485 }
31486 void *_res = NULL;
31487 int _mark = p->mark;
31488 int _start_mark = p->mark;
31489 void **_children = PyMem_Malloc(sizeof(void *));
31490 if (!_children) {
31491 p->error_indicator = 1;
31492 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031493 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031494 return NULL;
31495 }
31496 Py_ssize_t _children_capacity = 1;
31497 Py_ssize_t _n = 0;
31498 { // (star_targets '=')
31499 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031500 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031501 return NULL;
31502 }
31503 D(fprintf(stderr, "%*c> _loop0_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
31504 void *_tmp_195_var;
31505 while (
31506 (_tmp_195_var = _tmp_195_rule(p)) // star_targets '='
31507 )
31508 {
31509 _res = _tmp_195_var;
31510 if (_n == _children_capacity) {
31511 _children_capacity *= 2;
31512 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31513 if (!_new_children) {
31514 p->error_indicator = 1;
31515 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031516 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031517 return NULL;
31518 }
31519 _children = _new_children;
31520 }
31521 _children[_n++] = _res;
31522 _mark = p->mark;
31523 }
31524 p->mark = _mark;
31525 D(fprintf(stderr, "%*c%s _loop0_151[%d-%d]: %s failed!\n", p->level, ' ',
31526 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
31527 }
31528 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31529 if (!_seq) {
31530 PyMem_Free(_children);
31531 p->error_indicator = 1;
31532 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031533 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031534 return NULL;
31535 }
31536 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31537 PyMem_Free(_children);
31538 _PyPegen_insert_memo(p, _start_mark, _loop0_151_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031539 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031540 return _seq;
31541}
31542
31543// _tmp_152: yield_expr | star_expressions
Brandt Bucher145bf262021-02-26 14:51:55 -080031544static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031545_tmp_152_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080031546{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031547 if (p->level++ == MAXSTACK) {
31548 p->error_indicator = 1;
31549 PyErr_NoMemory();
31550 }
Brandt Bucher145bf262021-02-26 14:51:55 -080031551 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031552 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080031553 return NULL;
31554 }
31555 void * _res = NULL;
31556 int _mark = p->mark;
31557 { // yield_expr
31558 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031559 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080031560 return NULL;
31561 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031562 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080031563 expr_ty yield_expr_var;
31564 if (
31565 (yield_expr_var = yield_expr_rule(p)) // yield_expr
31566 )
31567 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031568 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080031569 _res = yield_expr_var;
31570 goto done;
31571 }
31572 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031573 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080031574 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
31575 }
31576 { // star_expressions
31577 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031578 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080031579 return NULL;
31580 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031581 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080031582 expr_ty star_expressions_var;
31583 if (
31584 (star_expressions_var = star_expressions_rule(p)) // star_expressions
31585 )
31586 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031587 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080031588 _res = star_expressions_var;
31589 goto done;
31590 }
31591 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031592 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080031593 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
31594 }
31595 _res = NULL;
31596 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031597 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080031598 return _res;
31599}
31600
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031601// _tmp_153: '[' | '(' | '{'
Pablo Galindoa77aac42021-04-23 14:27:05 +010031602static void *
31603_tmp_153_rule(Parser *p)
31604{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031605 if (p->level++ == MAXSTACK) {
31606 p->error_indicator = 1;
31607 PyErr_NoMemory();
31608 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031609 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031610 p->level--;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031611 return NULL;
31612 }
31613 void * _res = NULL;
31614 int _mark = p->mark;
31615 { // '['
31616 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031617 p->level--;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031618 return NULL;
31619 }
31620 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
31621 Token * _literal;
31622 if (
31623 (_literal = _PyPegen_expect_token(p, 9)) // token='['
31624 )
31625 {
31626 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
31627 _res = _literal;
31628 goto done;
31629 }
31630 p->mark = _mark;
31631 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
31632 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
31633 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031634 { // '('
31635 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031636 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031637 return NULL;
31638 }
31639 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
31640 Token * _literal;
31641 if (
31642 (_literal = _PyPegen_expect_token(p, 7)) // token='('
31643 )
31644 {
31645 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
31646 _res = _literal;
31647 goto done;
31648 }
31649 p->mark = _mark;
31650 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
31651 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
31652 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031653 { // '{'
31654 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031655 p->level--;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031656 return NULL;
31657 }
31658 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
31659 Token * _literal;
31660 if (
31661 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
31662 )
31663 {
31664 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
31665 _res = _literal;
31666 goto done;
31667 }
31668 p->mark = _mark;
31669 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
31670 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
31671 }
31672 _res = NULL;
31673 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031674 p->level--;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031675 return _res;
31676}
31677
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031678// _tmp_154: '[' | '{'
31679static void *
31680_tmp_154_rule(Parser *p)
31681{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031682 if (p->level++ == MAXSTACK) {
31683 p->error_indicator = 1;
31684 PyErr_NoMemory();
31685 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031686 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031687 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031688 return NULL;
31689 }
31690 void * _res = NULL;
31691 int _mark = p->mark;
31692 { // '['
31693 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031694 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031695 return NULL;
31696 }
31697 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
31698 Token * _literal;
31699 if (
31700 (_literal = _PyPegen_expect_token(p, 9)) // token='['
31701 )
31702 {
31703 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
31704 _res = _literal;
31705 goto done;
31706 }
31707 p->mark = _mark;
31708 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
31709 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
31710 }
31711 { // '{'
31712 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031713 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031714 return NULL;
31715 }
31716 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
31717 Token * _literal;
31718 if (
31719 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
31720 )
31721 {
31722 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
31723 _res = _literal;
31724 goto done;
31725 }
31726 p->mark = _mark;
31727 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
31728 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
31729 }
31730 _res = NULL;
31731 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031732 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031733 return _res;
31734}
31735
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031736// _tmp_155: '[' | '{'
31737static void *
31738_tmp_155_rule(Parser *p)
31739{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031740 if (p->level++ == MAXSTACK) {
31741 p->error_indicator = 1;
31742 PyErr_NoMemory();
31743 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031744 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031745 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031746 return NULL;
31747 }
31748 void * _res = NULL;
31749 int _mark = p->mark;
31750 { // '['
31751 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031752 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031753 return NULL;
31754 }
31755 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
31756 Token * _literal;
31757 if (
31758 (_literal = _PyPegen_expect_token(p, 9)) // token='['
31759 )
31760 {
31761 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
31762 _res = _literal;
31763 goto done;
31764 }
31765 p->mark = _mark;
31766 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
31767 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
31768 }
31769 { // '{'
31770 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031771 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031772 return NULL;
31773 }
31774 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
31775 Token * _literal;
31776 if (
31777 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
31778 )
31779 {
31780 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
31781 _res = _literal;
31782 goto done;
31783 }
31784 p->mark = _mark;
31785 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
31786 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
31787 }
31788 _res = NULL;
31789 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031790 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031791 return _res;
31792}
31793
31794// _loop0_156: param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080031795static asdl_seq *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031796_loop0_156_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080031797{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031798 if (p->level++ == MAXSTACK) {
31799 p->error_indicator = 1;
31800 PyErr_NoMemory();
31801 }
Brandt Bucher145bf262021-02-26 14:51:55 -080031802 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031803 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080031804 return NULL;
31805 }
31806 void *_res = NULL;
31807 int _mark = p->mark;
31808 int _start_mark = p->mark;
31809 void **_children = PyMem_Malloc(sizeof(void *));
31810 if (!_children) {
31811 p->error_indicator = 1;
31812 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031813 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080031814 return NULL;
31815 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010031816 Py_ssize_t _children_capacity = 1;
31817 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080031818 { // param_no_default
31819 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031820 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080031821 return NULL;
31822 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031823 D(fprintf(stderr, "%*c> _loop0_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080031824 arg_ty param_no_default_var;
31825 while (
31826 (param_no_default_var = param_no_default_rule(p)) // param_no_default
31827 )
31828 {
31829 _res = param_no_default_var;
31830 if (_n == _children_capacity) {
31831 _children_capacity *= 2;
31832 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31833 if (!_new_children) {
31834 p->error_indicator = 1;
31835 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031836 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080031837 return NULL;
31838 }
31839 _children = _new_children;
31840 }
31841 _children[_n++] = _res;
31842 _mark = p->mark;
31843 }
31844 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031845 D(fprintf(stderr, "%*c%s _loop0_156[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080031846 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
31847 }
31848 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31849 if (!_seq) {
31850 PyMem_Free(_children);
31851 p->error_indicator = 1;
31852 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031853 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080031854 return NULL;
31855 }
31856 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31857 PyMem_Free(_children);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031858 _PyPegen_insert_memo(p, _start_mark, _loop0_156_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031859 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080031860 return _seq;
31861}
31862
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031863// _loop1_157: param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080031864static asdl_seq *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031865_loop1_157_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080031866{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031867 if (p->level++ == MAXSTACK) {
31868 p->error_indicator = 1;
31869 PyErr_NoMemory();
31870 }
Brandt Bucher145bf262021-02-26 14:51:55 -080031871 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031872 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080031873 return NULL;
31874 }
31875 void *_res = NULL;
31876 int _mark = p->mark;
31877 int _start_mark = p->mark;
31878 void **_children = PyMem_Malloc(sizeof(void *));
31879 if (!_children) {
31880 p->error_indicator = 1;
31881 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031882 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080031883 return NULL;
31884 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010031885 Py_ssize_t _children_capacity = 1;
31886 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080031887 { // param_with_default
31888 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031889 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080031890 return NULL;
31891 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031892 D(fprintf(stderr, "%*c> _loop1_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080031893 NameDefaultPair* param_with_default_var;
31894 while (
31895 (param_with_default_var = param_with_default_rule(p)) // param_with_default
31896 )
31897 {
31898 _res = param_with_default_var;
31899 if (_n == _children_capacity) {
31900 _children_capacity *= 2;
31901 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31902 if (!_new_children) {
31903 p->error_indicator = 1;
31904 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031905 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080031906 return NULL;
31907 }
31908 _children = _new_children;
31909 }
31910 _children[_n++] = _res;
31911 _mark = p->mark;
31912 }
31913 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031914 D(fprintf(stderr, "%*c%s _loop1_157[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080031915 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
31916 }
31917 if (_n == 0 || p->error_indicator) {
31918 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031919 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080031920 return NULL;
31921 }
31922 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31923 if (!_seq) {
31924 PyMem_Free(_children);
31925 p->error_indicator = 1;
31926 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031927 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080031928 return NULL;
31929 }
31930 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31931 PyMem_Free(_children);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031932 _PyPegen_insert_memo(p, _start_mark, _loop1_157_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031933 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080031934 return _seq;
31935}
31936
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031937// _loop0_158: lambda_param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080031938static asdl_seq *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031939_loop0_158_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080031940{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031941 if (p->level++ == MAXSTACK) {
31942 p->error_indicator = 1;
31943 PyErr_NoMemory();
31944 }
Brandt Bucher145bf262021-02-26 14:51:55 -080031945 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031946 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080031947 return NULL;
31948 }
31949 void *_res = NULL;
31950 int _mark = p->mark;
31951 int _start_mark = p->mark;
31952 void **_children = PyMem_Malloc(sizeof(void *));
31953 if (!_children) {
31954 p->error_indicator = 1;
31955 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031956 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080031957 return NULL;
31958 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010031959 Py_ssize_t _children_capacity = 1;
31960 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080031961 { // lambda_param_no_default
31962 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031963 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080031964 return NULL;
31965 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031966 D(fprintf(stderr, "%*c> _loop0_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080031967 arg_ty lambda_param_no_default_var;
31968 while (
31969 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
31970 )
31971 {
31972 _res = lambda_param_no_default_var;
31973 if (_n == _children_capacity) {
31974 _children_capacity *= 2;
31975 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31976 if (!_new_children) {
31977 p->error_indicator = 1;
31978 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031979 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080031980 return NULL;
31981 }
31982 _children = _new_children;
31983 }
31984 _children[_n++] = _res;
31985 _mark = p->mark;
31986 }
31987 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000031988 D(fprintf(stderr, "%*c%s _loop0_158[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080031989 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
31990 }
31991 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31992 if (!_seq) {
31993 PyMem_Free(_children);
31994 p->error_indicator = 1;
31995 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000031996 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080031997 return NULL;
31998 }
31999 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
32000 PyMem_Free(_children);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032001 _PyPegen_insert_memo(p, _start_mark, _loop0_158_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032002 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080032003 return _seq;
32004}
32005
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032006// _loop1_159: lambda_param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080032007static asdl_seq *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032008_loop1_159_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080032009{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032010 if (p->level++ == MAXSTACK) {
32011 p->error_indicator = 1;
32012 PyErr_NoMemory();
32013 }
Brandt Bucher145bf262021-02-26 14:51:55 -080032014 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032015 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080032016 return NULL;
32017 }
32018 void *_res = NULL;
32019 int _mark = p->mark;
32020 int _start_mark = p->mark;
32021 void **_children = PyMem_Malloc(sizeof(void *));
32022 if (!_children) {
32023 p->error_indicator = 1;
32024 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032025 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080032026 return NULL;
32027 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010032028 Py_ssize_t _children_capacity = 1;
32029 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080032030 { // lambda_param_with_default
32031 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032032 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080032033 return NULL;
32034 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032035 D(fprintf(stderr, "%*c> _loop1_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080032036 NameDefaultPair* lambda_param_with_default_var;
32037 while (
32038 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
32039 )
32040 {
32041 _res = lambda_param_with_default_var;
32042 if (_n == _children_capacity) {
32043 _children_capacity *= 2;
32044 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
32045 if (!_new_children) {
32046 p->error_indicator = 1;
32047 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032048 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080032049 return NULL;
32050 }
32051 _children = _new_children;
32052 }
32053 _children[_n++] = _res;
32054 _mark = p->mark;
32055 }
32056 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032057 D(fprintf(stderr, "%*c%s _loop1_159[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080032058 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
32059 }
32060 if (_n == 0 || p->error_indicator) {
32061 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032062 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080032063 return NULL;
32064 }
32065 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
32066 if (!_seq) {
32067 PyMem_Free(_children);
32068 p->error_indicator = 1;
32069 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032070 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080032071 return NULL;
32072 }
32073 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
32074 PyMem_Free(_children);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032075 _PyPegen_insert_memo(p, _start_mark, _loop1_159_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032076 p->level--;
Brandt Bucher145bf262021-02-26 14:51:55 -080032077 return _seq;
32078}
32079
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032080// _tmp_160: ')' | ',' (')' | '**')
Pablo Galindo56c95df2021-04-21 15:28:21 +010032081static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010032082_tmp_160_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010032083{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032084 if (p->level++ == MAXSTACK) {
32085 p->error_indicator = 1;
32086 PyErr_NoMemory();
32087 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010032088 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032089 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032090 return NULL;
32091 }
32092 void * _res = NULL;
32093 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032094 { // ')'
Pablo Galindoa77aac42021-04-23 14:27:05 +010032095 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032096 p->level--;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032097 return NULL;
32098 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032099 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010032100 Token * _literal;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032101 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032102 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoa77aac42021-04-23 14:27:05 +010032103 )
32104 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032105 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032106 _res = _literal;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032107 goto done;
32108 }
32109 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032110 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032111 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032112 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032113 { // ',' (')' | '**')
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032114 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032115 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032116 return NULL;
32117 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032118 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032119 Token * _literal;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032120 void *_tmp_196_var;
32121 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032122 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32123 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032124 (_tmp_196_var = _tmp_196_rule(p)) // ')' | '**'
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032125 )
32126 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032127 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032128 _res = _PyPegen_dummy_name(p, _literal, _tmp_196_var);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032129 goto done;
32130 }
32131 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032132 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032134 }
32135 _res = NULL;
32136 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032137 p->level--;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032138 return _res;
32139}
32140
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032141// _tmp_161: ':' | ',' (':' | '**')
Pablo Galindo56c95df2021-04-21 15:28:21 +010032142static void *
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032143_tmp_161_rule(Parser *p)
32144{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032145 if (p->level++ == MAXSTACK) {
32146 p->error_indicator = 1;
32147 PyErr_NoMemory();
32148 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032149 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032150 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032151 return NULL;
32152 }
32153 void * _res = NULL;
32154 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032155 { // ':'
32156 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032157 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032158 return NULL;
32159 }
32160 D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
32161 Token * _literal;
32162 if (
32163 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
32164 )
32165 {
32166 D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
32167 _res = _literal;
32168 goto done;
32169 }
32170 p->mark = _mark;
32171 D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ',
32172 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
32173 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032174 { // ',' (':' | '**')
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032175 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032176 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032177 return NULL;
32178 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032179 D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032180 Token * _literal;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032181 void *_tmp_197_var;
32182 if (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032183 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32184 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032185 (_tmp_197_var = _tmp_197_rule(p)) // ':' | '**'
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032186 )
32187 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032188 D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
32189 _res = _PyPegen_dummy_name(p, _literal, _tmp_197_var);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032190 goto done;
32191 }
32192 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032193 D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ',
32194 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032195 }
32196 _res = NULL;
32197 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032198 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032199 return _res;
32200}
32201
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032202// _tmp_162: ',' | ')' | ':'
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032203static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032204_tmp_162_rule(Parser *p)
32205{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032206 if (p->level++ == MAXSTACK) {
32207 p->error_indicator = 1;
32208 PyErr_NoMemory();
32209 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032210 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032211 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032212 return NULL;
32213 }
32214 void * _res = NULL;
32215 int _mark = p->mark;
32216 { // ','
32217 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032218 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032219 return NULL;
32220 }
32221 D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
32222 Token * _literal;
32223 if (
32224 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32225 )
32226 {
32227 D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
32228 _res = _literal;
32229 goto done;
32230 }
32231 p->mark = _mark;
32232 D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ',
32233 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
32234 }
32235 { // ')'
32236 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032237 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032238 return NULL;
32239 }
32240 D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
32241 Token * _literal;
32242 if (
32243 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
32244 )
32245 {
32246 D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
32247 _res = _literal;
32248 goto done;
32249 }
32250 p->mark = _mark;
32251 D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ',
32252 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
32253 }
32254 { // ':'
32255 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032256 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032257 return NULL;
32258 }
32259 D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
32260 Token * _literal;
32261 if (
32262 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
32263 )
32264 {
32265 D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
32266 _res = _literal;
32267 goto done;
32268 }
32269 p->mark = _mark;
32270 D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ',
32271 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
32272 }
32273 _res = NULL;
32274 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032275 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032276 return _res;
32277}
32278
32279// _loop0_164: ',' (expression ['as' star_target])
32280static asdl_seq *
32281_loop0_164_rule(Parser *p)
32282{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032283 if (p->level++ == MAXSTACK) {
32284 p->error_indicator = 1;
32285 PyErr_NoMemory();
32286 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032287 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032288 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032289 return NULL;
32290 }
32291 void *_res = NULL;
32292 int _mark = p->mark;
32293 int _start_mark = p->mark;
32294 void **_children = PyMem_Malloc(sizeof(void *));
32295 if (!_children) {
32296 p->error_indicator = 1;
32297 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032298 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032299 return NULL;
32300 }
32301 Py_ssize_t _children_capacity = 1;
32302 Py_ssize_t _n = 0;
32303 { // ',' (expression ['as' star_target])
32304 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032305 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032306 return NULL;
32307 }
32308 D(fprintf(stderr, "%*c> _loop0_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
32309 Token * _literal;
32310 void *elem;
32311 while (
32312 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32313 &&
32314 (elem = _tmp_198_rule(p)) // expression ['as' star_target]
32315 )
32316 {
32317 _res = elem;
32318 if (_res == NULL && PyErr_Occurred()) {
32319 p->error_indicator = 1;
32320 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032321 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032322 return NULL;
32323 }
32324 if (_n == _children_capacity) {
32325 _children_capacity *= 2;
32326 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
32327 if (!_new_children) {
32328 p->error_indicator = 1;
32329 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032330 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032331 return NULL;
32332 }
32333 _children = _new_children;
32334 }
32335 _children[_n++] = _res;
32336 _mark = p->mark;
32337 }
32338 p->mark = _mark;
32339 D(fprintf(stderr, "%*c%s _loop0_164[%d-%d]: %s failed!\n", p->level, ' ',
32340 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
32341 }
32342 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
32343 if (!_seq) {
32344 PyMem_Free(_children);
32345 p->error_indicator = 1;
32346 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032347 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032348 return NULL;
32349 }
32350 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
32351 PyMem_Free(_children);
32352 _PyPegen_insert_memo(p, _start_mark, _loop0_164_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032353 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032354 return _seq;
32355}
32356
32357// _gather_163: (expression ['as' star_target]) _loop0_164
32358static asdl_seq *
32359_gather_163_rule(Parser *p)
32360{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032361 if (p->level++ == MAXSTACK) {
32362 p->error_indicator = 1;
32363 PyErr_NoMemory();
32364 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032365 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032366 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032367 return NULL;
32368 }
32369 asdl_seq * _res = NULL;
32370 int _mark = p->mark;
32371 { // (expression ['as' star_target]) _loop0_164
32372 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032373 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032374 return NULL;
32375 }
32376 D(fprintf(stderr, "%*c> _gather_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_164"));
32377 void *elem;
32378 asdl_seq * seq;
32379 if (
32380 (elem = _tmp_198_rule(p)) // expression ['as' star_target]
32381 &&
32382 (seq = _loop0_164_rule(p)) // _loop0_164
32383 )
32384 {
32385 D(fprintf(stderr, "%*c+ _gather_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_164"));
32386 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
32387 goto done;
32388 }
32389 p->mark = _mark;
32390 D(fprintf(stderr, "%*c%s _gather_163[%d-%d]: %s failed!\n", p->level, ' ',
32391 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_164"));
32392 }
32393 _res = NULL;
32394 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032395 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032396 return _res;
32397}
32398
32399// _loop0_166: ',' (expressions ['as' star_target])
32400static asdl_seq *
32401_loop0_166_rule(Parser *p)
32402{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032403 if (p->level++ == MAXSTACK) {
32404 p->error_indicator = 1;
32405 PyErr_NoMemory();
32406 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032407 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032408 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032409 return NULL;
32410 }
32411 void *_res = NULL;
32412 int _mark = p->mark;
32413 int _start_mark = p->mark;
32414 void **_children = PyMem_Malloc(sizeof(void *));
32415 if (!_children) {
32416 p->error_indicator = 1;
32417 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032418 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032419 return NULL;
32420 }
32421 Py_ssize_t _children_capacity = 1;
32422 Py_ssize_t _n = 0;
32423 { // ',' (expressions ['as' star_target])
32424 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032425 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032426 return NULL;
32427 }
32428 D(fprintf(stderr, "%*c> _loop0_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
32429 Token * _literal;
32430 void *elem;
32431 while (
32432 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32433 &&
32434 (elem = _tmp_199_rule(p)) // expressions ['as' star_target]
32435 )
32436 {
32437 _res = elem;
32438 if (_res == NULL && PyErr_Occurred()) {
32439 p->error_indicator = 1;
32440 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032441 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032442 return NULL;
32443 }
32444 if (_n == _children_capacity) {
32445 _children_capacity *= 2;
32446 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
32447 if (!_new_children) {
32448 p->error_indicator = 1;
32449 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032450 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032451 return NULL;
32452 }
32453 _children = _new_children;
32454 }
32455 _children[_n++] = _res;
32456 _mark = p->mark;
32457 }
32458 p->mark = _mark;
32459 D(fprintf(stderr, "%*c%s _loop0_166[%d-%d]: %s failed!\n", p->level, ' ',
32460 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
32461 }
32462 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
32463 if (!_seq) {
32464 PyMem_Free(_children);
32465 p->error_indicator = 1;
32466 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032467 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032468 return NULL;
32469 }
32470 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
32471 PyMem_Free(_children);
32472 _PyPegen_insert_memo(p, _start_mark, _loop0_166_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032473 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032474 return _seq;
32475}
32476
32477// _gather_165: (expressions ['as' star_target]) _loop0_166
32478static asdl_seq *
32479_gather_165_rule(Parser *p)
32480{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032481 if (p->level++ == MAXSTACK) {
32482 p->error_indicator = 1;
32483 PyErr_NoMemory();
32484 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032485 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032486 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032487 return NULL;
32488 }
32489 asdl_seq * _res = NULL;
32490 int _mark = p->mark;
32491 { // (expressions ['as' star_target]) _loop0_166
32492 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032493 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032494 return NULL;
32495 }
32496 D(fprintf(stderr, "%*c> _gather_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_166"));
32497 void *elem;
32498 asdl_seq * seq;
32499 if (
32500 (elem = _tmp_199_rule(p)) // expressions ['as' star_target]
32501 &&
32502 (seq = _loop0_166_rule(p)) // _loop0_166
32503 )
32504 {
32505 D(fprintf(stderr, "%*c+ _gather_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_166"));
32506 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
32507 goto done;
32508 }
32509 p->mark = _mark;
32510 D(fprintf(stderr, "%*c%s _gather_165[%d-%d]: %s failed!\n", p->level, ' ',
32511 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_166"));
32512 }
32513 _res = NULL;
32514 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032515 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032516 return _res;
32517}
32518
32519// _loop0_168: ',' (expression ['as' star_target])
32520static asdl_seq *
32521_loop0_168_rule(Parser *p)
32522{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032523 if (p->level++ == MAXSTACK) {
32524 p->error_indicator = 1;
32525 PyErr_NoMemory();
32526 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032527 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032528 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032529 return NULL;
32530 }
32531 void *_res = NULL;
32532 int _mark = p->mark;
32533 int _start_mark = p->mark;
32534 void **_children = PyMem_Malloc(sizeof(void *));
32535 if (!_children) {
32536 p->error_indicator = 1;
32537 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032538 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032539 return NULL;
32540 }
32541 Py_ssize_t _children_capacity = 1;
32542 Py_ssize_t _n = 0;
32543 { // ',' (expression ['as' star_target])
32544 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032545 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032546 return NULL;
32547 }
32548 D(fprintf(stderr, "%*c> _loop0_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
32549 Token * _literal;
32550 void *elem;
32551 while (
32552 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32553 &&
32554 (elem = _tmp_200_rule(p)) // expression ['as' star_target]
32555 )
32556 {
32557 _res = elem;
32558 if (_res == NULL && PyErr_Occurred()) {
32559 p->error_indicator = 1;
32560 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032561 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032562 return NULL;
32563 }
32564 if (_n == _children_capacity) {
32565 _children_capacity *= 2;
32566 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
32567 if (!_new_children) {
32568 p->error_indicator = 1;
32569 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032570 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032571 return NULL;
32572 }
32573 _children = _new_children;
32574 }
32575 _children[_n++] = _res;
32576 _mark = p->mark;
32577 }
32578 p->mark = _mark;
32579 D(fprintf(stderr, "%*c%s _loop0_168[%d-%d]: %s failed!\n", p->level, ' ',
32580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
32581 }
32582 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
32583 if (!_seq) {
32584 PyMem_Free(_children);
32585 p->error_indicator = 1;
32586 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032587 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032588 return NULL;
32589 }
32590 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
32591 PyMem_Free(_children);
32592 _PyPegen_insert_memo(p, _start_mark, _loop0_168_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032593 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032594 return _seq;
32595}
32596
32597// _gather_167: (expression ['as' star_target]) _loop0_168
32598static asdl_seq *
32599_gather_167_rule(Parser *p)
32600{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032601 if (p->level++ == MAXSTACK) {
32602 p->error_indicator = 1;
32603 PyErr_NoMemory();
32604 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032605 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032606 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032607 return NULL;
32608 }
32609 asdl_seq * _res = NULL;
32610 int _mark = p->mark;
32611 { // (expression ['as' star_target]) _loop0_168
32612 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032613 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032614 return NULL;
32615 }
32616 D(fprintf(stderr, "%*c> _gather_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_168"));
32617 void *elem;
32618 asdl_seq * seq;
32619 if (
32620 (elem = _tmp_200_rule(p)) // expression ['as' star_target]
32621 &&
32622 (seq = _loop0_168_rule(p)) // _loop0_168
32623 )
32624 {
32625 D(fprintf(stderr, "%*c+ _gather_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_168"));
32626 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
32627 goto done;
32628 }
32629 p->mark = _mark;
32630 D(fprintf(stderr, "%*c%s _gather_167[%d-%d]: %s failed!\n", p->level, ' ',
32631 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_168"));
32632 }
32633 _res = NULL;
32634 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032635 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032636 return _res;
32637}
32638
32639// _loop0_170: ',' (expressions ['as' star_target])
32640static asdl_seq *
32641_loop0_170_rule(Parser *p)
32642{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032643 if (p->level++ == MAXSTACK) {
32644 p->error_indicator = 1;
32645 PyErr_NoMemory();
32646 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032647 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032648 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032649 return NULL;
32650 }
32651 void *_res = NULL;
32652 int _mark = p->mark;
32653 int _start_mark = p->mark;
32654 void **_children = PyMem_Malloc(sizeof(void *));
32655 if (!_children) {
32656 p->error_indicator = 1;
32657 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032658 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032659 return NULL;
32660 }
32661 Py_ssize_t _children_capacity = 1;
32662 Py_ssize_t _n = 0;
32663 { // ',' (expressions ['as' star_target])
32664 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032665 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032666 return NULL;
32667 }
32668 D(fprintf(stderr, "%*c> _loop0_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
32669 Token * _literal;
32670 void *elem;
32671 while (
32672 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32673 &&
32674 (elem = _tmp_201_rule(p)) // expressions ['as' star_target]
32675 )
32676 {
32677 _res = elem;
32678 if (_res == NULL && PyErr_Occurred()) {
32679 p->error_indicator = 1;
32680 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032681 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032682 return NULL;
32683 }
32684 if (_n == _children_capacity) {
32685 _children_capacity *= 2;
32686 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
32687 if (!_new_children) {
32688 p->error_indicator = 1;
32689 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032690 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032691 return NULL;
32692 }
32693 _children = _new_children;
32694 }
32695 _children[_n++] = _res;
32696 _mark = p->mark;
32697 }
32698 p->mark = _mark;
32699 D(fprintf(stderr, "%*c%s _loop0_170[%d-%d]: %s failed!\n", p->level, ' ',
32700 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
32701 }
32702 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
32703 if (!_seq) {
32704 PyMem_Free(_children);
32705 p->error_indicator = 1;
32706 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032707 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032708 return NULL;
32709 }
32710 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
32711 PyMem_Free(_children);
32712 _PyPegen_insert_memo(p, _start_mark, _loop0_170_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032713 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032714 return _seq;
32715}
32716
32717// _gather_169: (expressions ['as' star_target]) _loop0_170
32718static asdl_seq *
32719_gather_169_rule(Parser *p)
32720{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032721 if (p->level++ == MAXSTACK) {
32722 p->error_indicator = 1;
32723 PyErr_NoMemory();
32724 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032725 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032726 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032727 return NULL;
32728 }
32729 asdl_seq * _res = NULL;
32730 int _mark = p->mark;
32731 { // (expressions ['as' star_target]) _loop0_170
32732 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032733 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032734 return NULL;
32735 }
32736 D(fprintf(stderr, "%*c> _gather_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_170"));
32737 void *elem;
32738 asdl_seq * seq;
32739 if (
32740 (elem = _tmp_201_rule(p)) // expressions ['as' star_target]
32741 &&
32742 (seq = _loop0_170_rule(p)) // _loop0_170
32743 )
32744 {
32745 D(fprintf(stderr, "%*c+ _gather_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_170"));
32746 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
32747 goto done;
32748 }
32749 p->mark = _mark;
32750 D(fprintf(stderr, "%*c%s _gather_169[%d-%d]: %s failed!\n", p->level, ' ',
32751 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_170"));
32752 }
32753 _res = NULL;
32754 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032755 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032756 return _res;
32757}
32758
32759// _tmp_171: 'except' | 'finally'
32760static void *
32761_tmp_171_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010032762{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032763 if (p->level++ == MAXSTACK) {
32764 p->error_indicator = 1;
32765 PyErr_NoMemory();
32766 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010032767 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032768 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032769 return NULL;
32770 }
32771 void * _res = NULL;
32772 int _mark = p->mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032773 { // 'except'
Pablo Galindoa77aac42021-04-23 14:27:05 +010032774 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032775 p->level--;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032776 return NULL;
32777 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032778 D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010032779 Token * _keyword;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032780 if (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032781 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindoa77aac42021-04-23 14:27:05 +010032782 )
32783 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032784 D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032785 _res = _keyword;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032786 goto done;
32787 }
32788 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032789 D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032790 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except'"));
32791 }
32792 { // 'finally'
32793 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032794 p->level--;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032795 return NULL;
32796 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032797 D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032798 Token * _keyword;
32799 if (
32800 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
32801 )
32802 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032803 D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032804 _res = _keyword;
32805 goto done;
32806 }
32807 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032808 D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032809 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032810 }
32811 _res = NULL;
32812 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032813 p->level--;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032814 return _res;
32815}
32816
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032817// _tmp_172: 'as' NAME
Pablo Galindoa77aac42021-04-23 14:27:05 +010032818static void *
32819_tmp_172_rule(Parser *p)
32820{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032821 if (p->level++ == MAXSTACK) {
32822 p->error_indicator = 1;
32823 PyErr_NoMemory();
32824 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010032825 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032826 p->level--;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032827 return NULL;
32828 }
32829 void * _res = NULL;
32830 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032831 { // 'as' NAME
32832 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032833 p->level--;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032834 return NULL;
32835 }
32836 D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
32837 Token * _keyword;
32838 expr_ty name_var;
32839 if (
32840 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32841 &&
32842 (name_var = _PyPegen_name_token(p)) // NAME
32843 )
32844 {
32845 D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
32846 _res = _PyPegen_dummy_name(p, _keyword, name_var);
32847 goto done;
32848 }
32849 p->mark = _mark;
32850 D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ',
32851 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
32852 }
32853 _res = NULL;
32854 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032855 p->level--;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032856 return _res;
32857}
32858
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032859// _tmp_173: 'as' NAME
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032860static void *
32861_tmp_173_rule(Parser *p)
32862{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032863 if (p->level++ == MAXSTACK) {
32864 p->error_indicator = 1;
32865 PyErr_NoMemory();
32866 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032867 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032868 p->level--;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032869 return NULL;
32870 }
32871 void * _res = NULL;
32872 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032873 { // 'as' NAME
32874 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032875 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032876 return NULL;
32877 }
32878 D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
32879 Token * _keyword;
32880 expr_ty name_var;
32881 if (
32882 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32883 &&
32884 (name_var = _PyPegen_name_token(p)) // NAME
32885 )
32886 {
32887 D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
32888 _res = _PyPegen_dummy_name(p, _keyword, name_var);
32889 goto done;
32890 }
32891 p->mark = _mark;
32892 D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ',
32893 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
32894 }
32895 _res = NULL;
32896 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032897 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032898 return _res;
32899}
32900
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032901// _tmp_174: 'as' NAME
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032902static void *
32903_tmp_174_rule(Parser *p)
32904{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032905 if (p->level++ == MAXSTACK) {
32906 p->error_indicator = 1;
32907 PyErr_NoMemory();
32908 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032909 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032910 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032911 return NULL;
32912 }
32913 void * _res = NULL;
32914 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032915 { // 'as' NAME
32916 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032917 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032918 return NULL;
32919 }
32920 D(fprintf(stderr, "%*c> _tmp_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
32921 Token * _keyword;
32922 expr_ty name_var;
32923 if (
32924 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32925 &&
32926 (name_var = _PyPegen_name_token(p)) // NAME
32927 )
32928 {
32929 D(fprintf(stderr, "%*c+ _tmp_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
32930 _res = _PyPegen_dummy_name(p, _keyword, name_var);
32931 goto done;
32932 }
32933 p->mark = _mark;
32934 D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ',
32935 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
32936 }
32937 _res = NULL;
32938 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032939 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032940 return _res;
32941}
32942
32943// _tmp_175: positional_patterns ','
32944static void *
32945_tmp_175_rule(Parser *p)
32946{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032947 if (p->level++ == MAXSTACK) {
32948 p->error_indicator = 1;
32949 PyErr_NoMemory();
32950 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032951 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032952 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032953 return NULL;
32954 }
32955 void * _res = NULL;
32956 int _mark = p->mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032957 { // positional_patterns ','
32958 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032959 p->level--;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032960 return NULL;
32961 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032962 D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "positional_patterns ','"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032963 Token * _literal;
32964 asdl_pattern_seq* positional_patterns_var;
32965 if (
32966 (positional_patterns_var = positional_patterns_rule(p)) // positional_patterns
32967 &&
32968 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32969 )
32970 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032971 D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "positional_patterns ','"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032972 _res = _PyPegen_dummy_name(p, positional_patterns_var, _literal);
32973 goto done;
32974 }
32975 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032976 D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032977 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "positional_patterns ','"));
32978 }
32979 _res = NULL;
32980 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032981 p->level--;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032982 return _res;
32983}
32984
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032985// _tmp_176: '->' expression
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032986static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000032987_tmp_176_rule(Parser *p)
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032988{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032989 if (p->level++ == MAXSTACK) {
32990 p->error_indicator = 1;
32991 PyErr_NoMemory();
32992 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032993 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000032994 p->level--;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032995 return NULL;
32996 }
32997 void * _res = NULL;
32998 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032999 { // '->' expression
33000 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033001 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010033002 return NULL;
33003 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033004 D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010033005 Token * _literal;
33006 expr_ty expression_var;
33007 if (
33008 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
33009 &&
33010 (expression_var = expression_rule(p)) // expression
33011 )
33012 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033013 D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010033014 _res = _PyPegen_dummy_name(p, _literal, expression_var);
33015 goto done;
33016 }
33017 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033018 D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010033019 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
33020 }
33021 _res = NULL;
33022 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033023 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010033024 return _res;
33025}
33026
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033027// _tmp_177: '(' arguments? ')'
Pablo Galindo56c95df2021-04-21 15:28:21 +010033028static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033029_tmp_177_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010033030{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033031 if (p->level++ == MAXSTACK) {
33032 p->error_indicator = 1;
33033 PyErr_NoMemory();
33034 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010033035 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033036 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010033037 return NULL;
33038 }
33039 void * _res = NULL;
33040 int _mark = p->mark;
33041 { // '(' arguments? ')'
33042 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033043 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010033044 return NULL;
33045 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033046 D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010033047 Token * _literal;
33048 Token * _literal_1;
33049 void *_opt_var;
33050 UNUSED(_opt_var); // Silence compiler warnings
33051 if (
33052 (_literal = _PyPegen_expect_token(p, 7)) // token='('
33053 &&
Łukasz Langa5c9cab52021-10-19 22:31:18 +020033054 (_opt_var = arguments_rule(p), !p->error_indicator) // arguments?
Pablo Galindo56c95df2021-04-21 15:28:21 +010033055 &&
33056 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
33057 )
33058 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033059 D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010033060 _res = _PyPegen_dummy_name(p, _literal, _opt_var, _literal_1);
33061 goto done;
33062 }
33063 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033064 D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010033065 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
33066 }
33067 _res = NULL;
33068 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033069 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010033070 return _res;
33071}
33072
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033073// _loop0_179: ',' double_starred_kvpair
Pablo Galindo56c95df2021-04-21 15:28:21 +010033074static asdl_seq *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033075_loop0_179_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010033076{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033077 if (p->level++ == MAXSTACK) {
33078 p->error_indicator = 1;
33079 PyErr_NoMemory();
33080 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010033081 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033082 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010033083 return NULL;
33084 }
33085 void *_res = NULL;
33086 int _mark = p->mark;
33087 int _start_mark = p->mark;
33088 void **_children = PyMem_Malloc(sizeof(void *));
33089 if (!_children) {
33090 p->error_indicator = 1;
33091 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033092 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010033093 return NULL;
33094 }
33095 Py_ssize_t _children_capacity = 1;
33096 Py_ssize_t _n = 0;
Pablo Galindoda743502021-04-15 14:06:39 +010033097 { // ',' double_starred_kvpair
33098 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033099 p->level--;
Pablo Galindoda743502021-04-15 14:06:39 +010033100 return NULL;
33101 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033102 D(fprintf(stderr, "%*c> _loop0_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindoda743502021-04-15 14:06:39 +010033103 Token * _literal;
33104 KeyValuePair* elem;
33105 while (
33106 (_literal = _PyPegen_expect_token(p, 12)) // token=','
33107 &&
33108 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
33109 )
33110 {
33111 _res = elem;
33112 if (_res == NULL && PyErr_Occurred()) {
33113 p->error_indicator = 1;
33114 PyMem_Free(_children);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033115 p->level--;
Pablo Galindoda743502021-04-15 14:06:39 +010033116 return NULL;
33117 }
33118 if (_n == _children_capacity) {
33119 _children_capacity *= 2;
33120 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
33121 if (!_new_children) {
33122 p->error_indicator = 1;
33123 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033124 p->level--;
Pablo Galindoda743502021-04-15 14:06:39 +010033125 return NULL;
33126 }
33127 _children = _new_children;
33128 }
33129 _children[_n++] = _res;
33130 _mark = p->mark;
33131 }
33132 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033133 D(fprintf(stderr, "%*c%s _loop0_179[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010033134 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
33135 }
33136 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
33137 if (!_seq) {
33138 PyMem_Free(_children);
33139 p->error_indicator = 1;
33140 PyErr_NoMemory();
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033141 p->level--;
Pablo Galindoda743502021-04-15 14:06:39 +010033142 return NULL;
33143 }
33144 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
33145 PyMem_Free(_children);
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033146 _PyPegen_insert_memo(p, _start_mark, _loop0_179_type, _seq);
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033147 p->level--;
Pablo Galindoda743502021-04-15 14:06:39 +010033148 return _seq;
33149}
33150
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033151// _gather_178: double_starred_kvpair _loop0_179
Pablo Galindoda743502021-04-15 14:06:39 +010033152static asdl_seq *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033153_gather_178_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010033154{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033155 if (p->level++ == MAXSTACK) {
33156 p->error_indicator = 1;
33157 PyErr_NoMemory();
33158 }
Pablo Galindoda743502021-04-15 14:06:39 +010033159 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033160 p->level--;
Pablo Galindoda743502021-04-15 14:06:39 +010033161 return NULL;
33162 }
33163 asdl_seq * _res = NULL;
33164 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033165 { // double_starred_kvpair _loop0_179
Pablo Galindoda743502021-04-15 14:06:39 +010033166 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033167 p->level--;
Pablo Galindoda743502021-04-15 14:06:39 +010033168 return NULL;
33169 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033170 D(fprintf(stderr, "%*c> _gather_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_179"));
Pablo Galindoda743502021-04-15 14:06:39 +010033171 KeyValuePair* elem;
33172 asdl_seq * seq;
33173 if (
33174 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
33175 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033176 (seq = _loop0_179_rule(p)) // _loop0_179
Pablo Galindoda743502021-04-15 14:06:39 +010033177 )
33178 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033179 D(fprintf(stderr, "%*c+ _gather_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_179"));
Pablo Galindoda743502021-04-15 14:06:39 +010033180 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
33181 goto done;
33182 }
33183 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033184 D(fprintf(stderr, "%*c%s _gather_178[%d-%d]: %s failed!\n", p->level, ' ',
33185 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_179"));
Pablo Galindoda743502021-04-15 14:06:39 +010033186 }
33187 _res = NULL;
33188 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033189 p->level--;
Pablo Galindoda743502021-04-15 14:06:39 +010033190 return _res;
33191}
33192
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033193// _tmp_180: '}' | ','
Pablo Galindo206cbda2021-02-07 18:42:21 +000033194static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033195_tmp_180_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010033196{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033197 if (p->level++ == MAXSTACK) {
33198 p->error_indicator = 1;
33199 PyErr_NoMemory();
33200 }
Pablo Galindoda743502021-04-15 14:06:39 +010033201 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033202 p->level--;
Pablo Galindoda743502021-04-15 14:06:39 +010033203 return NULL;
33204 }
33205 void * _res = NULL;
33206 int _mark = p->mark;
33207 { // '}'
33208 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033209 p->level--;
Pablo Galindoda743502021-04-15 14:06:39 +010033210 return NULL;
33211 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033212 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010033213 Token * _literal;
33214 if (
33215 (_literal = _PyPegen_expect_token(p, 26)) // token='}'
33216 )
33217 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033218 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010033219 _res = _literal;
33220 goto done;
33221 }
33222 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033223 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010033224 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'"));
33225 }
33226 { // ','
33227 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033228 p->level--;
Pablo Galindoda743502021-04-15 14:06:39 +010033229 return NULL;
33230 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033231 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010033232 Token * _literal;
33233 if (
33234 (_literal = _PyPegen_expect_token(p, 12)) // token=','
33235 )
33236 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033237 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010033238 _res = _literal;
33239 goto done;
33240 }
33241 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033242 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010033243 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
33244 }
33245 _res = NULL;
33246 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033247 p->level--;
Pablo Galindoda743502021-04-15 14:06:39 +010033248 return _res;
33249}
33250
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033251// _tmp_181: star_targets '='
Pablo Galindoda743502021-04-15 14:06:39 +010033252static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033253_tmp_181_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000033254{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033255 if (p->level++ == MAXSTACK) {
33256 p->error_indicator = 1;
33257 PyErr_NoMemory();
33258 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000033259 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033260 p->level--;
Pablo Galindo206cbda2021-02-07 18:42:21 +000033261 return NULL;
33262 }
33263 void * _res = NULL;
33264 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033265 { // star_targets '='
33266 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033267 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033268 return NULL;
33269 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033270 D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033271 Token * _literal;
33272 expr_ty z;
33273 if (
33274 (z = star_targets_rule(p)) // star_targets
33275 &&
33276 (_literal = _PyPegen_expect_token(p, 22)) // token='='
33277 )
33278 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033279 D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033280 _res = z;
33281 if (_res == NULL && PyErr_Occurred()) {
33282 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033283 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033284 return NULL;
33285 }
33286 goto done;
33287 }
33288 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033289 D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033290 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
33291 }
33292 _res = NULL;
33293 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033294 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033295 return _res;
33296}
33297
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033298// _tmp_182: '.' | '...'
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070033299static void *
33300_tmp_182_rule(Parser *p)
33301{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033302 if (p->level++ == MAXSTACK) {
33303 p->error_indicator = 1;
33304 PyErr_NoMemory();
33305 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070033306 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033307 p->level--;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070033308 return NULL;
33309 }
33310 void * _res = NULL;
33311 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033312 { // '.'
33313 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033314 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033315 return NULL;
33316 }
33317 D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
33318 Token * _literal;
33319 if (
33320 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
33321 )
33322 {
33323 D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
33324 _res = _literal;
33325 goto done;
33326 }
33327 p->mark = _mark;
33328 D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
33329 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
33330 }
33331 { // '...'
33332 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033333 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033334 return NULL;
33335 }
33336 D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
33337 Token * _literal;
33338 if (
33339 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
33340 )
33341 {
33342 D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
33343 _res = _literal;
33344 goto done;
33345 }
33346 p->mark = _mark;
33347 D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
33348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
33349 }
33350 _res = NULL;
33351 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033352 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033353 return _res;
33354}
33355
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033356// _tmp_183: '.' | '...'
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033357static void *
33358_tmp_183_rule(Parser *p)
33359{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033360 if (p->level++ == MAXSTACK) {
33361 p->error_indicator = 1;
33362 PyErr_NoMemory();
33363 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033364 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033365 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033366 return NULL;
33367 }
33368 void * _res = NULL;
33369 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033370 { // '.'
33371 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033372 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033373 return NULL;
33374 }
33375 D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
33376 Token * _literal;
33377 if (
33378 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
33379 )
33380 {
33381 D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
33382 _res = _literal;
33383 goto done;
33384 }
33385 p->mark = _mark;
33386 D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ',
33387 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
33388 }
33389 { // '...'
33390 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033391 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033392 return NULL;
33393 }
33394 D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
33395 Token * _literal;
33396 if (
33397 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
33398 )
33399 {
33400 D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
33401 _res = _literal;
33402 goto done;
33403 }
33404 p->mark = _mark;
33405 D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ',
33406 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
33407 }
33408 _res = NULL;
33409 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033410 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033411 return _res;
33412}
33413
33414// _tmp_184: '@' named_expression NEWLINE
33415static void *
33416_tmp_184_rule(Parser *p)
33417{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033418 if (p->level++ == MAXSTACK) {
33419 p->error_indicator = 1;
33420 PyErr_NoMemory();
33421 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033422 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033423 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033424 return NULL;
33425 }
33426 void * _res = NULL;
33427 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033428 { // '@' named_expression NEWLINE
33429 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033430 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033431 return NULL;
33432 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033433 D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033434 Token * _literal;
33435 expr_ty f;
33436 Token * newline_var;
33437 if (
33438 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
33439 &&
33440 (f = named_expression_rule(p)) // named_expression
33441 &&
33442 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
33443 )
33444 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033445 D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033446 _res = f;
33447 if (_res == NULL && PyErr_Occurred()) {
33448 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033449 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033450 return NULL;
33451 }
33452 goto done;
33453 }
33454 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033455 D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
33457 }
33458 _res = NULL;
33459 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033460 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033461 return _res;
33462}
33463
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033464// _tmp_185: ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033465static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033466_tmp_185_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033467{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033468 if (p->level++ == MAXSTACK) {
33469 p->error_indicator = 1;
33470 PyErr_NoMemory();
33471 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033472 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033473 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033474 return NULL;
33475 }
33476 void * _res = NULL;
33477 int _mark = p->mark;
33478 { // ',' star_expression
33479 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033480 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033481 return NULL;
33482 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033483 D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033484 Token * _literal;
33485 expr_ty c;
33486 if (
33487 (_literal = _PyPegen_expect_token(p, 12)) // token=','
33488 &&
33489 (c = star_expression_rule(p)) // star_expression
33490 )
33491 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033492 D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033493 _res = c;
33494 if (_res == NULL && PyErr_Occurred()) {
33495 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033496 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033497 return NULL;
33498 }
33499 goto done;
33500 }
33501 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033502 D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033503 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
33504 }
33505 _res = NULL;
33506 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033507 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033508 return _res;
33509}
33510
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033511// _tmp_186: ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033512static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033513_tmp_186_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033514{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033515 if (p->level++ == MAXSTACK) {
33516 p->error_indicator = 1;
33517 PyErr_NoMemory();
33518 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033519 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033520 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033521 return NULL;
33522 }
33523 void * _res = NULL;
33524 int _mark = p->mark;
33525 { // ',' expression
33526 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033527 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033528 return NULL;
33529 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033530 D(fprintf(stderr, "%*c> _tmp_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033531 Token * _literal;
33532 expr_ty c;
33533 if (
33534 (_literal = _PyPegen_expect_token(p, 12)) // token=','
33535 &&
33536 (c = expression_rule(p)) // expression
33537 )
33538 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033539 D(fprintf(stderr, "%*c+ _tmp_186[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033540 _res = c;
33541 if (_res == NULL && PyErr_Occurred()) {
33542 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033543 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033544 return NULL;
33545 }
33546 goto done;
33547 }
33548 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033549 D(fprintf(stderr, "%*c%s _tmp_186[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033550 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
33551 }
33552 _res = NULL;
33553 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033554 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033555 return _res;
33556}
33557
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033558// _tmp_187: 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033559static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033560_tmp_187_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033561{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033562 if (p->level++ == MAXSTACK) {
33563 p->error_indicator = 1;
33564 PyErr_NoMemory();
33565 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033566 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033567 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033568 return NULL;
33569 }
33570 void * _res = NULL;
33571 int _mark = p->mark;
33572 { // 'or' conjunction
33573 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033574 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033575 return NULL;
33576 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033577 D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033578 Token * _keyword;
33579 expr_ty c;
33580 if (
33581 (_keyword = _PyPegen_expect_token(p, 531)) // token='or'
33582 &&
33583 (c = conjunction_rule(p)) // conjunction
33584 )
33585 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033586 D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033587 _res = c;
33588 if (_res == NULL && PyErr_Occurred()) {
33589 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033590 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033591 return NULL;
33592 }
33593 goto done;
33594 }
33595 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033596 D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
33598 }
33599 _res = NULL;
33600 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033601 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033602 return _res;
33603}
33604
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033605// _tmp_188: 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033606static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033607_tmp_188_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033608{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033609 if (p->level++ == MAXSTACK) {
33610 p->error_indicator = 1;
33611 PyErr_NoMemory();
33612 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033613 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033614 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033615 return NULL;
33616 }
33617 void * _res = NULL;
33618 int _mark = p->mark;
33619 { // 'and' inversion
33620 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033621 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033622 return NULL;
33623 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033624 D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033625 Token * _keyword;
33626 expr_ty c;
33627 if (
33628 (_keyword = _PyPegen_expect_token(p, 532)) // token='and'
33629 &&
33630 (c = inversion_rule(p)) // inversion
33631 )
33632 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033633 D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033634 _res = c;
33635 if (_res == NULL && PyErr_Occurred()) {
33636 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033637 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033638 return NULL;
33639 }
33640 goto done;
33641 }
33642 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070033643 D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033644 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070033645 }
33646 _res = NULL;
33647 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033648 p->level--;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070033649 return _res;
33650}
33651
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033652// _tmp_189: 'if' disjunction
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070033653static void *
33654_tmp_189_rule(Parser *p)
33655{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033656 if (p->level++ == MAXSTACK) {
33657 p->error_indicator = 1;
33658 PyErr_NoMemory();
33659 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070033660 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033661 p->level--;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070033662 return NULL;
33663 }
33664 void * _res = NULL;
33665 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033666 { // 'if' disjunction
33667 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033668 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033669 return NULL;
33670 }
33671 D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
33672 Token * _keyword;
33673 expr_ty z;
33674 if (
33675 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
33676 &&
33677 (z = disjunction_rule(p)) // disjunction
33678 )
33679 {
33680 D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
33681 _res = z;
33682 if (_res == NULL && PyErr_Occurred()) {
33683 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033684 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033685 return NULL;
33686 }
33687 goto done;
33688 }
33689 p->mark = _mark;
33690 D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ',
33691 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
33692 }
33693 _res = NULL;
33694 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033695 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033696 return _res;
33697}
33698
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033699// _tmp_190: 'if' disjunction
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033700static void *
33701_tmp_190_rule(Parser *p)
33702{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033703 if (p->level++ == MAXSTACK) {
33704 p->error_indicator = 1;
33705 PyErr_NoMemory();
33706 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033707 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033708 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033709 return NULL;
33710 }
33711 void * _res = NULL;
33712 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033713 { // 'if' disjunction
33714 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033715 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033716 return NULL;
33717 }
33718 D(fprintf(stderr, "%*c> _tmp_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
33719 Token * _keyword;
33720 expr_ty z;
33721 if (
33722 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
33723 &&
33724 (z = disjunction_rule(p)) // disjunction
33725 )
33726 {
33727 D(fprintf(stderr, "%*c+ _tmp_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
33728 _res = z;
33729 if (_res == NULL && PyErr_Occurred()) {
33730 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033731 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033732 return NULL;
33733 }
33734 goto done;
33735 }
33736 p->mark = _mark;
33737 D(fprintf(stderr, "%*c%s _tmp_190[%d-%d]: %s failed!\n", p->level, ' ',
33738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
33739 }
33740 _res = NULL;
33741 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033742 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033743 return _res;
33744}
33745
33746// _tmp_191: starred_expression | (assignment_expression | expression !':=') !'='
33747static void *
33748_tmp_191_rule(Parser *p)
33749{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033750 if (p->level++ == MAXSTACK) {
33751 p->error_indicator = 1;
33752 PyErr_NoMemory();
33753 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033754 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033755 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033756 return NULL;
33757 }
33758 void * _res = NULL;
33759 int _mark = p->mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010033760 { // starred_expression
33761 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033762 p->level--;
Pablo Galindo4a97b152020-09-02 17:44:19 +010033763 return NULL;
33764 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033765 D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010033766 expr_ty starred_expression_var;
33767 if (
33768 (starred_expression_var = starred_expression_rule(p)) // starred_expression
33769 )
33770 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033771 D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010033772 _res = starred_expression_var;
33773 goto done;
33774 }
33775 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033776 D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010033777 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
33778 }
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000033779 { // (assignment_expression | expression !':=') !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010033780 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033781 p->level--;
Pablo Galindo4a97b152020-09-02 17:44:19 +010033782 return NULL;
33783 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033784 D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='"));
33785 void *_tmp_202_var;
Pablo Galindo4a97b152020-09-02 17:44:19 +010033786 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033787 (_tmp_202_var = _tmp_202_rule(p)) // assignment_expression | expression !':='
Pablo Galindo4a97b152020-09-02 17:44:19 +010033788 &&
33789 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
33790 )
33791 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033792 D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='"));
33793 _res = _tmp_202_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010033794 goto done;
33795 }
33796 p->mark = _mark;
33797 D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033798 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(assignment_expression | expression !':=') !'='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010033799 }
33800 _res = NULL;
33801 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033802 p->level--;
Pablo Galindoa77aac42021-04-23 14:27:05 +010033803 return _res;
33804}
33805
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033806// _tmp_192: ',' star_target
Pablo Galindoa77aac42021-04-23 14:27:05 +010033807static void *
33808_tmp_192_rule(Parser *p)
33809{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033810 if (p->level++ == MAXSTACK) {
33811 p->error_indicator = 1;
33812 PyErr_NoMemory();
33813 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010033814 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033815 p->level--;
Pablo Galindoa77aac42021-04-23 14:27:05 +010033816 return NULL;
33817 }
33818 void * _res = NULL;
33819 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033820 { // ',' star_target
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070033821 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033822 p->level--;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070033823 return NULL;
33824 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033825 D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070033826 Token * _literal;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033827 expr_ty c;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070033828 if (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033829 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070033830 &&
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033831 (c = star_target_rule(p)) // star_target
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070033832 )
33833 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033834 D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
33835 _res = c;
33836 if (_res == NULL && PyErr_Occurred()) {
33837 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033838 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033839 return NULL;
33840 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070033841 goto done;
33842 }
33843 p->mark = _mark;
33844 D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033845 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070033846 }
33847 _res = NULL;
33848 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033849 p->level--;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070033850 return _res;
33851}
33852
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033853// _tmp_193: ',' star_target
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070033854static void *
33855_tmp_193_rule(Parser *p)
33856{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033857 if (p->level++ == MAXSTACK) {
33858 p->error_indicator = 1;
33859 PyErr_NoMemory();
33860 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070033861 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033862 p->level--;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070033863 return NULL;
33864 }
33865 void * _res = NULL;
33866 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033867 { // ',' star_target
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070033868 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033869 p->level--;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070033870 return NULL;
33871 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033872 D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070033873 Token * _literal;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033874 expr_ty c;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070033875 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033876 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070033877 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033878 (c = star_target_rule(p)) // star_target
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070033879 )
33880 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033881 D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
33882 _res = c;
33883 if (_res == NULL && PyErr_Occurred()) {
33884 p->error_indicator = 1;
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033885 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033886 return NULL;
33887 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070033888 goto done;
33889 }
33890 p->mark = _mark;
33891 D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033892 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070033893 }
33894 _res = NULL;
33895 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033896 p->level--;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070033897 return _res;
33898}
33899
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033900// _tmp_194: star_targets '='
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070033901static void *
33902_tmp_194_rule(Parser *p)
33903{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033904 if (p->level++ == MAXSTACK) {
33905 p->error_indicator = 1;
33906 PyErr_NoMemory();
33907 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070033908 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033909 p->level--;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070033910 return NULL;
33911 }
33912 void * _res = NULL;
33913 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033914 { // star_targets '='
33915 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033916 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033917 return NULL;
33918 }
33919 D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
33920 Token * _literal;
33921 expr_ty star_targets_var;
33922 if (
33923 (star_targets_var = star_targets_rule(p)) // star_targets
33924 &&
33925 (_literal = _PyPegen_expect_token(p, 22)) // token='='
33926 )
33927 {
33928 D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
33929 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
33930 goto done;
33931 }
33932 p->mark = _mark;
33933 D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ',
33934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
33935 }
33936 _res = NULL;
33937 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033938 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033939 return _res;
33940}
33941
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033942// _tmp_195: star_targets '='
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033943static void *
33944_tmp_195_rule(Parser *p)
33945{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033946 if (p->level++ == MAXSTACK) {
33947 p->error_indicator = 1;
33948 PyErr_NoMemory();
33949 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033950 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033951 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033952 return NULL;
33953 }
33954 void * _res = NULL;
33955 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033956 { // star_targets '='
33957 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033958 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033959 return NULL;
33960 }
33961 D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
33962 Token * _literal;
33963 expr_ty star_targets_var;
33964 if (
33965 (star_targets_var = star_targets_rule(p)) // star_targets
33966 &&
33967 (_literal = _PyPegen_expect_token(p, 22)) // token='='
33968 )
33969 {
33970 D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
33971 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
33972 goto done;
33973 }
33974 p->mark = _mark;
33975 D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ',
33976 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
33977 }
33978 _res = NULL;
33979 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033980 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033981 return _res;
33982}
33983
33984// _tmp_196: ')' | '**'
33985static void *
33986_tmp_196_rule(Parser *p)
33987{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033988 if (p->level++ == MAXSTACK) {
33989 p->error_indicator = 1;
33990 PyErr_NoMemory();
33991 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033992 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000033993 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000033994 return NULL;
33995 }
33996 void * _res = NULL;
33997 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033998 { // ')'
33999 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034000 p->level--;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010034001 return NULL;
34002 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034003 D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010034004 Token * _literal;
34005 if (
34006 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
34007 )
34008 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034009 D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010034010 _res = _literal;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070034011 goto done;
34012 }
34013 p->mark = _mark;
34014 D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034015 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010034016 }
34017 { // '**'
34018 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034019 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010034020 return NULL;
34021 }
34022 D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
34023 Token * _literal;
34024 if (
34025 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
34026 )
34027 {
34028 D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
34029 _res = _literal;
34030 goto done;
34031 }
34032 p->mark = _mark;
34033 D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
34034 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070034035 }
34036 _res = NULL;
34037 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034038 p->level--;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070034039 return _res;
34040}
34041
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034042// _tmp_197: ':' | '**'
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070034043static void *
34044_tmp_197_rule(Parser *p)
34045{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034046 if (p->level++ == MAXSTACK) {
34047 p->error_indicator = 1;
34048 PyErr_NoMemory();
34049 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070034050 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034051 p->level--;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070034052 return NULL;
34053 }
34054 void * _res = NULL;
34055 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034056 { // ':'
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010034057 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034058 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010034059 return NULL;
34060 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034061 D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
34062 Token * _literal;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010034063 if (
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034064 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010034065 )
34066 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034067 D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
34068 _res = _literal;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010034069 goto done;
34070 }
34071 p->mark = _mark;
34072 D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034073 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
34074 }
34075 { // '**'
34076 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034077 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034078 return NULL;
34079 }
34080 D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
34081 Token * _literal;
34082 if (
34083 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
34084 )
34085 {
34086 D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
34087 _res = _literal;
34088 goto done;
34089 }
34090 p->mark = _mark;
34091 D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ',
34092 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010034093 }
34094 _res = NULL;
34095 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034096 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010034097 return _res;
34098}
34099
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034100// _tmp_198: expression ['as' star_target]
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010034101static void *
34102_tmp_198_rule(Parser *p)
34103{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034104 if (p->level++ == MAXSTACK) {
34105 p->error_indicator = 1;
34106 PyErr_NoMemory();
34107 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010034108 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034109 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010034110 return NULL;
34111 }
34112 void * _res = NULL;
34113 int _mark = p->mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034114 { // expression ['as' star_target]
34115 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034116 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034117 return NULL;
34118 }
34119 D(fprintf(stderr, "%*c> _tmp_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
34120 void *_opt_var;
34121 UNUSED(_opt_var); // Silence compiler warnings
34122 expr_ty expression_var;
34123 if (
34124 (expression_var = expression_rule(p)) // expression
34125 &&
34126 (_opt_var = _tmp_203_rule(p), !p->error_indicator) // ['as' star_target]
34127 )
34128 {
34129 D(fprintf(stderr, "%*c+ _tmp_198[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
34130 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
34131 goto done;
34132 }
34133 p->mark = _mark;
34134 D(fprintf(stderr, "%*c%s _tmp_198[%d-%d]: %s failed!\n", p->level, ' ',
34135 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
34136 }
34137 _res = NULL;
34138 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034139 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034140 return _res;
34141}
34142
34143// _tmp_199: expressions ['as' star_target]
34144static void *
34145_tmp_199_rule(Parser *p)
34146{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034147 if (p->level++ == MAXSTACK) {
34148 p->error_indicator = 1;
34149 PyErr_NoMemory();
34150 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034151 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034152 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034153 return NULL;
34154 }
34155 void * _res = NULL;
34156 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070034157 { // expressions ['as' star_target]
34158 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034159 p->level--;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070034160 return NULL;
34161 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034162 D(fprintf(stderr, "%*c> _tmp_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070034163 void *_opt_var;
34164 UNUSED(_opt_var); // Silence compiler warnings
34165 expr_ty expressions_var;
34166 if (
34167 (expressions_var = expressions_rule(p)) // expressions
34168 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034169 (_opt_var = _tmp_204_rule(p), !p->error_indicator) // ['as' star_target]
Miss Islington (bot)3e137422021-06-10 15:31:09 -070034170 )
34171 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034172 D(fprintf(stderr, "%*c+ _tmp_199[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070034173 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
34174 goto done;
34175 }
34176 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034177 D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070034178 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
34179 }
34180 _res = NULL;
34181 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034182 p->level--;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070034183 return _res;
34184}
34185
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034186// _tmp_200: expression ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070034187static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034188_tmp_200_rule(Parser *p)
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070034189{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034190 if (p->level++ == MAXSTACK) {
34191 p->error_indicator = 1;
34192 PyErr_NoMemory();
34193 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070034194 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034195 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070034196 return NULL;
34197 }
34198 void * _res = NULL;
34199 int _mark = p->mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010034200 { // expression ['as' star_target]
34201 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034202 p->level--;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010034203 return NULL;
34204 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034205 D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010034206 void *_opt_var;
34207 UNUSED(_opt_var); // Silence compiler warnings
34208 expr_ty expression_var;
34209 if (
34210 (expression_var = expression_rule(p)) // expression
34211 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034212 (_opt_var = _tmp_205_rule(p), !p->error_indicator) // ['as' star_target]
Pablo Galindoe53f72a2021-06-04 00:11:43 +010034213 )
34214 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034215 D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010034216 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
34217 goto done;
34218 }
34219 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034220 D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010034221 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
34222 }
34223 _res = NULL;
34224 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034225 p->level--;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010034226 return _res;
34227}
34228
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034229// _tmp_201: expressions ['as' star_target]
Pablo Galindoe53f72a2021-06-04 00:11:43 +010034230static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034231_tmp_201_rule(Parser *p)
Pablo Galindoe53f72a2021-06-04 00:11:43 +010034232{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034233 if (p->level++ == MAXSTACK) {
34234 p->error_indicator = 1;
34235 PyErr_NoMemory();
34236 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010034237 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034238 p->level--;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010034239 return NULL;
34240 }
34241 void * _res = NULL;
34242 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000034243 { // expressions ['as' star_target]
34244 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034245 p->level--;
Pablo Galindo58fb1562021-02-02 19:54:22 +000034246 return NULL;
34247 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034248 D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000034249 void *_opt_var;
34250 UNUSED(_opt_var); // Silence compiler warnings
34251 expr_ty expressions_var;
34252 if (
34253 (expressions_var = expressions_rule(p)) // expressions
34254 &&
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034255 (_opt_var = _tmp_206_rule(p), !p->error_indicator) // ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000034256 )
34257 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034258 D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000034259 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
34260 goto done;
34261 }
34262 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034263 D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010034264 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000034265 }
34266 _res = NULL;
34267 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034268 p->level--;
Pablo Galindo58fb1562021-02-02 19:54:22 +000034269 return _res;
34270}
34271
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034272// _tmp_202: assignment_expression | expression !':='
Pablo Galindo58fb1562021-02-02 19:54:22 +000034273static void *
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034274_tmp_202_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010034275{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034276 if (p->level++ == MAXSTACK) {
34277 p->error_indicator = 1;
34278 PyErr_NoMemory();
34279 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010034280 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034281 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010034282 return NULL;
34283 }
34284 void * _res = NULL;
34285 int _mark = p->mark;
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000034286 { // assignment_expression
Pablo Galindo56c95df2021-04-21 15:28:21 +010034287 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034288 p->level--;
Pablo Galindo56c95df2021-04-21 15:28:21 +010034289 return NULL;
34290 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034291 D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000034292 expr_ty assignment_expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010034293 if (
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000034294 (assignment_expression_var = assignment_expression_rule(p)) // assignment_expression
Pablo Galindo56c95df2021-04-21 15:28:21 +010034295 )
34296 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034297 D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment_expression"));
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000034298 _res = assignment_expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010034299 goto done;
34300 }
34301 p->mark = _mark;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034302 D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado0e34a592021-11-04 23:19:27 +000034303 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070034304 }
34305 { // expression !':='
34306 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034307 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070034308 return NULL;
34309 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034310 D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070034311 expr_ty expression_var;
34312 if (
34313 (expression_var = expression_rule(p)) // expression
34314 &&
34315 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
34316 )
34317 {
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034318 D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070034319 _res = expression_var;
34320 goto done;
34321 }
34322 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070034323 D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034324 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070034325 }
34326 _res = NULL;
34327 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034328 p->level--;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070034329 return _res;
34330}
34331
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070034332// _tmp_203: 'as' star_target
34333static void *
34334_tmp_203_rule(Parser *p)
34335{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034336 if (p->level++ == MAXSTACK) {
34337 p->error_indicator = 1;
34338 PyErr_NoMemory();
34339 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070034340 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034341 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070034342 return NULL;
34343 }
34344 void * _res = NULL;
34345 int _mark = p->mark;
34346 { // 'as' star_target
34347 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034348 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070034349 return NULL;
34350 }
34351 D(fprintf(stderr, "%*c> _tmp_203[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
34352 Token * _keyword;
34353 expr_ty star_target_var;
34354 if (
34355 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
34356 &&
34357 (star_target_var = star_target_rule(p)) // star_target
34358 )
34359 {
34360 D(fprintf(stderr, "%*c+ _tmp_203[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
34361 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
34362 goto done;
34363 }
34364 p->mark = _mark;
34365 D(fprintf(stderr, "%*c%s _tmp_203[%d-%d]: %s failed!\n", p->level, ' ',
34366 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
34367 }
34368 _res = NULL;
34369 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034370 p->level--;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070034371 return _res;
34372}
34373
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070034374// _tmp_204: 'as' star_target
34375static void *
34376_tmp_204_rule(Parser *p)
34377{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034378 if (p->level++ == MAXSTACK) {
34379 p->error_indicator = 1;
34380 PyErr_NoMemory();
34381 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070034382 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034383 p->level--;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070034384 return NULL;
34385 }
34386 void * _res = NULL;
34387 int _mark = p->mark;
34388 { // 'as' star_target
34389 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034390 p->level--;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070034391 return NULL;
34392 }
34393 D(fprintf(stderr, "%*c> _tmp_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
34394 Token * _keyword;
34395 expr_ty star_target_var;
34396 if (
34397 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
34398 &&
34399 (star_target_var = star_target_rule(p)) // star_target
34400 )
34401 {
34402 D(fprintf(stderr, "%*c+ _tmp_204[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
34403 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
34404 goto done;
34405 }
34406 p->mark = _mark;
34407 D(fprintf(stderr, "%*c%s _tmp_204[%d-%d]: %s failed!\n", p->level, ' ',
34408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
34409 }
34410 _res = NULL;
34411 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034412 p->level--;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070034413 return _res;
34414}
34415
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010034416// _tmp_205: 'as' star_target
34417static void *
34418_tmp_205_rule(Parser *p)
34419{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034420 if (p->level++ == MAXSTACK) {
34421 p->error_indicator = 1;
34422 PyErr_NoMemory();
34423 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010034424 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034425 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010034426 return NULL;
34427 }
34428 void * _res = NULL;
34429 int _mark = p->mark;
34430 { // 'as' star_target
34431 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034432 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010034433 return NULL;
34434 }
34435 D(fprintf(stderr, "%*c> _tmp_205[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
34436 Token * _keyword;
34437 expr_ty star_target_var;
34438 if (
34439 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
34440 &&
34441 (star_target_var = star_target_rule(p)) // star_target
34442 )
34443 {
34444 D(fprintf(stderr, "%*c+ _tmp_205[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
34445 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
34446 goto done;
34447 }
34448 p->mark = _mark;
34449 D(fprintf(stderr, "%*c%s _tmp_205[%d-%d]: %s failed!\n", p->level, ' ',
34450 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
34451 }
34452 _res = NULL;
34453 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034454 p->level--;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010034455 return _res;
34456}
34457
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034458// _tmp_206: 'as' star_target
34459static void *
34460_tmp_206_rule(Parser *p)
34461{
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034462 if (p->level++ == MAXSTACK) {
34463 p->error_indicator = 1;
34464 PyErr_NoMemory();
34465 }
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034466 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034467 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034468 return NULL;
34469 }
34470 void * _res = NULL;
34471 int _mark = p->mark;
34472 { // 'as' star_target
34473 if (p->error_indicator) {
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034474 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034475 return NULL;
34476 }
34477 D(fprintf(stderr, "%*c> _tmp_206[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
34478 Token * _keyword;
34479 expr_ty star_target_var;
34480 if (
34481 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
34482 &&
34483 (star_target_var = star_target_rule(p)) // star_target
34484 )
34485 {
34486 D(fprintf(stderr, "%*c+ _tmp_206[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
34487 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
34488 goto done;
34489 }
34490 p->mark = _mark;
34491 D(fprintf(stderr, "%*c%s _tmp_206[%d-%d]: %s failed!\n", p->level, ' ',
34492 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
34493 }
34494 _res = NULL;
34495 done:
Pablo Galindo Salgadodc731992021-12-20 16:23:37 +000034496 p->level--;
Pablo Galindo Salgado5618c812021-11-16 22:31:16 +000034497 return _res;
34498}
34499
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010034500void *
34501_PyPegen_parse(Parser *p)
34502{
34503 // Initialize keywords
34504 p->keywords = reserved_keywords;
34505 p->n_keyword_lists = n_keyword_lists;
Pablo Galindob2802482021-04-15 21:38:45 +010034506 p->soft_keywords = soft_keywords;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010034507
34508 // Run parser
34509 void *result = NULL;
34510 if (p->start_rule == Py_file_input) {
34511 result = file_rule(p);
34512 } else if (p->start_rule == Py_single_input) {
34513 result = interactive_rule(p);
34514 } else if (p->start_rule == Py_eval_input) {
34515 result = eval_rule(p);
34516 } else if (p->start_rule == Py_func_type_input) {
34517 result = func_type_rule(p);
34518 } else if (p->start_rule == Py_fstring_input) {
34519 result = fstring_rule(p);
34520 }
34521
34522 return result;
34523}
34524
34525// The end