blob: 4ab0401a46aebbb5cc904f953072cb98c9d0bc6c [file] [log] [blame]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001// @generated by pegen.py from ./Grammar/python.gram
2#include "pegen.h"
Guido van Rossumf70e43a1991-02-19 12:39:46 +00003
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004#if defined(Py_DEBUG) && defined(Py_BUILD_CORE)
Guido van Rossum86bea461997-04-29 21:03:06 +00005extern int Py_DebugFlag;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006#define D(x) if (Py_DebugFlag) x;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00007#else
8#define D(x)
9#endif
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010static const int n_keyword_lists = 9;
11static KeywordToken *reserved_keywords[] = {
Pablo Galindo1ac0cbc2020-07-06 20:31:16 +010012 (KeywordToken[]) {{NULL, -1}},
13 (KeywordToken[]) {{NULL, -1}},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014 (KeywordToken[]) {
15 {"if", 510},
16 {"in", 518},
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017 {"as", 520},
Brandt Bucher145bf262021-02-26 14:51:55 -080018 {"is", 530},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019 {"or", 531},
20 {NULL, -1},
21 },
22 (KeywordToken[]) {
23 {"del", 503},
24 {"try", 511},
25 {"for", 517},
Brandt Bucher145bf262021-02-26 14:51:55 -080026 {"def", 526},
27 {"not", 529},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028 {"and", 532},
29 {NULL, -1},
30 },
31 (KeywordToken[]) {
32 {"pass", 502},
33 {"from", 514},
34 {"elif", 515},
35 {"else", 516},
36 {"with", 519},
Brandt Bucher145bf262021-02-26 14:51:55 -080037 {"None", 523},
38 {"True", 524},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010039 {NULL, -1},
40 },
41 (KeywordToken[]) {
42 {"raise", 501},
43 {"yield", 504},
44 {"break", 506},
45 {"while", 512},
Brandt Bucher145bf262021-02-26 14:51:55 -080046 {"False", 525},
47 {"class", 527},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010048 {NULL, -1},
49 },
50 (KeywordToken[]) {
51 {"return", 500},
52 {"assert", 505},
53 {"global", 508},
54 {"import", 513},
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030055 {"except", 521},
Brandt Bucher145bf262021-02-26 14:51:55 -080056 {"lambda", 528},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010057 {NULL, -1},
58 },
59 (KeywordToken[]) {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030060 {"finally", 522},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010061 {NULL, -1},
62 },
63 (KeywordToken[]) {
64 {"continue", 507},
65 {"nonlocal", 509},
66 {NULL, -1},
67 },
68};
69#define file_type 1000
70#define interactive_type 1001
71#define eval_type 1002
72#define func_type_type 1003
73#define fstring_type 1004
74#define type_expressions_type 1005
75#define statements_type 1006
76#define statement_type 1007
77#define statement_newline_type 1008
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000078#define simple_stmts_type 1009
79#define simple_stmt_type 1010
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010080#define compound_stmt_type 1011
81#define assignment_type 1012
82#define augassign_type 1013
83#define global_stmt_type 1014
84#define nonlocal_stmt_type 1015
85#define yield_stmt_type 1016
86#define assert_stmt_type 1017
87#define del_stmt_type 1018
88#define import_stmt_type 1019
89#define import_name_type 1020
90#define import_from_type 1021
91#define import_from_targets_type 1022
92#define import_from_as_names_type 1023
93#define import_from_as_name_type 1024
94#define dotted_as_names_type 1025
95#define dotted_as_name_type 1026
96#define dotted_name_type 1027 // Left-recursive
97#define if_stmt_type 1028
98#define elif_stmt_type 1029
99#define else_block_type 1030
100#define while_stmt_type 1031
101#define for_stmt_type 1032
102#define with_stmt_type 1033
103#define with_item_type 1034
104#define try_stmt_type 1035
105#define except_block_type 1036
106#define finally_block_type 1037
Brandt Bucher145bf262021-02-26 14:51:55 -0800107#define match_stmt_type 1038
108#define subject_expr_type 1039
109#define case_block_type 1040
110#define guard_type 1041
111#define patterns_type 1042
112#define pattern_type 1043
113#define as_pattern_type 1044
114#define or_pattern_type 1045
115#define closed_pattern_type 1046
116#define literal_pattern_type 1047
117#define signed_number_type 1048
118#define capture_pattern_type 1049
119#define wildcard_pattern_type 1050
120#define value_pattern_type 1051
121#define attr_type 1052 // Left-recursive
122#define name_or_attr_type 1053 // Left-recursive
123#define group_pattern_type 1054
124#define sequence_pattern_type 1055
125#define open_sequence_pattern_type 1056
126#define maybe_sequence_pattern_type 1057
127#define maybe_star_pattern_type 1058
128#define star_pattern_type 1059
129#define mapping_pattern_type 1060
130#define items_pattern_type 1061
131#define key_value_pattern_type 1062
132#define double_star_pattern_type 1063
133#define class_pattern_type 1064
134#define positional_patterns_type 1065
135#define keyword_patterns_type 1066
136#define keyword_pattern_type 1067
137#define return_stmt_type 1068
138#define raise_stmt_type 1069
139#define function_def_type 1070
140#define function_def_raw_type 1071
141#define func_type_comment_type 1072
142#define params_type 1073
143#define parameters_type 1074
144#define slash_no_default_type 1075
145#define slash_with_default_type 1076
146#define star_etc_type 1077
147#define kwds_type 1078
148#define param_no_default_type 1079
149#define param_with_default_type 1080
150#define param_maybe_default_type 1081
151#define param_type 1082
152#define annotation_type 1083
153#define default_type 1084
154#define decorators_type 1085
155#define class_def_type 1086
156#define class_def_raw_type 1087
157#define block_type 1088
158#define star_expressions_type 1089
159#define star_expression_type 1090
160#define star_named_expressions_type 1091
161#define star_named_expression_type 1092
162#define named_expression_type 1093
163#define annotated_rhs_type 1094
164#define expressions_type 1095
165#define expression_type 1096
166#define lambdef_type 1097
167#define lambda_params_type 1098
168#define lambda_parameters_type 1099
169#define lambda_slash_no_default_type 1100
170#define lambda_slash_with_default_type 1101
171#define lambda_star_etc_type 1102
172#define lambda_kwds_type 1103
173#define lambda_param_no_default_type 1104
174#define lambda_param_with_default_type 1105
175#define lambda_param_maybe_default_type 1106
176#define lambda_param_type 1107
177#define disjunction_type 1108
178#define conjunction_type 1109
179#define inversion_type 1110
180#define comparison_type 1111
181#define compare_op_bitwise_or_pair_type 1112
182#define eq_bitwise_or_type 1113
183#define noteq_bitwise_or_type 1114
184#define lte_bitwise_or_type 1115
185#define lt_bitwise_or_type 1116
186#define gte_bitwise_or_type 1117
187#define gt_bitwise_or_type 1118
188#define notin_bitwise_or_type 1119
189#define in_bitwise_or_type 1120
190#define isnot_bitwise_or_type 1121
191#define is_bitwise_or_type 1122
192#define bitwise_or_type 1123 // Left-recursive
193#define bitwise_xor_type 1124 // Left-recursive
194#define bitwise_and_type 1125 // Left-recursive
195#define shift_expr_type 1126 // Left-recursive
196#define sum_type 1127 // Left-recursive
197#define term_type 1128 // Left-recursive
198#define factor_type 1129
199#define power_type 1130
200#define await_primary_type 1131
201#define primary_type 1132 // Left-recursive
202#define slices_type 1133
203#define slice_type 1134
204#define atom_type 1135
205#define strings_type 1136
206#define list_type 1137
207#define listcomp_type 1138
208#define tuple_type 1139
209#define group_type 1140
210#define genexp_type 1141
211#define set_type 1142
212#define setcomp_type 1143
213#define dict_type 1144
214#define dictcomp_type 1145
215#define double_starred_kvpairs_type 1146
216#define double_starred_kvpair_type 1147
217#define kvpair_type 1148
218#define for_if_clauses_type 1149
219#define for_if_clause_type 1150
220#define yield_expr_type 1151
221#define arguments_type 1152
222#define args_type 1153
223#define kwargs_type 1154
224#define starred_expression_type 1155
225#define kwarg_or_starred_type 1156
226#define kwarg_or_double_starred_type 1157
227#define star_targets_type 1158
228#define star_targets_list_seq_type 1159
229#define star_targets_tuple_seq_type 1160
230#define star_target_type 1161
231#define target_with_star_atom_type 1162
232#define star_atom_type 1163
233#define single_target_type 1164
234#define single_subscript_attribute_target_type 1165
235#define del_targets_type 1166
236#define del_target_type 1167
237#define del_t_atom_type 1168
238#define targets_type 1169
239#define target_type 1170
240#define t_primary_type 1171 // Left-recursive
241#define t_lookahead_type 1172
242#define t_atom_type 1173
243#define invalid_arguments_type 1174
244#define invalid_kwarg_type 1175
245#define invalid_named_expression_type 1176
246#define invalid_assignment_type 1177
247#define invalid_ann_assign_target_type 1178
248#define invalid_del_stmt_type 1179
249#define invalid_block_type 1180
250#define invalid_primary_type 1181 // Left-recursive
251#define invalid_comprehension_type 1182
252#define invalid_dict_comprehension_type 1183
253#define invalid_parameters_type 1184
254#define invalid_parameters_helper_type 1185
255#define invalid_lambda_parameters_type 1186
256#define invalid_lambda_parameters_helper_type 1187
257#define invalid_star_etc_type 1188
258#define invalid_lambda_star_etc_type 1189
259#define invalid_double_type_comments_type 1190
260#define invalid_with_item_type 1191
261#define invalid_for_target_type 1192
262#define invalid_group_type 1193
263#define invalid_import_from_targets_type 1194
264#define invalid_with_stmt_type 1195
265#define invalid_except_block_type 1196
266#define _loop0_1_type 1197
267#define _loop0_2_type 1198
268#define _loop0_4_type 1199
269#define _gather_3_type 1200
270#define _loop0_6_type 1201
271#define _gather_5_type 1202
272#define _loop0_8_type 1203
273#define _gather_7_type 1204
274#define _loop0_10_type 1205
275#define _gather_9_type 1206
276#define _loop1_11_type 1207
277#define _loop0_13_type 1208
278#define _gather_12_type 1209
279#define _tmp_14_type 1210
280#define _tmp_15_type 1211
281#define _tmp_16_type 1212
282#define _tmp_17_type 1213
283#define _tmp_18_type 1214
284#define _tmp_19_type 1215
285#define _tmp_20_type 1216
286#define _tmp_21_type 1217
287#define _loop1_22_type 1218
288#define _tmp_23_type 1219
289#define _tmp_24_type 1220
290#define _loop0_26_type 1221
291#define _gather_25_type 1222
292#define _loop0_28_type 1223
293#define _gather_27_type 1224
294#define _tmp_29_type 1225
295#define _tmp_30_type 1226
296#define _loop0_31_type 1227
297#define _loop1_32_type 1228
298#define _loop0_34_type 1229
299#define _gather_33_type 1230
300#define _tmp_35_type 1231
301#define _loop0_37_type 1232
302#define _gather_36_type 1233
303#define _tmp_38_type 1234
304#define _loop0_40_type 1235
305#define _gather_39_type 1236
306#define _loop0_42_type 1237
307#define _gather_41_type 1238
308#define _loop0_44_type 1239
309#define _gather_43_type 1240
310#define _loop0_46_type 1241
311#define _gather_45_type 1242
312#define _tmp_47_type 1243
313#define _loop1_48_type 1244
314#define _tmp_49_type 1245
315#define _loop1_50_type 1246
316#define _loop0_52_type 1247
317#define _gather_51_type 1248
318#define _tmp_53_type 1249
319#define _tmp_54_type 1250
320#define _tmp_55_type 1251
321#define _loop0_57_type 1252
322#define _gather_56_type 1253
323#define _tmp_58_type 1254
324#define _loop0_60_type 1255
325#define _gather_59_type 1256
326#define _tmp_61_type 1257
327#define _loop0_63_type 1258
328#define _gather_62_type 1259
329#define _loop0_65_type 1260
330#define _gather_64_type 1261
331#define _tmp_66_type 1262
332#define _tmp_67_type 1263
333#define _tmp_68_type 1264
334#define _tmp_69_type 1265
335#define _loop0_70_type 1266
336#define _loop0_71_type 1267
337#define _loop0_72_type 1268
338#define _loop1_73_type 1269
339#define _loop0_74_type 1270
340#define _loop1_75_type 1271
341#define _loop1_76_type 1272
342#define _loop1_77_type 1273
343#define _loop0_78_type 1274
344#define _loop1_79_type 1275
345#define _loop0_80_type 1276
346#define _loop1_81_type 1277
347#define _loop0_82_type 1278
348#define _loop1_83_type 1279
349#define _loop1_84_type 1280
350#define _tmp_85_type 1281
351#define _loop1_86_type 1282
352#define _loop0_88_type 1283
353#define _gather_87_type 1284
354#define _loop1_89_type 1285
355#define _loop0_90_type 1286
356#define _loop0_91_type 1287
357#define _loop0_92_type 1288
358#define _loop1_93_type 1289
359#define _loop0_94_type 1290
360#define _loop1_95_type 1291
361#define _loop1_96_type 1292
362#define _loop1_97_type 1293
363#define _loop0_98_type 1294
364#define _loop1_99_type 1295
365#define _loop0_100_type 1296
366#define _loop1_101_type 1297
367#define _loop0_102_type 1298
368#define _loop1_103_type 1299
369#define _loop1_104_type 1300
370#define _loop1_105_type 1301
371#define _loop1_106_type 1302
372#define _tmp_107_type 1303
373#define _loop0_109_type 1304
374#define _gather_108_type 1305
375#define _tmp_110_type 1306
376#define _tmp_111_type 1307
377#define _tmp_112_type 1308
378#define _tmp_113_type 1309
379#define _loop1_114_type 1310
380#define _tmp_115_type 1311
381#define _tmp_116_type 1312
382#define _loop0_118_type 1313
383#define _gather_117_type 1314
384#define _loop1_119_type 1315
385#define _loop0_120_type 1316
386#define _loop0_121_type 1317
387#define _loop0_123_type 1318
388#define _gather_122_type 1319
389#define _tmp_124_type 1320
390#define _loop0_126_type 1321
391#define _gather_125_type 1322
392#define _loop0_128_type 1323
393#define _gather_127_type 1324
394#define _loop0_130_type 1325
395#define _gather_129_type 1326
396#define _loop0_132_type 1327
397#define _gather_131_type 1328
398#define _loop0_133_type 1329
399#define _loop0_135_type 1330
400#define _gather_134_type 1331
401#define _loop1_136_type 1332
402#define _tmp_137_type 1333
403#define _loop0_139_type 1334
404#define _gather_138_type 1335
405#define _loop0_141_type 1336
406#define _gather_140_type 1337
407#define _tmp_142_type 1338
408#define _loop0_143_type 1339
409#define _loop0_144_type 1340
410#define _loop0_145_type 1341
411#define _tmp_146_type 1342
412#define _tmp_147_type 1343
413#define _tmp_148_type 1344
414#define _loop0_149_type 1345
415#define _loop1_150_type 1346
416#define _loop0_151_type 1347
417#define _loop1_152_type 1348
418#define _tmp_153_type 1349
419#define _tmp_154_type 1350
420#define _tmp_155_type 1351
421#define _loop0_157_type 1352
422#define _gather_156_type 1353
423#define _loop0_159_type 1354
424#define _gather_158_type 1355
425#define _tmp_160_type 1356
426#define _tmp_161_type 1357
427#define _tmp_162_type 1358
428#define _tmp_163_type 1359
429#define _tmp_164_type 1360
430#define _tmp_165_type 1361
431#define _tmp_166_type 1362
432#define _tmp_167_type 1363
433#define _tmp_168_type 1364
434#define _tmp_169_type 1365
435#define _tmp_170_type 1366
436#define _tmp_171_type 1367
437#define _tmp_172_type 1368
438#define _tmp_173_type 1369
439#define _tmp_174_type 1370
440#define _tmp_175_type 1371
441#define _tmp_176_type 1372
442#define _tmp_177_type 1373
443#define _tmp_178_type 1374
444#define _tmp_179_type 1375
445#define _tmp_180_type 1376
446#define _tmp_181_type 1377
447#define _tmp_182_type 1378
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100448
449static mod_ty file_rule(Parser *p);
450static mod_ty interactive_rule(Parser *p);
451static mod_ty eval_rule(Parser *p);
452static mod_ty func_type_rule(Parser *p);
453static expr_ty fstring_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100454static asdl_expr_seq* type_expressions_rule(Parser *p);
455static asdl_stmt_seq* statements_rule(Parser *p);
456static asdl_stmt_seq* statement_rule(Parser *p);
457static asdl_stmt_seq* statement_newline_rule(Parser *p);
Pablo Galindo9bdc40e2020-11-30 19:42:38 +0000458static asdl_stmt_seq* simple_stmts_rule(Parser *p);
459static stmt_ty simple_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100460static stmt_ty compound_stmt_rule(Parser *p);
461static stmt_ty assignment_rule(Parser *p);
462static AugOperator* augassign_rule(Parser *p);
463static stmt_ty global_stmt_rule(Parser *p);
464static stmt_ty nonlocal_stmt_rule(Parser *p);
465static stmt_ty yield_stmt_rule(Parser *p);
466static stmt_ty assert_stmt_rule(Parser *p);
467static stmt_ty del_stmt_rule(Parser *p);
468static stmt_ty import_stmt_rule(Parser *p);
469static stmt_ty import_name_rule(Parser *p);
470static stmt_ty import_from_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100471static asdl_alias_seq* import_from_targets_rule(Parser *p);
472static asdl_alias_seq* import_from_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100473static alias_ty import_from_as_name_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100474static asdl_alias_seq* dotted_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100475static alias_ty dotted_as_name_rule(Parser *p);
476static expr_ty dotted_name_rule(Parser *p);
477static stmt_ty if_stmt_rule(Parser *p);
478static stmt_ty elif_stmt_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100479static asdl_stmt_seq* else_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100480static stmt_ty while_stmt_rule(Parser *p);
481static stmt_ty for_stmt_rule(Parser *p);
482static stmt_ty with_stmt_rule(Parser *p);
483static withitem_ty with_item_rule(Parser *p);
484static stmt_ty try_stmt_rule(Parser *p);
485static excepthandler_ty except_block_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100486static asdl_stmt_seq* finally_block_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800487static stmt_ty match_stmt_rule(Parser *p);
488static expr_ty subject_expr_rule(Parser *p);
489static match_case_ty case_block_rule(Parser *p);
490static expr_ty guard_rule(Parser *p);
491static expr_ty patterns_rule(Parser *p);
492static expr_ty pattern_rule(Parser *p);
493static expr_ty as_pattern_rule(Parser *p);
494static expr_ty or_pattern_rule(Parser *p);
495static expr_ty closed_pattern_rule(Parser *p);
496static expr_ty literal_pattern_rule(Parser *p);
497static expr_ty signed_number_rule(Parser *p);
498static expr_ty capture_pattern_rule(Parser *p);
499static expr_ty wildcard_pattern_rule(Parser *p);
500static expr_ty value_pattern_rule(Parser *p);
501static expr_ty attr_rule(Parser *p);
502static expr_ty name_or_attr_rule(Parser *p);
503static expr_ty group_pattern_rule(Parser *p);
504static expr_ty sequence_pattern_rule(Parser *p);
505static asdl_seq* open_sequence_pattern_rule(Parser *p);
506static asdl_seq* maybe_sequence_pattern_rule(Parser *p);
507static expr_ty maybe_star_pattern_rule(Parser *p);
508static expr_ty star_pattern_rule(Parser *p);
509static expr_ty mapping_pattern_rule(Parser *p);
510static asdl_seq* items_pattern_rule(Parser *p);
511static KeyValuePair* key_value_pattern_rule(Parser *p);
512static KeyValuePair* double_star_pattern_rule(Parser *p);
513static expr_ty class_pattern_rule(Parser *p);
514static asdl_expr_seq* positional_patterns_rule(Parser *p);
515static asdl_keyword_seq* keyword_patterns_rule(Parser *p);
516static keyword_ty keyword_pattern_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100517static stmt_ty return_stmt_rule(Parser *p);
518static stmt_ty raise_stmt_rule(Parser *p);
519static stmt_ty function_def_rule(Parser *p);
520static stmt_ty function_def_raw_rule(Parser *p);
521static Token* func_type_comment_rule(Parser *p);
522static arguments_ty params_rule(Parser *p);
523static arguments_ty parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100524static asdl_arg_seq* slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100525static SlashWithDefault* slash_with_default_rule(Parser *p);
526static StarEtc* star_etc_rule(Parser *p);
527static arg_ty kwds_rule(Parser *p);
528static arg_ty param_no_default_rule(Parser *p);
529static NameDefaultPair* param_with_default_rule(Parser *p);
530static NameDefaultPair* param_maybe_default_rule(Parser *p);
531static arg_ty param_rule(Parser *p);
532static expr_ty annotation_rule(Parser *p);
533static expr_ty default_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100534static asdl_expr_seq* decorators_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100535static stmt_ty class_def_rule(Parser *p);
536static stmt_ty class_def_raw_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100537static asdl_stmt_seq* block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100538static expr_ty star_expressions_rule(Parser *p);
539static expr_ty star_expression_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100540static asdl_expr_seq* star_named_expressions_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100541static expr_ty star_named_expression_rule(Parser *p);
542static expr_ty named_expression_rule(Parser *p);
543static expr_ty annotated_rhs_rule(Parser *p);
544static expr_ty expressions_rule(Parser *p);
545static expr_ty expression_rule(Parser *p);
546static expr_ty lambdef_rule(Parser *p);
547static arguments_ty lambda_params_rule(Parser *p);
548static arguments_ty lambda_parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100549static asdl_arg_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100550static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
551static StarEtc* lambda_star_etc_rule(Parser *p);
552static arg_ty lambda_kwds_rule(Parser *p);
553static arg_ty lambda_param_no_default_rule(Parser *p);
554static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
555static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
556static arg_ty lambda_param_rule(Parser *p);
557static expr_ty disjunction_rule(Parser *p);
558static expr_ty conjunction_rule(Parser *p);
559static expr_ty inversion_rule(Parser *p);
560static expr_ty comparison_rule(Parser *p);
561static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
562static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
563static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
564static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
565static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
566static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
567static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
568static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
569static CmpopExprPair* in_bitwise_or_rule(Parser *p);
570static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
571static CmpopExprPair* is_bitwise_or_rule(Parser *p);
572static expr_ty bitwise_or_rule(Parser *p);
573static expr_ty bitwise_xor_rule(Parser *p);
574static expr_ty bitwise_and_rule(Parser *p);
575static expr_ty shift_expr_rule(Parser *p);
576static expr_ty sum_rule(Parser *p);
577static expr_ty term_rule(Parser *p);
578static expr_ty factor_rule(Parser *p);
579static expr_ty power_rule(Parser *p);
580static expr_ty await_primary_rule(Parser *p);
581static expr_ty primary_rule(Parser *p);
582static expr_ty slices_rule(Parser *p);
583static expr_ty slice_rule(Parser *p);
584static expr_ty atom_rule(Parser *p);
585static expr_ty strings_rule(Parser *p);
586static expr_ty list_rule(Parser *p);
587static expr_ty listcomp_rule(Parser *p);
588static expr_ty tuple_rule(Parser *p);
589static expr_ty group_rule(Parser *p);
590static expr_ty genexp_rule(Parser *p);
591static expr_ty set_rule(Parser *p);
592static expr_ty setcomp_rule(Parser *p);
593static expr_ty dict_rule(Parser *p);
594static expr_ty dictcomp_rule(Parser *p);
595static asdl_seq* double_starred_kvpairs_rule(Parser *p);
596static KeyValuePair* double_starred_kvpair_rule(Parser *p);
597static KeyValuePair* kvpair_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100598static asdl_comprehension_seq* for_if_clauses_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100599static comprehension_ty for_if_clause_rule(Parser *p);
600static expr_ty yield_expr_rule(Parser *p);
601static expr_ty arguments_rule(Parser *p);
602static expr_ty args_rule(Parser *p);
603static asdl_seq* kwargs_rule(Parser *p);
604static expr_ty starred_expression_rule(Parser *p);
605static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
606static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
607static expr_ty star_targets_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200608static asdl_expr_seq* star_targets_list_seq_rule(Parser *p);
609static asdl_expr_seq* star_targets_tuple_seq_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100610static expr_ty star_target_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200611static expr_ty target_with_star_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100612static expr_ty star_atom_rule(Parser *p);
613static expr_ty single_target_rule(Parser *p);
614static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100615static asdl_expr_seq* del_targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100616static expr_ty del_target_rule(Parser *p);
617static expr_ty del_t_atom_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100618static asdl_expr_seq* targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100619static expr_ty target_rule(Parser *p);
620static expr_ty t_primary_rule(Parser *p);
621static void *t_lookahead_rule(Parser *p);
622static expr_ty t_atom_rule(Parser *p);
Lysandros Nikolaoubca70142020-10-27 00:42:04 +0200623static void *invalid_arguments_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100624static void *invalid_kwarg_rule(Parser *p);
625static void *invalid_named_expression_rule(Parser *p);
626static void *invalid_assignment_rule(Parser *p);
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +0300627static expr_ty invalid_ann_assign_target_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300628static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100629static void *invalid_block_rule(Parser *p);
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +0200630static void *invalid_primary_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100631static void *invalid_comprehension_rule(Parser *p);
632static void *invalid_dict_comprehension_rule(Parser *p);
633static void *invalid_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200634static void *invalid_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100635static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200636static void *invalid_lambda_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100637static void *invalid_star_etc_rule(Parser *p);
638static void *invalid_lambda_star_etc_rule(Parser *p);
639static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300640static void *invalid_with_item_rule(Parser *p);
641static void *invalid_for_target_rule(Parser *p);
642static void *invalid_group_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100643static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000644static void *invalid_with_stmt_rule(Parser *p);
Pablo Galindo206cbda2021-02-07 18:42:21 +0000645static void *invalid_except_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100646static asdl_seq *_loop0_1_rule(Parser *p);
647static asdl_seq *_loop0_2_rule(Parser *p);
648static asdl_seq *_loop0_4_rule(Parser *p);
649static asdl_seq *_gather_3_rule(Parser *p);
650static asdl_seq *_loop0_6_rule(Parser *p);
651static asdl_seq *_gather_5_rule(Parser *p);
652static asdl_seq *_loop0_8_rule(Parser *p);
653static asdl_seq *_gather_7_rule(Parser *p);
654static asdl_seq *_loop0_10_rule(Parser *p);
655static asdl_seq *_gather_9_rule(Parser *p);
656static asdl_seq *_loop1_11_rule(Parser *p);
657static asdl_seq *_loop0_13_rule(Parser *p);
658static asdl_seq *_gather_12_rule(Parser *p);
659static void *_tmp_14_rule(Parser *p);
660static void *_tmp_15_rule(Parser *p);
661static void *_tmp_16_rule(Parser *p);
662static void *_tmp_17_rule(Parser *p);
663static void *_tmp_18_rule(Parser *p);
664static void *_tmp_19_rule(Parser *p);
665static void *_tmp_20_rule(Parser *p);
666static void *_tmp_21_rule(Parser *p);
667static asdl_seq *_loop1_22_rule(Parser *p);
668static void *_tmp_23_rule(Parser *p);
669static void *_tmp_24_rule(Parser *p);
670static asdl_seq *_loop0_26_rule(Parser *p);
671static asdl_seq *_gather_25_rule(Parser *p);
672static asdl_seq *_loop0_28_rule(Parser *p);
673static asdl_seq *_gather_27_rule(Parser *p);
674static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300675static void *_tmp_30_rule(Parser *p);
676static asdl_seq *_loop0_31_rule(Parser *p);
677static asdl_seq *_loop1_32_rule(Parser *p);
678static asdl_seq *_loop0_34_rule(Parser *p);
679static asdl_seq *_gather_33_rule(Parser *p);
680static void *_tmp_35_rule(Parser *p);
681static asdl_seq *_loop0_37_rule(Parser *p);
682static asdl_seq *_gather_36_rule(Parser *p);
683static void *_tmp_38_rule(Parser *p);
684static asdl_seq *_loop0_40_rule(Parser *p);
685static asdl_seq *_gather_39_rule(Parser *p);
686static asdl_seq *_loop0_42_rule(Parser *p);
687static asdl_seq *_gather_41_rule(Parser *p);
688static asdl_seq *_loop0_44_rule(Parser *p);
689static asdl_seq *_gather_43_rule(Parser *p);
690static asdl_seq *_loop0_46_rule(Parser *p);
691static asdl_seq *_gather_45_rule(Parser *p);
692static void *_tmp_47_rule(Parser *p);
693static asdl_seq *_loop1_48_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100694static void *_tmp_49_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800695static asdl_seq *_loop1_50_rule(Parser *p);
696static asdl_seq *_loop0_52_rule(Parser *p);
697static asdl_seq *_gather_51_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300698static void *_tmp_53_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800699static void *_tmp_54_rule(Parser *p);
700static void *_tmp_55_rule(Parser *p);
701static asdl_seq *_loop0_57_rule(Parser *p);
702static asdl_seq *_gather_56_rule(Parser *p);
703static void *_tmp_58_rule(Parser *p);
704static asdl_seq *_loop0_60_rule(Parser *p);
705static asdl_seq *_gather_59_rule(Parser *p);
706static void *_tmp_61_rule(Parser *p);
707static asdl_seq *_loop0_63_rule(Parser *p);
708static asdl_seq *_gather_62_rule(Parser *p);
709static asdl_seq *_loop0_65_rule(Parser *p);
710static asdl_seq *_gather_64_rule(Parser *p);
711static void *_tmp_66_rule(Parser *p);
712static void *_tmp_67_rule(Parser *p);
713static void *_tmp_68_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300714static void *_tmp_69_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800715static asdl_seq *_loop0_70_rule(Parser *p);
716static asdl_seq *_loop0_71_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000717static asdl_seq *_loop0_72_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000718static asdl_seq *_loop1_73_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300719static asdl_seq *_loop0_74_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800720static asdl_seq *_loop1_75_rule(Parser *p);
721static asdl_seq *_loop1_76_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000722static asdl_seq *_loop1_77_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300723static asdl_seq *_loop0_78_rule(Parser *p);
724static asdl_seq *_loop1_79_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800725static asdl_seq *_loop0_80_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100726static asdl_seq *_loop1_81_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000727static asdl_seq *_loop0_82_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300728static asdl_seq *_loop1_83_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800729static asdl_seq *_loop1_84_rule(Parser *p);
730static void *_tmp_85_rule(Parser *p);
731static asdl_seq *_loop1_86_rule(Parser *p);
732static asdl_seq *_loop0_88_rule(Parser *p);
733static asdl_seq *_gather_87_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100734static asdl_seq *_loop1_89_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800735static asdl_seq *_loop0_90_rule(Parser *p);
736static asdl_seq *_loop0_91_rule(Parser *p);
737static asdl_seq *_loop0_92_rule(Parser *p);
738static asdl_seq *_loop1_93_rule(Parser *p);
739static asdl_seq *_loop0_94_rule(Parser *p);
740static asdl_seq *_loop1_95_rule(Parser *p);
741static asdl_seq *_loop1_96_rule(Parser *p);
742static asdl_seq *_loop1_97_rule(Parser *p);
743static asdl_seq *_loop0_98_rule(Parser *p);
744static asdl_seq *_loop1_99_rule(Parser *p);
745static asdl_seq *_loop0_100_rule(Parser *p);
746static asdl_seq *_loop1_101_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000747static asdl_seq *_loop0_102_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000748static asdl_seq *_loop1_103_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800749static asdl_seq *_loop1_104_rule(Parser *p);
750static asdl_seq *_loop1_105_rule(Parser *p);
751static asdl_seq *_loop1_106_rule(Parser *p);
752static void *_tmp_107_rule(Parser *p);
753static asdl_seq *_loop0_109_rule(Parser *p);
754static asdl_seq *_gather_108_rule(Parser *p);
755static void *_tmp_110_rule(Parser *p);
756static void *_tmp_111_rule(Parser *p);
757static void *_tmp_112_rule(Parser *p);
758static void *_tmp_113_rule(Parser *p);
759static asdl_seq *_loop1_114_rule(Parser *p);
760static void *_tmp_115_rule(Parser *p);
761static void *_tmp_116_rule(Parser *p);
762static asdl_seq *_loop0_118_rule(Parser *p);
763static asdl_seq *_gather_117_rule(Parser *p);
764static asdl_seq *_loop1_119_rule(Parser *p);
765static asdl_seq *_loop0_120_rule(Parser *p);
766static asdl_seq *_loop0_121_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200767static asdl_seq *_loop0_123_rule(Parser *p);
768static asdl_seq *_gather_122_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800769static void *_tmp_124_rule(Parser *p);
770static asdl_seq *_loop0_126_rule(Parser *p);
771static asdl_seq *_gather_125_rule(Parser *p);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +0300772static asdl_seq *_loop0_128_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800773static asdl_seq *_gather_127_rule(Parser *p);
774static asdl_seq *_loop0_130_rule(Parser *p);
775static asdl_seq *_gather_129_rule(Parser *p);
776static asdl_seq *_loop0_132_rule(Parser *p);
777static asdl_seq *_gather_131_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000778static asdl_seq *_loop0_133_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000779static asdl_seq *_loop0_135_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800780static asdl_seq *_gather_134_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000781static asdl_seq *_loop1_136_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100782static void *_tmp_137_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800783static asdl_seq *_loop0_139_rule(Parser *p);
784static asdl_seq *_gather_138_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000785static asdl_seq *_loop0_141_rule(Parser *p);
786static asdl_seq *_gather_140_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800787static void *_tmp_142_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000788static asdl_seq *_loop0_143_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800789static asdl_seq *_loop0_144_rule(Parser *p);
790static asdl_seq *_loop0_145_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100791static void *_tmp_146_rule(Parser *p);
792static void *_tmp_147_rule(Parser *p);
793static void *_tmp_148_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800794static asdl_seq *_loop0_149_rule(Parser *p);
795static asdl_seq *_loop1_150_rule(Parser *p);
796static asdl_seq *_loop0_151_rule(Parser *p);
797static asdl_seq *_loop1_152_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200798static void *_tmp_153_rule(Parser *p);
799static void *_tmp_154_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000800static void *_tmp_155_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800801static asdl_seq *_loop0_157_rule(Parser *p);
802static asdl_seq *_gather_156_rule(Parser *p);
803static asdl_seq *_loop0_159_rule(Parser *p);
804static asdl_seq *_gather_158_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000805static void *_tmp_160_rule(Parser *p);
806static void *_tmp_161_rule(Parser *p);
807static void *_tmp_162_rule(Parser *p);
808static void *_tmp_163_rule(Parser *p);
809static void *_tmp_164_rule(Parser *p);
Pablo Galindo206cbda2021-02-07 18:42:21 +0000810static void *_tmp_165_rule(Parser *p);
811static void *_tmp_166_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800812static void *_tmp_167_rule(Parser *p);
813static void *_tmp_168_rule(Parser *p);
814static void *_tmp_169_rule(Parser *p);
815static void *_tmp_170_rule(Parser *p);
816static void *_tmp_171_rule(Parser *p);
817static void *_tmp_172_rule(Parser *p);
818static void *_tmp_173_rule(Parser *p);
819static void *_tmp_174_rule(Parser *p);
820static void *_tmp_175_rule(Parser *p);
821static void *_tmp_176_rule(Parser *p);
822static void *_tmp_177_rule(Parser *p);
823static void *_tmp_178_rule(Parser *p);
824static void *_tmp_179_rule(Parser *p);
825static void *_tmp_180_rule(Parser *p);
826static void *_tmp_181_rule(Parser *p);
827static void *_tmp_182_rule(Parser *p);
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000828
829
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100830// file: statements? $
831static mod_ty
832file_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000833{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100834 D(p->level++);
835 if (p->error_indicator) {
836 D(p->level--);
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000837 return NULL;
838 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100839 mod_ty _res = NULL;
840 int _mark = p->mark;
841 { // statements? $
842 if (p->error_indicator) {
843 D(p->level--);
844 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000845 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100846 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
847 void *a;
848 Token * endmarker_var;
849 if (
850 (a = statements_rule(p), 1) // statements?
851 &&
852 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
853 )
854 {
855 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
856 _res = _PyPegen_make_module ( p , a );
857 if (_res == NULL && PyErr_Occurred()) {
858 p->error_indicator = 1;
859 D(p->level--);
860 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000861 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100862 goto done;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000863 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100864 p->mark = _mark;
865 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
866 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000867 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100868 _res = NULL;
869 done:
870 D(p->level--);
871 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000872}
873
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100874// interactive: statement_newline
875static mod_ty
876interactive_rule(Parser *p)
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000877{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100878 D(p->level++);
879 if (p->error_indicator) {
880 D(p->level--);
881 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000882 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100883 mod_ty _res = NULL;
884 int _mark = p->mark;
885 { // statement_newline
886 if (p->error_indicator) {
887 D(p->level--);
888 return NULL;
889 }
890 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoa5634c42020-09-16 19:42:00 +0100891 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100892 if (
893 (a = statement_newline_rule(p)) // statement_newline
894 )
895 {
896 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
897 _res = Interactive ( a , p -> arena );
898 if (_res == NULL && PyErr_Occurred()) {
899 p->error_indicator = 1;
900 D(p->level--);
901 return NULL;
902 }
903 goto done;
904 }
905 p->mark = _mark;
906 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
908 }
909 _res = NULL;
910 done:
911 D(p->level--);
912 return _res;
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000913}
914
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100915// eval: expressions NEWLINE* $
916static mod_ty
917eval_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000918{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100919 D(p->level++);
920 if (p->error_indicator) {
921 D(p->level--);
922 return NULL;
923 }
924 mod_ty _res = NULL;
925 int _mark = p->mark;
926 { // expressions NEWLINE* $
927 if (p->error_indicator) {
928 D(p->level--);
929 return NULL;
930 }
931 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
932 asdl_seq * _loop0_1_var;
933 expr_ty a;
934 Token * endmarker_var;
935 if (
936 (a = expressions_rule(p)) // expressions
937 &&
938 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
939 &&
940 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
941 )
942 {
943 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
944 _res = Expression ( a , p -> arena );
945 if (_res == NULL && PyErr_Occurred()) {
946 p->error_indicator = 1;
947 D(p->level--);
948 return NULL;
949 }
950 goto done;
951 }
952 p->mark = _mark;
953 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
954 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
955 }
956 _res = NULL;
957 done:
958 D(p->level--);
959 return _res;
960}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000961
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100962// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
963static mod_ty
964func_type_rule(Parser *p)
965{
966 D(p->level++);
967 if (p->error_indicator) {
968 D(p->level--);
969 return NULL;
970 }
971 mod_ty _res = NULL;
972 int _mark = p->mark;
973 { // '(' type_expressions? ')' '->' expression NEWLINE* $
974 if (p->error_indicator) {
975 D(p->level--);
976 return NULL;
977 }
978 D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
979 Token * _literal;
980 Token * _literal_1;
981 Token * _literal_2;
982 asdl_seq * _loop0_2_var;
983 void *a;
984 expr_ty b;
985 Token * endmarker_var;
986 if (
987 (_literal = _PyPegen_expect_token(p, 7)) // token='('
988 &&
989 (a = type_expressions_rule(p), 1) // type_expressions?
990 &&
991 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
992 &&
993 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
994 &&
995 (b = expression_rule(p)) // expression
996 &&
997 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
998 &&
999 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1000 )
1001 {
1002 D(fprintf(stderr, "%*c+ func_type[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1003 _res = FunctionType ( a , b , p -> arena );
1004 if (_res == NULL && PyErr_Occurred()) {
1005 p->error_indicator = 1;
1006 D(p->level--);
1007 return NULL;
1008 }
1009 goto done;
1010 }
1011 p->mark = _mark;
1012 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
1013 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1014 }
1015 _res = NULL;
1016 done:
1017 D(p->level--);
1018 return _res;
1019}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001020
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001021// fstring: star_expressions
1022static expr_ty
1023fstring_rule(Parser *p)
1024{
1025 D(p->level++);
1026 if (p->error_indicator) {
1027 D(p->level--);
1028 return NULL;
1029 }
1030 expr_ty _res = NULL;
1031 int _mark = p->mark;
1032 { // star_expressions
1033 if (p->error_indicator) {
1034 D(p->level--);
1035 return NULL;
1036 }
1037 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1038 expr_ty star_expressions_var;
1039 if (
1040 (star_expressions_var = star_expressions_rule(p)) // star_expressions
1041 )
1042 {
1043 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1044 _res = star_expressions_var;
1045 goto done;
1046 }
1047 p->mark = _mark;
1048 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
1049 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1050 }
1051 _res = NULL;
1052 done:
1053 D(p->level--);
1054 return _res;
1055}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001056
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001057// type_expressions:
1058// | ','.expression+ ',' '*' expression ',' '**' expression
1059// | ','.expression+ ',' '*' expression
1060// | ','.expression+ ',' '**' expression
1061// | '*' expression ',' '**' expression
1062// | '*' expression
1063// | '**' expression
1064// | ','.expression+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001065static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001066type_expressions_rule(Parser *p)
1067{
1068 D(p->level++);
1069 if (p->error_indicator) {
1070 D(p->level--);
1071 return NULL;
1072 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001073 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001074 int _mark = p->mark;
1075 { // ','.expression+ ',' '*' expression ',' '**' expression
1076 if (p->error_indicator) {
1077 D(p->level--);
1078 return NULL;
1079 }
1080 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1081 Token * _literal;
1082 Token * _literal_1;
1083 Token * _literal_2;
1084 Token * _literal_3;
1085 asdl_seq * a;
1086 expr_ty b;
1087 expr_ty c;
1088 if (
1089 (a = _gather_3_rule(p)) // ','.expression+
1090 &&
1091 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1092 &&
1093 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1094 &&
1095 (b = expression_rule(p)) // expression
1096 &&
1097 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
1098 &&
1099 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
1100 &&
1101 (c = expression_rule(p)) // expression
1102 )
1103 {
1104 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 +03001105 _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 +01001106 if (_res == NULL && PyErr_Occurred()) {
1107 p->error_indicator = 1;
1108 D(p->level--);
1109 return NULL;
1110 }
1111 goto done;
1112 }
1113 p->mark = _mark;
1114 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1115 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1116 }
1117 { // ','.expression+ ',' '*' expression
1118 if (p->error_indicator) {
1119 D(p->level--);
1120 return NULL;
1121 }
1122 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
1123 Token * _literal;
1124 Token * _literal_1;
1125 asdl_seq * a;
1126 expr_ty b;
1127 if (
1128 (a = _gather_5_rule(p)) // ','.expression+
1129 &&
1130 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1131 &&
1132 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1133 &&
1134 (b = expression_rule(p)) // expression
1135 )
1136 {
1137 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 +01001138 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001139 if (_res == NULL && PyErr_Occurred()) {
1140 p->error_indicator = 1;
1141 D(p->level--);
1142 return NULL;
1143 }
1144 goto done;
1145 }
1146 p->mark = _mark;
1147 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
1149 }
1150 { // ','.expression+ ',' '**' expression
1151 if (p->error_indicator) {
1152 D(p->level--);
1153 return NULL;
1154 }
1155 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
1156 Token * _literal;
1157 Token * _literal_1;
1158 asdl_seq * a;
1159 expr_ty b;
1160 if (
1161 (a = _gather_7_rule(p)) // ','.expression+
1162 &&
1163 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1164 &&
1165 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
1166 &&
1167 (b = expression_rule(p)) // expression
1168 )
1169 {
1170 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 +01001171 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001172 if (_res == NULL && PyErr_Occurred()) {
1173 p->error_indicator = 1;
1174 D(p->level--);
1175 return NULL;
1176 }
1177 goto done;
1178 }
1179 p->mark = _mark;
1180 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1181 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
1182 }
1183 { // '*' expression ',' '**' expression
1184 if (p->error_indicator) {
1185 D(p->level--);
1186 return NULL;
1187 }
1188 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
1189 Token * _literal;
1190 Token * _literal_1;
1191 Token * _literal_2;
1192 expr_ty a;
1193 expr_ty b;
1194 if (
1195 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1196 &&
1197 (a = expression_rule(p)) // expression
1198 &&
1199 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
1200 &&
1201 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
1202 &&
1203 (b = expression_rule(p)) // expression
1204 )
1205 {
1206 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 +03001207 _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 +01001208 if (_res == NULL && PyErr_Occurred()) {
1209 p->error_indicator = 1;
1210 D(p->level--);
1211 return NULL;
1212 }
1213 goto done;
1214 }
1215 p->mark = _mark;
1216 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1217 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
1218 }
1219 { // '*' expression
1220 if (p->error_indicator) {
1221 D(p->level--);
1222 return NULL;
1223 }
1224 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
1225 Token * _literal;
1226 expr_ty a;
1227 if (
1228 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1229 &&
1230 (a = expression_rule(p)) // expression
1231 )
1232 {
1233 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001234 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001235 if (_res == NULL && PyErr_Occurred()) {
1236 p->error_indicator = 1;
1237 D(p->level--);
1238 return NULL;
1239 }
1240 goto done;
1241 }
1242 p->mark = _mark;
1243 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1244 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
1245 }
1246 { // '**' expression
1247 if (p->error_indicator) {
1248 D(p->level--);
1249 return NULL;
1250 }
1251 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
1252 Token * _literal;
1253 expr_ty a;
1254 if (
1255 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
1256 &&
1257 (a = expression_rule(p)) // expression
1258 )
1259 {
1260 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001261 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001262 if (_res == NULL && PyErr_Occurred()) {
1263 p->error_indicator = 1;
1264 D(p->level--);
1265 return NULL;
1266 }
1267 goto done;
1268 }
1269 p->mark = _mark;
1270 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1271 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
1272 }
1273 { // ','.expression+
1274 if (p->error_indicator) {
1275 D(p->level--);
1276 return NULL;
1277 }
1278 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001279 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001280 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01001281 (a = (asdl_expr_seq*)_gather_9_rule(p)) // ','.expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001282 )
1283 {
1284 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001285 _res = a;
1286 if (_res == NULL && PyErr_Occurred()) {
1287 p->error_indicator = 1;
1288 D(p->level--);
1289 return NULL;
1290 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001291 goto done;
1292 }
1293 p->mark = _mark;
1294 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1295 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
1296 }
1297 _res = NULL;
1298 done:
1299 D(p->level--);
1300 return _res;
1301}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001302
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001303// statements: statement+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001304static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001305statements_rule(Parser *p)
1306{
1307 D(p->level++);
1308 if (p->error_indicator) {
1309 D(p->level--);
1310 return NULL;
1311 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001312 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001313 int _mark = p->mark;
1314 { // statement+
1315 if (p->error_indicator) {
1316 D(p->level--);
1317 return NULL;
1318 }
1319 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
1320 asdl_seq * a;
1321 if (
1322 (a = _loop1_11_rule(p)) // statement+
1323 )
1324 {
1325 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001326 _res = ( asdl_stmt_seq * ) _PyPegen_seq_flatten ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001327 if (_res == NULL && PyErr_Occurred()) {
1328 p->error_indicator = 1;
1329 D(p->level--);
1330 return NULL;
1331 }
1332 goto done;
1333 }
1334 p->mark = _mark;
1335 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
1337 }
1338 _res = NULL;
1339 done:
1340 D(p->level--);
1341 return _res;
1342}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001343
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001344// statement: compound_stmt | simple_stmts
Pablo Galindoa5634c42020-09-16 19:42:00 +01001345static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001346statement_rule(Parser *p)
1347{
1348 D(p->level++);
1349 if (p->error_indicator) {
1350 D(p->level--);
1351 return NULL;
1352 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001353 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001354 int _mark = p->mark;
1355 { // compound_stmt
1356 if (p->error_indicator) {
1357 D(p->level--);
1358 return NULL;
1359 }
1360 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
1361 stmt_ty a;
1362 if (
1363 (a = compound_stmt_rule(p)) // compound_stmt
1364 )
1365 {
1366 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001367 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001368 if (_res == NULL && PyErr_Occurred()) {
1369 p->error_indicator = 1;
1370 D(p->level--);
1371 return NULL;
1372 }
1373 goto done;
1374 }
1375 p->mark = _mark;
1376 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1377 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
1378 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001379 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001380 if (p->error_indicator) {
1381 D(p->level--);
1382 return NULL;
1383 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001384 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001385 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001386 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001387 (a = (asdl_stmt_seq*)simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001388 )
1389 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001390 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001391 _res = a;
1392 if (_res == NULL && PyErr_Occurred()) {
1393 p->error_indicator = 1;
1394 D(p->level--);
1395 return NULL;
1396 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001397 goto done;
1398 }
1399 p->mark = _mark;
1400 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001401 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001402 }
1403 _res = NULL;
1404 done:
1405 D(p->level--);
1406 return _res;
1407}
1408
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001409// statement_newline: compound_stmt NEWLINE | simple_stmts | NEWLINE | $
Pablo Galindoa5634c42020-09-16 19:42:00 +01001410static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001411statement_newline_rule(Parser *p)
1412{
1413 D(p->level++);
1414 if (p->error_indicator) {
1415 D(p->level--);
1416 return NULL;
1417 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001418 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001419 int _mark = p->mark;
1420 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1421 p->error_indicator = 1;
1422 D(p->level--);
1423 return NULL;
1424 }
1425 int _start_lineno = p->tokens[_mark]->lineno;
1426 UNUSED(_start_lineno); // Only used by EXTRA macro
1427 int _start_col_offset = p->tokens[_mark]->col_offset;
1428 UNUSED(_start_col_offset); // Only used by EXTRA macro
1429 { // compound_stmt NEWLINE
1430 if (p->error_indicator) {
1431 D(p->level--);
1432 return NULL;
1433 }
1434 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
1435 stmt_ty a;
1436 Token * newline_var;
1437 if (
1438 (a = compound_stmt_rule(p)) // compound_stmt
1439 &&
1440 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1441 )
1442 {
1443 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 +01001444 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001445 if (_res == NULL && PyErr_Occurred()) {
1446 p->error_indicator = 1;
1447 D(p->level--);
1448 return NULL;
1449 }
1450 goto done;
1451 }
1452 p->mark = _mark;
1453 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1454 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
1455 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001456 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001457 if (p->error_indicator) {
1458 D(p->level--);
1459 return NULL;
1460 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001461 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1462 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001463 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001464 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001465 )
1466 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001467 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1468 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001469 goto done;
1470 }
1471 p->mark = _mark;
1472 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001473 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001474 }
1475 { // NEWLINE
1476 if (p->error_indicator) {
1477 D(p->level--);
1478 return NULL;
1479 }
1480 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1481 Token * newline_var;
1482 if (
1483 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1484 )
1485 {
1486 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1487 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1488 if (_token == NULL) {
1489 D(p->level--);
1490 return NULL;
1491 }
1492 int _end_lineno = _token->end_lineno;
1493 UNUSED(_end_lineno); // Only used by EXTRA macro
1494 int _end_col_offset = _token->end_col_offset;
1495 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03001496 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , CHECK ( stmt_ty , _Py_Pass ( EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001497 if (_res == NULL && PyErr_Occurred()) {
1498 p->error_indicator = 1;
1499 D(p->level--);
1500 return NULL;
1501 }
1502 goto done;
1503 }
1504 p->mark = _mark;
1505 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
1507 }
1508 { // $
1509 if (p->error_indicator) {
1510 D(p->level--);
1511 return NULL;
1512 }
1513 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
1514 Token * endmarker_var;
1515 if (
1516 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1517 )
1518 {
1519 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
1520 _res = _PyPegen_interactive_exit ( p );
1521 if (_res == NULL && PyErr_Occurred()) {
1522 p->error_indicator = 1;
1523 D(p->level--);
1524 return NULL;
1525 }
1526 goto done;
1527 }
1528 p->mark = _mark;
1529 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1530 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
1531 }
1532 _res = NULL;
1533 done:
1534 D(p->level--);
1535 return _res;
1536}
1537
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001538// simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindoa5634c42020-09-16 19:42:00 +01001539static asdl_stmt_seq*
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001540simple_stmts_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001541{
1542 D(p->level++);
1543 if (p->error_indicator) {
1544 D(p->level--);
1545 return NULL;
1546 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001547 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001548 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001549 { // simple_stmt !';' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001550 if (p->error_indicator) {
1551 D(p->level--);
1552 return NULL;
1553 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001554 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 +01001555 stmt_ty a;
1556 Token * newline_var;
1557 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001558 (a = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001559 &&
1560 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
1561 &&
1562 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1563 )
1564 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001565 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 +01001566 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001567 if (_res == NULL && PyErr_Occurred()) {
1568 p->error_indicator = 1;
1569 D(p->level--);
1570 return NULL;
1571 }
1572 goto done;
1573 }
1574 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001575 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1576 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001577 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001578 { // ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001579 if (p->error_indicator) {
1580 D(p->level--);
1581 return NULL;
1582 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001583 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 +01001584 void *_opt_var;
1585 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01001586 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001587 Token * newline_var;
1588 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001589 (a = (asdl_stmt_seq*)_gather_12_rule(p)) // ';'.simple_stmt+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001590 &&
1591 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
1592 &&
1593 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1594 )
1595 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001596 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 +01001597 _res = a;
1598 if (_res == NULL && PyErr_Occurred()) {
1599 p->error_indicator = 1;
1600 D(p->level--);
1601 return NULL;
1602 }
1603 goto done;
1604 }
1605 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001606 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1607 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001608 }
1609 _res = NULL;
1610 done:
1611 D(p->level--);
1612 return _res;
1613}
1614
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001615// simple_stmt:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001616// | assignment
1617// | star_expressions
1618// | &'return' return_stmt
1619// | &('import' | 'from') import_stmt
1620// | &'raise' raise_stmt
1621// | 'pass'
1622// | &'del' del_stmt
1623// | &'yield' yield_stmt
1624// | &'assert' assert_stmt
1625// | 'break'
1626// | 'continue'
1627// | &'global' global_stmt
1628// | &'nonlocal' nonlocal_stmt
1629static stmt_ty
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001630simple_stmt_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001631{
1632 D(p->level++);
1633 if (p->error_indicator) {
1634 D(p->level--);
1635 return NULL;
1636 }
1637 stmt_ty _res = NULL;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001638 if (_PyPegen_is_memoized(p, simple_stmt_type, &_res)) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001639 D(p->level--);
1640 return _res;
1641 }
1642 int _mark = p->mark;
1643 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1644 p->error_indicator = 1;
1645 D(p->level--);
1646 return NULL;
1647 }
1648 int _start_lineno = p->tokens[_mark]->lineno;
1649 UNUSED(_start_lineno); // Only used by EXTRA macro
1650 int _start_col_offset = p->tokens[_mark]->col_offset;
1651 UNUSED(_start_col_offset); // Only used by EXTRA macro
1652 { // assignment
1653 if (p->error_indicator) {
1654 D(p->level--);
1655 return NULL;
1656 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001657 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001658 stmt_ty assignment_var;
1659 if (
1660 (assignment_var = assignment_rule(p)) // assignment
1661 )
1662 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001663 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001664 _res = assignment_var;
1665 goto done;
1666 }
1667 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001668 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
1670 }
1671 { // star_expressions
1672 if (p->error_indicator) {
1673 D(p->level--);
1674 return NULL;
1675 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001676 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001677 expr_ty e;
1678 if (
1679 (e = star_expressions_rule(p)) // star_expressions
1680 )
1681 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001682 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 +01001683 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1684 if (_token == NULL) {
1685 D(p->level--);
1686 return NULL;
1687 }
1688 int _end_lineno = _token->end_lineno;
1689 UNUSED(_end_lineno); // Only used by EXTRA macro
1690 int _end_col_offset = _token->end_col_offset;
1691 UNUSED(_end_col_offset); // Only used by EXTRA macro
1692 _res = _Py_Expr ( e , EXTRA );
1693 if (_res == NULL && PyErr_Occurred()) {
1694 p->error_indicator = 1;
1695 D(p->level--);
1696 return NULL;
1697 }
1698 goto done;
1699 }
1700 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001701 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001702 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1703 }
1704 { // &'return' return_stmt
1705 if (p->error_indicator) {
1706 D(p->level--);
1707 return NULL;
1708 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001709 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 +01001710 stmt_ty return_stmt_var;
1711 if (
1712 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
1713 &&
1714 (return_stmt_var = return_stmt_rule(p)) // return_stmt
1715 )
1716 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001717 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 +01001718 _res = return_stmt_var;
1719 goto done;
1720 }
1721 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001722 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001723 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
1724 }
1725 { // &('import' | 'from') import_stmt
1726 if (p->error_indicator) {
1727 D(p->level--);
1728 return NULL;
1729 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001730 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 +01001731 stmt_ty import_stmt_var;
1732 if (
1733 _PyPegen_lookahead(1, _tmp_14_rule, p)
1734 &&
1735 (import_stmt_var = import_stmt_rule(p)) // import_stmt
1736 )
1737 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001738 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001739 _res = import_stmt_var;
1740 goto done;
1741 }
1742 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001743 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001744 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
1745 }
1746 { // &'raise' raise_stmt
1747 if (p->error_indicator) {
1748 D(p->level--);
1749 return NULL;
1750 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001751 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001752 stmt_ty raise_stmt_var;
1753 if (
1754 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
1755 &&
1756 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
1757 )
1758 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001759 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 +01001760 _res = raise_stmt_var;
1761 goto done;
1762 }
1763 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001764 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
1766 }
1767 { // 'pass'
1768 if (p->error_indicator) {
1769 D(p->level--);
1770 return NULL;
1771 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001772 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001773 Token * _keyword;
1774 if (
1775 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
1776 )
1777 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001778 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001779 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1780 if (_token == NULL) {
1781 D(p->level--);
1782 return NULL;
1783 }
1784 int _end_lineno = _token->end_lineno;
1785 UNUSED(_end_lineno); // Only used by EXTRA macro
1786 int _end_col_offset = _token->end_col_offset;
1787 UNUSED(_end_col_offset); // Only used by EXTRA macro
1788 _res = _Py_Pass ( EXTRA );
1789 if (_res == NULL && PyErr_Occurred()) {
1790 p->error_indicator = 1;
1791 D(p->level--);
1792 return NULL;
1793 }
1794 goto done;
1795 }
1796 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001797 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001798 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
1799 }
1800 { // &'del' del_stmt
1801 if (p->error_indicator) {
1802 D(p->level--);
1803 return NULL;
1804 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001805 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001806 stmt_ty del_stmt_var;
1807 if (
1808 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
1809 &&
1810 (del_stmt_var = del_stmt_rule(p)) // del_stmt
1811 )
1812 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001813 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001814 _res = del_stmt_var;
1815 goto done;
1816 }
1817 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001818 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
1820 }
1821 { // &'yield' yield_stmt
1822 if (p->error_indicator) {
1823 D(p->level--);
1824 return NULL;
1825 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001826 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001827 stmt_ty yield_stmt_var;
1828 if (
1829 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
1830 &&
1831 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
1832 )
1833 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001834 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001835 _res = yield_stmt_var;
1836 goto done;
1837 }
1838 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001839 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
1841 }
1842 { // &'assert' assert_stmt
1843 if (p->error_indicator) {
1844 D(p->level--);
1845 return NULL;
1846 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001847 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001848 stmt_ty assert_stmt_var;
1849 if (
1850 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
1851 &&
1852 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
1853 )
1854 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001855 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 +01001856 _res = assert_stmt_var;
1857 goto done;
1858 }
1859 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001860 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001861 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
1862 }
1863 { // 'break'
1864 if (p->error_indicator) {
1865 D(p->level--);
1866 return NULL;
1867 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001868 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001869 Token * _keyword;
1870 if (
1871 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
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, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001875 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1876 if (_token == NULL) {
1877 D(p->level--);
1878 return NULL;
1879 }
1880 int _end_lineno = _token->end_lineno;
1881 UNUSED(_end_lineno); // Only used by EXTRA macro
1882 int _end_col_offset = _token->end_col_offset;
1883 UNUSED(_end_col_offset); // Only used by EXTRA macro
1884 _res = _Py_Break ( EXTRA );
1885 if (_res == NULL && PyErr_Occurred()) {
1886 p->error_indicator = 1;
1887 D(p->level--);
1888 return NULL;
1889 }
1890 goto done;
1891 }
1892 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001893 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
1895 }
1896 { // 'continue'
1897 if (p->error_indicator) {
1898 D(p->level--);
1899 return NULL;
1900 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001901 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001902 Token * _keyword;
1903 if (
1904 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
1905 )
1906 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001907 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001908 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1909 if (_token == NULL) {
1910 D(p->level--);
1911 return NULL;
1912 }
1913 int _end_lineno = _token->end_lineno;
1914 UNUSED(_end_lineno); // Only used by EXTRA macro
1915 int _end_col_offset = _token->end_col_offset;
1916 UNUSED(_end_col_offset); // Only used by EXTRA macro
1917 _res = _Py_Continue ( EXTRA );
1918 if (_res == NULL && PyErr_Occurred()) {
1919 p->error_indicator = 1;
1920 D(p->level--);
1921 return NULL;
1922 }
1923 goto done;
1924 }
1925 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001926 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001927 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
1928 }
1929 { // &'global' global_stmt
1930 if (p->error_indicator) {
1931 D(p->level--);
1932 return NULL;
1933 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001934 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 +01001935 stmt_ty global_stmt_var;
1936 if (
1937 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
1938 &&
1939 (global_stmt_var = global_stmt_rule(p)) // global_stmt
1940 )
1941 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001942 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 +01001943 _res = global_stmt_var;
1944 goto done;
1945 }
1946 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001947 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001948 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
1949 }
1950 { // &'nonlocal' nonlocal_stmt
1951 if (p->error_indicator) {
1952 D(p->level--);
1953 return NULL;
1954 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001955 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 +01001956 stmt_ty nonlocal_stmt_var;
1957 if (
1958 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
1959 &&
1960 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
1961 )
1962 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001963 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 +01001964 _res = nonlocal_stmt_var;
1965 goto done;
1966 }
1967 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001968 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
1970 }
1971 _res = NULL;
1972 done:
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001973 _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001974 D(p->level--);
1975 return _res;
1976}
1977
1978// compound_stmt:
1979// | &('def' | '@' | ASYNC) function_def
1980// | &'if' if_stmt
1981// | &('class' | '@') class_def
1982// | &('with' | ASYNC) with_stmt
1983// | &('for' | ASYNC) for_stmt
1984// | &'try' try_stmt
1985// | &'while' while_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08001986// | match_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001987static stmt_ty
1988compound_stmt_rule(Parser *p)
1989{
1990 D(p->level++);
1991 if (p->error_indicator) {
1992 D(p->level--);
1993 return NULL;
1994 }
1995 stmt_ty _res = NULL;
1996 int _mark = p->mark;
1997 { // &('def' | '@' | ASYNC) function_def
1998 if (p->error_indicator) {
1999 D(p->level--);
2000 return NULL;
2001 }
2002 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2003 stmt_ty function_def_var;
2004 if (
2005 _PyPegen_lookahead(1, _tmp_15_rule, p)
2006 &&
2007 (function_def_var = function_def_rule(p)) // function_def
2008 )
2009 {
2010 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2011 _res = function_def_var;
2012 goto done;
2013 }
2014 p->mark = _mark;
2015 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2016 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2017 }
2018 { // &'if' if_stmt
2019 if (p->error_indicator) {
2020 D(p->level--);
2021 return NULL;
2022 }
2023 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2024 stmt_ty if_stmt_var;
2025 if (
2026 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
2027 &&
2028 (if_stmt_var = if_stmt_rule(p)) // if_stmt
2029 )
2030 {
2031 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2032 _res = if_stmt_var;
2033 goto done;
2034 }
2035 p->mark = _mark;
2036 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
2038 }
2039 { // &('class' | '@') class_def
2040 if (p->error_indicator) {
2041 D(p->level--);
2042 return NULL;
2043 }
2044 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2045 stmt_ty class_def_var;
2046 if (
2047 _PyPegen_lookahead(1, _tmp_16_rule, p)
2048 &&
2049 (class_def_var = class_def_rule(p)) // class_def
2050 )
2051 {
2052 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2053 _res = class_def_var;
2054 goto done;
2055 }
2056 p->mark = _mark;
2057 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2058 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
2059 }
2060 { // &('with' | ASYNC) with_stmt
2061 if (p->error_indicator) {
2062 D(p->level--);
2063 return NULL;
2064 }
2065 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2066 stmt_ty with_stmt_var;
2067 if (
2068 _PyPegen_lookahead(1, _tmp_17_rule, p)
2069 &&
2070 (with_stmt_var = with_stmt_rule(p)) // with_stmt
2071 )
2072 {
2073 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2074 _res = with_stmt_var;
2075 goto done;
2076 }
2077 p->mark = _mark;
2078 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2079 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2080 }
2081 { // &('for' | ASYNC) for_stmt
2082 if (p->error_indicator) {
2083 D(p->level--);
2084 return NULL;
2085 }
2086 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2087 stmt_ty for_stmt_var;
2088 if (
2089 _PyPegen_lookahead(1, _tmp_18_rule, p)
2090 &&
2091 (for_stmt_var = for_stmt_rule(p)) // for_stmt
2092 )
2093 {
2094 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2095 _res = for_stmt_var;
2096 goto done;
2097 }
2098 p->mark = _mark;
2099 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2100 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2101 }
2102 { // &'try' try_stmt
2103 if (p->error_indicator) {
2104 D(p->level--);
2105 return NULL;
2106 }
2107 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2108 stmt_ty try_stmt_var;
2109 if (
2110 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
2111 &&
2112 (try_stmt_var = try_stmt_rule(p)) // try_stmt
2113 )
2114 {
2115 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2116 _res = try_stmt_var;
2117 goto done;
2118 }
2119 p->mark = _mark;
2120 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2121 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
2122 }
2123 { // &'while' while_stmt
2124 if (p->error_indicator) {
2125 D(p->level--);
2126 return NULL;
2127 }
2128 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2129 stmt_ty while_stmt_var;
2130 if (
2131 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
2132 &&
2133 (while_stmt_var = while_stmt_rule(p)) // while_stmt
2134 )
2135 {
2136 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2137 _res = while_stmt_var;
2138 goto done;
2139 }
2140 p->mark = _mark;
2141 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2142 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
2143 }
Brandt Bucher145bf262021-02-26 14:51:55 -08002144 { // match_stmt
2145 if (p->error_indicator) {
2146 D(p->level--);
2147 return NULL;
2148 }
2149 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2150 stmt_ty match_stmt_var;
2151 if (
2152 (match_stmt_var = match_stmt_rule(p)) // match_stmt
2153 )
2154 {
2155 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2156 _res = match_stmt_var;
2157 goto done;
2158 }
2159 p->mark = _mark;
2160 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2161 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "match_stmt"));
2162 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002163 _res = NULL;
2164 done:
2165 D(p->level--);
2166 return _res;
2167}
2168
2169// assignment:
2170// | NAME ':' expression ['=' annotated_rhs]
2171// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2172// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002173// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002174// | invalid_assignment
2175static stmt_ty
2176assignment_rule(Parser *p)
2177{
2178 D(p->level++);
2179 if (p->error_indicator) {
2180 D(p->level--);
2181 return NULL;
2182 }
2183 stmt_ty _res = NULL;
2184 int _mark = p->mark;
2185 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2186 p->error_indicator = 1;
2187 D(p->level--);
2188 return NULL;
2189 }
2190 int _start_lineno = p->tokens[_mark]->lineno;
2191 UNUSED(_start_lineno); // Only used by EXTRA macro
2192 int _start_col_offset = p->tokens[_mark]->col_offset;
2193 UNUSED(_start_col_offset); // Only used by EXTRA macro
2194 { // NAME ':' expression ['=' annotated_rhs]
2195 if (p->error_indicator) {
2196 D(p->level--);
2197 return NULL;
2198 }
2199 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2200 Token * _literal;
2201 expr_ty a;
2202 expr_ty b;
2203 void *c;
2204 if (
2205 (a = _PyPegen_name_token(p)) // NAME
2206 &&
2207 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2208 &&
2209 (b = expression_rule(p)) // expression
2210 &&
2211 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
2212 )
2213 {
2214 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2215 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2216 if (_token == NULL) {
2217 D(p->level--);
2218 return NULL;
2219 }
2220 int _end_lineno = _token->end_lineno;
2221 UNUSED(_end_lineno); // Only used by EXTRA macro
2222 int _end_col_offset = _token->end_col_offset;
2223 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002224 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotation syntax is" , _Py_AnnAssign ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , c , 1 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002225 if (_res == NULL && PyErr_Occurred()) {
2226 p->error_indicator = 1;
2227 D(p->level--);
2228 return NULL;
2229 }
2230 goto done;
2231 }
2232 p->mark = _mark;
2233 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2235 }
2236 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2237 if (p->error_indicator) {
2238 D(p->level--);
2239 return NULL;
2240 }
2241 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2242 Token * _literal;
2243 void *a;
2244 expr_ty b;
2245 void *c;
2246 if (
2247 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
2248 &&
2249 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2250 &&
2251 (b = expression_rule(p)) // expression
2252 &&
2253 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
2254 )
2255 {
2256 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2257 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2258 if (_token == NULL) {
2259 D(p->level--);
2260 return NULL;
2261 }
2262 int _end_lineno = _token->end_lineno;
2263 UNUSED(_end_lineno); // Only used by EXTRA macro
2264 int _end_col_offset = _token->end_col_offset;
2265 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002266 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotations syntax is" , _Py_AnnAssign ( a , b , c , 0 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002267 if (_res == NULL && PyErr_Occurred()) {
2268 p->error_indicator = 1;
2269 D(p->level--);
2270 return NULL;
2271 }
2272 goto done;
2273 }
2274 p->mark = _mark;
2275 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2276 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2277 }
2278 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
2279 if (p->error_indicator) {
2280 D(p->level--);
2281 return NULL;
2282 }
2283 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 +01002284 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002285 void *b;
2286 void *tc;
2287 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01002288 (a = (asdl_expr_seq*)_loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002289 &&
2290 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
2291 &&
2292 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2293 &&
2294 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
2295 )
2296 {
2297 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2298 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2299 if (_token == NULL) {
2300 D(p->level--);
2301 return NULL;
2302 }
2303 int _end_lineno = _token->end_lineno;
2304 UNUSED(_end_lineno); // Only used by EXTRA macro
2305 int _end_col_offset = _token->end_col_offset;
2306 UNUSED(_end_col_offset); // Only used by EXTRA macro
2307 _res = _Py_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
2308 if (_res == NULL && PyErr_Occurred()) {
2309 p->error_indicator = 1;
2310 D(p->level--);
2311 return NULL;
2312 }
2313 goto done;
2314 }
2315 p->mark = _mark;
2316 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2317 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2318 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002319 { // single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002320 if (p->error_indicator) {
2321 D(p->level--);
2322 return NULL;
2323 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002324 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2325 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002326 expr_ty a;
2327 AugOperator* b;
2328 void *c;
2329 if (
2330 (a = single_target_rule(p)) // single_target
2331 &&
2332 (b = augassign_rule(p)) // augassign
2333 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002334 (_cut_var = 1)
2335 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002336 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
2337 )
2338 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002339 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 +01002340 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2341 if (_token == NULL) {
2342 D(p->level--);
2343 return NULL;
2344 }
2345 int _end_lineno = _token->end_lineno;
2346 UNUSED(_end_lineno); // Only used by EXTRA macro
2347 int _end_col_offset = _token->end_col_offset;
2348 UNUSED(_end_col_offset); // Only used by EXTRA macro
2349 _res = _Py_AugAssign ( a , b -> kind , c , EXTRA );
2350 if (_res == NULL && PyErr_Occurred()) {
2351 p->error_indicator = 1;
2352 D(p->level--);
2353 return NULL;
2354 }
2355 goto done;
2356 }
2357 p->mark = _mark;
2358 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002359 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2360 if (_cut_var) {
2361 D(p->level--);
2362 return NULL;
2363 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002364 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002365 if (p->call_invalid_rules) { // invalid_assignment
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002366 if (p->error_indicator) {
2367 D(p->level--);
2368 return NULL;
2369 }
2370 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2371 void *invalid_assignment_var;
2372 if (
2373 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
2374 )
2375 {
2376 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2377 _res = invalid_assignment_var;
2378 goto done;
2379 }
2380 p->mark = _mark;
2381 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2382 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
2383 }
2384 _res = NULL;
2385 done:
2386 D(p->level--);
2387 return _res;
2388}
2389
2390// augassign:
2391// | '+='
2392// | '-='
2393// | '*='
2394// | '@='
2395// | '/='
2396// | '%='
2397// | '&='
2398// | '|='
2399// | '^='
2400// | '<<='
2401// | '>>='
2402// | '**='
2403// | '//='
2404static AugOperator*
2405augassign_rule(Parser *p)
2406{
2407 D(p->level++);
2408 if (p->error_indicator) {
2409 D(p->level--);
2410 return NULL;
2411 }
2412 AugOperator* _res = NULL;
2413 int _mark = p->mark;
2414 { // '+='
2415 if (p->error_indicator) {
2416 D(p->level--);
2417 return NULL;
2418 }
2419 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
2420 Token * _literal;
2421 if (
2422 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
2423 )
2424 {
2425 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
2426 _res = _PyPegen_augoperator ( p , Add );
2427 if (_res == NULL && PyErr_Occurred()) {
2428 p->error_indicator = 1;
2429 D(p->level--);
2430 return NULL;
2431 }
2432 goto done;
2433 }
2434 p->mark = _mark;
2435 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2436 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
2437 }
2438 { // '-='
2439 if (p->error_indicator) {
2440 D(p->level--);
2441 return NULL;
2442 }
2443 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
2444 Token * _literal;
2445 if (
2446 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
2447 )
2448 {
2449 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
2450 _res = _PyPegen_augoperator ( p , Sub );
2451 if (_res == NULL && PyErr_Occurred()) {
2452 p->error_indicator = 1;
2453 D(p->level--);
2454 return NULL;
2455 }
2456 goto done;
2457 }
2458 p->mark = _mark;
2459 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2460 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
2461 }
2462 { // '*='
2463 if (p->error_indicator) {
2464 D(p->level--);
2465 return NULL;
2466 }
2467 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
2468 Token * _literal;
2469 if (
2470 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
2471 )
2472 {
2473 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
2474 _res = _PyPegen_augoperator ( p , Mult );
2475 if (_res == NULL && PyErr_Occurred()) {
2476 p->error_indicator = 1;
2477 D(p->level--);
2478 return NULL;
2479 }
2480 goto done;
2481 }
2482 p->mark = _mark;
2483 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
2485 }
2486 { // '@='
2487 if (p->error_indicator) {
2488 D(p->level--);
2489 return NULL;
2490 }
2491 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
2492 Token * _literal;
2493 if (
2494 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
2495 )
2496 {
2497 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002498 _res = CHECK_VERSION ( AugOperator * , 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002499 if (_res == NULL && PyErr_Occurred()) {
2500 p->error_indicator = 1;
2501 D(p->level--);
2502 return NULL;
2503 }
2504 goto done;
2505 }
2506 p->mark = _mark;
2507 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2508 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
2509 }
2510 { // '/='
2511 if (p->error_indicator) {
2512 D(p->level--);
2513 return NULL;
2514 }
2515 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
2516 Token * _literal;
2517 if (
2518 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
2519 )
2520 {
2521 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
2522 _res = _PyPegen_augoperator ( p , Div );
2523 if (_res == NULL && PyErr_Occurred()) {
2524 p->error_indicator = 1;
2525 D(p->level--);
2526 return NULL;
2527 }
2528 goto done;
2529 }
2530 p->mark = _mark;
2531 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2532 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
2533 }
2534 { // '%='
2535 if (p->error_indicator) {
2536 D(p->level--);
2537 return NULL;
2538 }
2539 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
2540 Token * _literal;
2541 if (
2542 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
2543 )
2544 {
2545 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
2546 _res = _PyPegen_augoperator ( p , Mod );
2547 if (_res == NULL && PyErr_Occurred()) {
2548 p->error_indicator = 1;
2549 D(p->level--);
2550 return NULL;
2551 }
2552 goto done;
2553 }
2554 p->mark = _mark;
2555 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2556 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
2557 }
2558 { // '&='
2559 if (p->error_indicator) {
2560 D(p->level--);
2561 return NULL;
2562 }
2563 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
2564 Token * _literal;
2565 if (
2566 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
2567 )
2568 {
2569 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
2570 _res = _PyPegen_augoperator ( p , BitAnd );
2571 if (_res == NULL && PyErr_Occurred()) {
2572 p->error_indicator = 1;
2573 D(p->level--);
2574 return NULL;
2575 }
2576 goto done;
2577 }
2578 p->mark = _mark;
2579 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
2581 }
2582 { // '|='
2583 if (p->error_indicator) {
2584 D(p->level--);
2585 return NULL;
2586 }
2587 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
2588 Token * _literal;
2589 if (
2590 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
2591 )
2592 {
2593 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
2594 _res = _PyPegen_augoperator ( p , BitOr );
2595 if (_res == NULL && PyErr_Occurred()) {
2596 p->error_indicator = 1;
2597 D(p->level--);
2598 return NULL;
2599 }
2600 goto done;
2601 }
2602 p->mark = _mark;
2603 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
2605 }
2606 { // '^='
2607 if (p->error_indicator) {
2608 D(p->level--);
2609 return NULL;
2610 }
2611 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
2612 Token * _literal;
2613 if (
2614 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
2615 )
2616 {
2617 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
2618 _res = _PyPegen_augoperator ( p , BitXor );
2619 if (_res == NULL && PyErr_Occurred()) {
2620 p->error_indicator = 1;
2621 D(p->level--);
2622 return NULL;
2623 }
2624 goto done;
2625 }
2626 p->mark = _mark;
2627 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2628 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
2629 }
2630 { // '<<='
2631 if (p->error_indicator) {
2632 D(p->level--);
2633 return NULL;
2634 }
2635 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
2636 Token * _literal;
2637 if (
2638 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
2639 )
2640 {
2641 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
2642 _res = _PyPegen_augoperator ( p , LShift );
2643 if (_res == NULL && PyErr_Occurred()) {
2644 p->error_indicator = 1;
2645 D(p->level--);
2646 return NULL;
2647 }
2648 goto done;
2649 }
2650 p->mark = _mark;
2651 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2652 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
2653 }
2654 { // '>>='
2655 if (p->error_indicator) {
2656 D(p->level--);
2657 return NULL;
2658 }
2659 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
2660 Token * _literal;
2661 if (
2662 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
2663 )
2664 {
2665 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
2666 _res = _PyPegen_augoperator ( p , RShift );
2667 if (_res == NULL && PyErr_Occurred()) {
2668 p->error_indicator = 1;
2669 D(p->level--);
2670 return NULL;
2671 }
2672 goto done;
2673 }
2674 p->mark = _mark;
2675 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2676 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
2677 }
2678 { // '**='
2679 if (p->error_indicator) {
2680 D(p->level--);
2681 return NULL;
2682 }
2683 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
2684 Token * _literal;
2685 if (
2686 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
2687 )
2688 {
2689 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
2690 _res = _PyPegen_augoperator ( p , Pow );
2691 if (_res == NULL && PyErr_Occurred()) {
2692 p->error_indicator = 1;
2693 D(p->level--);
2694 return NULL;
2695 }
2696 goto done;
2697 }
2698 p->mark = _mark;
2699 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2700 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
2701 }
2702 { // '//='
2703 if (p->error_indicator) {
2704 D(p->level--);
2705 return NULL;
2706 }
2707 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
2708 Token * _literal;
2709 if (
2710 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
2711 )
2712 {
2713 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
2714 _res = _PyPegen_augoperator ( p , FloorDiv );
2715 if (_res == NULL && PyErr_Occurred()) {
2716 p->error_indicator = 1;
2717 D(p->level--);
2718 return NULL;
2719 }
2720 goto done;
2721 }
2722 p->mark = _mark;
2723 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2724 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
2725 }
2726 _res = NULL;
2727 done:
2728 D(p->level--);
2729 return _res;
2730}
2731
2732// global_stmt: 'global' ','.NAME+
2733static stmt_ty
2734global_stmt_rule(Parser *p)
2735{
2736 D(p->level++);
2737 if (p->error_indicator) {
2738 D(p->level--);
2739 return NULL;
2740 }
2741 stmt_ty _res = NULL;
2742 int _mark = p->mark;
2743 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2744 p->error_indicator = 1;
2745 D(p->level--);
2746 return NULL;
2747 }
2748 int _start_lineno = p->tokens[_mark]->lineno;
2749 UNUSED(_start_lineno); // Only used by EXTRA macro
2750 int _start_col_offset = p->tokens[_mark]->col_offset;
2751 UNUSED(_start_col_offset); // Only used by EXTRA macro
2752 { // 'global' ','.NAME+
2753 if (p->error_indicator) {
2754 D(p->level--);
2755 return NULL;
2756 }
2757 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2758 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002759 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002760 if (
2761 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
2762 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002763 (a = (asdl_expr_seq*)_gather_25_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002764 )
2765 {
2766 D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2767 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2768 if (_token == NULL) {
2769 D(p->level--);
2770 return NULL;
2771 }
2772 int _end_lineno = _token->end_lineno;
2773 UNUSED(_end_lineno); // Only used by EXTRA macro
2774 int _end_col_offset = _token->end_col_offset;
2775 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002776 _res = _Py_Global ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002777 if (_res == NULL && PyErr_Occurred()) {
2778 p->error_indicator = 1;
2779 D(p->level--);
2780 return NULL;
2781 }
2782 goto done;
2783 }
2784 p->mark = _mark;
2785 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2786 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
2787 }
2788 _res = NULL;
2789 done:
2790 D(p->level--);
2791 return _res;
2792}
2793
2794// nonlocal_stmt: 'nonlocal' ','.NAME+
2795static stmt_ty
2796nonlocal_stmt_rule(Parser *p)
2797{
2798 D(p->level++);
2799 if (p->error_indicator) {
2800 D(p->level--);
2801 return NULL;
2802 }
2803 stmt_ty _res = NULL;
2804 int _mark = p->mark;
2805 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2806 p->error_indicator = 1;
2807 D(p->level--);
2808 return NULL;
2809 }
2810 int _start_lineno = p->tokens[_mark]->lineno;
2811 UNUSED(_start_lineno); // Only used by EXTRA macro
2812 int _start_col_offset = p->tokens[_mark]->col_offset;
2813 UNUSED(_start_col_offset); // Only used by EXTRA macro
2814 { // 'nonlocal' ','.NAME+
2815 if (p->error_indicator) {
2816 D(p->level--);
2817 return NULL;
2818 }
2819 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2820 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002821 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002822 if (
2823 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
2824 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002825 (a = (asdl_expr_seq*)_gather_27_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002826 )
2827 {
2828 D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2829 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2830 if (_token == NULL) {
2831 D(p->level--);
2832 return NULL;
2833 }
2834 int _end_lineno = _token->end_lineno;
2835 UNUSED(_end_lineno); // Only used by EXTRA macro
2836 int _end_col_offset = _token->end_col_offset;
2837 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002838 _res = _Py_Nonlocal ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002839 if (_res == NULL && PyErr_Occurred()) {
2840 p->error_indicator = 1;
2841 D(p->level--);
2842 return NULL;
2843 }
2844 goto done;
2845 }
2846 p->mark = _mark;
2847 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2848 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
2849 }
2850 _res = NULL;
2851 done:
2852 D(p->level--);
2853 return _res;
2854}
2855
2856// yield_stmt: yield_expr
2857static stmt_ty
2858yield_stmt_rule(Parser *p)
2859{
2860 D(p->level++);
2861 if (p->error_indicator) {
2862 D(p->level--);
2863 return NULL;
2864 }
2865 stmt_ty _res = NULL;
2866 int _mark = p->mark;
2867 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2868 p->error_indicator = 1;
2869 D(p->level--);
2870 return NULL;
2871 }
2872 int _start_lineno = p->tokens[_mark]->lineno;
2873 UNUSED(_start_lineno); // Only used by EXTRA macro
2874 int _start_col_offset = p->tokens[_mark]->col_offset;
2875 UNUSED(_start_col_offset); // Only used by EXTRA macro
2876 { // yield_expr
2877 if (p->error_indicator) {
2878 D(p->level--);
2879 return NULL;
2880 }
2881 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2882 expr_ty y;
2883 if (
2884 (y = yield_expr_rule(p)) // yield_expr
2885 )
2886 {
2887 D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2888 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2889 if (_token == NULL) {
2890 D(p->level--);
2891 return NULL;
2892 }
2893 int _end_lineno = _token->end_lineno;
2894 UNUSED(_end_lineno); // Only used by EXTRA macro
2895 int _end_col_offset = _token->end_col_offset;
2896 UNUSED(_end_col_offset); // Only used by EXTRA macro
2897 _res = _Py_Expr ( y , EXTRA );
2898 if (_res == NULL && PyErr_Occurred()) {
2899 p->error_indicator = 1;
2900 D(p->level--);
2901 return NULL;
2902 }
2903 goto done;
2904 }
2905 p->mark = _mark;
2906 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
2908 }
2909 _res = NULL;
2910 done:
2911 D(p->level--);
2912 return _res;
2913}
2914
2915// assert_stmt: 'assert' expression [',' expression]
2916static stmt_ty
2917assert_stmt_rule(Parser *p)
2918{
2919 D(p->level++);
2920 if (p->error_indicator) {
2921 D(p->level--);
2922 return NULL;
2923 }
2924 stmt_ty _res = NULL;
2925 int _mark = p->mark;
2926 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2927 p->error_indicator = 1;
2928 D(p->level--);
2929 return NULL;
2930 }
2931 int _start_lineno = p->tokens[_mark]->lineno;
2932 UNUSED(_start_lineno); // Only used by EXTRA macro
2933 int _start_col_offset = p->tokens[_mark]->col_offset;
2934 UNUSED(_start_col_offset); // Only used by EXTRA macro
2935 { // 'assert' expression [',' expression]
2936 if (p->error_indicator) {
2937 D(p->level--);
2938 return NULL;
2939 }
2940 D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
2941 Token * _keyword;
2942 expr_ty a;
2943 void *b;
2944 if (
2945 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
2946 &&
2947 (a = expression_rule(p)) // expression
2948 &&
2949 (b = _tmp_29_rule(p), 1) // [',' expression]
2950 )
2951 {
2952 D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
2953 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2954 if (_token == NULL) {
2955 D(p->level--);
2956 return NULL;
2957 }
2958 int _end_lineno = _token->end_lineno;
2959 UNUSED(_end_lineno); // Only used by EXTRA macro
2960 int _end_col_offset = _token->end_col_offset;
2961 UNUSED(_end_col_offset); // Only used by EXTRA macro
2962 _res = _Py_Assert ( a , b , EXTRA );
2963 if (_res == NULL && PyErr_Occurred()) {
2964 p->error_indicator = 1;
2965 D(p->level--);
2966 return NULL;
2967 }
2968 goto done;
2969 }
2970 p->mark = _mark;
2971 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2972 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
2973 }
2974 _res = NULL;
2975 done:
2976 D(p->level--);
2977 return _res;
2978}
2979
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002980// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002981static stmt_ty
2982del_stmt_rule(Parser *p)
2983{
2984 D(p->level++);
2985 if (p->error_indicator) {
2986 D(p->level--);
2987 return NULL;
2988 }
2989 stmt_ty _res = NULL;
2990 int _mark = p->mark;
2991 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2992 p->error_indicator = 1;
2993 D(p->level--);
2994 return NULL;
2995 }
2996 int _start_lineno = p->tokens[_mark]->lineno;
2997 UNUSED(_start_lineno); // Only used by EXTRA macro
2998 int _start_col_offset = p->tokens[_mark]->col_offset;
2999 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003000 { // 'del' del_targets &(';' | NEWLINE)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003001 if (p->error_indicator) {
3002 D(p->level--);
3003 return NULL;
3004 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003005 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 +01003006 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003007 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003008 if (
3009 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
3010 &&
3011 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003012 &&
3013 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003014 )
3015 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003016 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 +01003017 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3018 if (_token == NULL) {
3019 D(p->level--);
3020 return NULL;
3021 }
3022 int _end_lineno = _token->end_lineno;
3023 UNUSED(_end_lineno); // Only used by EXTRA macro
3024 int _end_col_offset = _token->end_col_offset;
3025 UNUSED(_end_col_offset); // Only used by EXTRA macro
3026 _res = _Py_Delete ( a , EXTRA );
3027 if (_res == NULL && PyErr_Occurred()) {
3028 p->error_indicator = 1;
3029 D(p->level--);
3030 return NULL;
3031 }
3032 goto done;
3033 }
3034 p->mark = _mark;
3035 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003036 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
3037 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003038 if (p->call_invalid_rules) { // invalid_del_stmt
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003039 if (p->error_indicator) {
3040 D(p->level--);
3041 return NULL;
3042 }
3043 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3044 void *invalid_del_stmt_var;
3045 if (
3046 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
3047 )
3048 {
3049 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3050 _res = invalid_del_stmt_var;
3051 goto done;
3052 }
3053 p->mark = _mark;
3054 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3055 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003056 }
3057 _res = NULL;
3058 done:
3059 D(p->level--);
3060 return _res;
3061}
3062
3063// import_stmt: import_name | import_from
3064static stmt_ty
3065import_stmt_rule(Parser *p)
3066{
3067 D(p->level++);
3068 if (p->error_indicator) {
3069 D(p->level--);
3070 return NULL;
3071 }
3072 stmt_ty _res = NULL;
3073 int _mark = p->mark;
3074 { // import_name
3075 if (p->error_indicator) {
3076 D(p->level--);
3077 return NULL;
3078 }
3079 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
3080 stmt_ty import_name_var;
3081 if (
3082 (import_name_var = import_name_rule(p)) // import_name
3083 )
3084 {
3085 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
3086 _res = import_name_var;
3087 goto done;
3088 }
3089 p->mark = _mark;
3090 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3091 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
3092 }
3093 { // import_from
3094 if (p->error_indicator) {
3095 D(p->level--);
3096 return NULL;
3097 }
3098 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
3099 stmt_ty import_from_var;
3100 if (
3101 (import_from_var = import_from_rule(p)) // import_from
3102 )
3103 {
3104 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
3105 _res = import_from_var;
3106 goto done;
3107 }
3108 p->mark = _mark;
3109 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3110 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
3111 }
3112 _res = NULL;
3113 done:
3114 D(p->level--);
3115 return _res;
3116}
3117
3118// import_name: 'import' dotted_as_names
3119static stmt_ty
3120import_name_rule(Parser *p)
3121{
3122 D(p->level++);
3123 if (p->error_indicator) {
3124 D(p->level--);
3125 return NULL;
3126 }
3127 stmt_ty _res = NULL;
3128 int _mark = p->mark;
3129 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3130 p->error_indicator = 1;
3131 D(p->level--);
3132 return NULL;
3133 }
3134 int _start_lineno = p->tokens[_mark]->lineno;
3135 UNUSED(_start_lineno); // Only used by EXTRA macro
3136 int _start_col_offset = p->tokens[_mark]->col_offset;
3137 UNUSED(_start_col_offset); // Only used by EXTRA macro
3138 { // 'import' dotted_as_names
3139 if (p->error_indicator) {
3140 D(p->level--);
3141 return NULL;
3142 }
3143 D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3144 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003145 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003146 if (
3147 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
3148 &&
3149 (a = dotted_as_names_rule(p)) // dotted_as_names
3150 )
3151 {
3152 D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3153 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3154 if (_token == NULL) {
3155 D(p->level--);
3156 return NULL;
3157 }
3158 int _end_lineno = _token->end_lineno;
3159 UNUSED(_end_lineno); // Only used by EXTRA macro
3160 int _end_col_offset = _token->end_col_offset;
3161 UNUSED(_end_col_offset); // Only used by EXTRA macro
3162 _res = _Py_Import ( a , EXTRA );
3163 if (_res == NULL && PyErr_Occurred()) {
3164 p->error_indicator = 1;
3165 D(p->level--);
3166 return NULL;
3167 }
3168 goto done;
3169 }
3170 p->mark = _mark;
3171 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3172 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
3173 }
3174 _res = NULL;
3175 done:
3176 D(p->level--);
3177 return _res;
3178}
3179
3180// import_from:
3181// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3182// | 'from' (('.' | '...'))+ 'import' import_from_targets
3183static stmt_ty
3184import_from_rule(Parser *p)
3185{
3186 D(p->level++);
3187 if (p->error_indicator) {
3188 D(p->level--);
3189 return NULL;
3190 }
3191 stmt_ty _res = NULL;
3192 int _mark = p->mark;
3193 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3194 p->error_indicator = 1;
3195 D(p->level--);
3196 return NULL;
3197 }
3198 int _start_lineno = p->tokens[_mark]->lineno;
3199 UNUSED(_start_lineno); // Only used by EXTRA macro
3200 int _start_col_offset = p->tokens[_mark]->col_offset;
3201 UNUSED(_start_col_offset); // Only used by EXTRA macro
3202 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3203 if (p->error_indicator) {
3204 D(p->level--);
3205 return NULL;
3206 }
3207 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3208 Token * _keyword;
3209 Token * _keyword_1;
3210 asdl_seq * a;
3211 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003212 asdl_alias_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003213 if (
3214 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3215 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003216 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003217 &&
3218 (b = dotted_name_rule(p)) // dotted_name
3219 &&
3220 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3221 &&
3222 (c = import_from_targets_rule(p)) // import_from_targets
3223 )
3224 {
3225 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3226 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3227 if (_token == NULL) {
3228 D(p->level--);
3229 return NULL;
3230 }
3231 int _end_lineno = _token->end_lineno;
3232 UNUSED(_end_lineno); // Only used by EXTRA macro
3233 int _end_col_offset = _token->end_col_offset;
3234 UNUSED(_end_col_offset); // Only used by EXTRA macro
3235 _res = _Py_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
3236 if (_res == NULL && PyErr_Occurred()) {
3237 p->error_indicator = 1;
3238 D(p->level--);
3239 return NULL;
3240 }
3241 goto done;
3242 }
3243 p->mark = _mark;
3244 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3245 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3246 }
3247 { // 'from' (('.' | '...'))+ 'import' import_from_targets
3248 if (p->error_indicator) {
3249 D(p->level--);
3250 return NULL;
3251 }
3252 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3253 Token * _keyword;
3254 Token * _keyword_1;
3255 asdl_seq * a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003256 asdl_alias_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003257 if (
3258 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3259 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003260 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003261 &&
3262 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3263 &&
3264 (b = import_from_targets_rule(p)) // import_from_targets
3265 )
3266 {
3267 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3268 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3269 if (_token == NULL) {
3270 D(p->level--);
3271 return NULL;
3272 }
3273 int _end_lineno = _token->end_lineno;
3274 UNUSED(_end_lineno); // Only used by EXTRA macro
3275 int _end_col_offset = _token->end_col_offset;
3276 UNUSED(_end_col_offset); // Only used by EXTRA macro
3277 _res = _Py_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
3278 if (_res == NULL && PyErr_Occurred()) {
3279 p->error_indicator = 1;
3280 D(p->level--);
3281 return NULL;
3282 }
3283 goto done;
3284 }
3285 p->mark = _mark;
3286 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3287 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3288 }
3289 _res = NULL;
3290 done:
3291 D(p->level--);
3292 return _res;
3293}
3294
3295// import_from_targets:
3296// | '(' import_from_as_names ','? ')'
3297// | import_from_as_names !','
3298// | '*'
3299// | invalid_import_from_targets
Pablo Galindoa5634c42020-09-16 19:42:00 +01003300static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003301import_from_targets_rule(Parser *p)
3302{
3303 D(p->level++);
3304 if (p->error_indicator) {
3305 D(p->level--);
3306 return NULL;
3307 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003308 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003309 int _mark = p->mark;
3310 { // '(' import_from_as_names ','? ')'
3311 if (p->error_indicator) {
3312 D(p->level--);
3313 return NULL;
3314 }
3315 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3316 Token * _literal;
3317 Token * _literal_1;
3318 void *_opt_var;
3319 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01003320 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003321 if (
3322 (_literal = _PyPegen_expect_token(p, 7)) // token='('
3323 &&
3324 (a = import_from_as_names_rule(p)) // import_from_as_names
3325 &&
3326 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
3327 &&
3328 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
3329 )
3330 {
3331 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3332 _res = a;
3333 if (_res == NULL && PyErr_Occurred()) {
3334 p->error_indicator = 1;
3335 D(p->level--);
3336 return NULL;
3337 }
3338 goto done;
3339 }
3340 p->mark = _mark;
3341 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3342 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3343 }
3344 { // import_from_as_names !','
3345 if (p->error_indicator) {
3346 D(p->level--);
3347 return NULL;
3348 }
3349 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 +01003350 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003351 if (
3352 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
3353 &&
3354 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
3355 )
3356 {
3357 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
3358 _res = import_from_as_names_var;
3359 goto done;
3360 }
3361 p->mark = _mark;
3362 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3363 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
3364 }
3365 { // '*'
3366 if (p->error_indicator) {
3367 D(p->level--);
3368 return NULL;
3369 }
3370 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
3371 Token * _literal;
3372 if (
3373 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
3374 )
3375 {
3376 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03003377 _res = ( asdl_alias_seq * ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003378 if (_res == NULL && PyErr_Occurred()) {
3379 p->error_indicator = 1;
3380 D(p->level--);
3381 return NULL;
3382 }
3383 goto done;
3384 }
3385 p->mark = _mark;
3386 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3387 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
3388 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003389 if (p->call_invalid_rules) { // invalid_import_from_targets
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003390 if (p->error_indicator) {
3391 D(p->level--);
3392 return NULL;
3393 }
3394 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3395 void *invalid_import_from_targets_var;
3396 if (
3397 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3398 )
3399 {
3400 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3401 _res = invalid_import_from_targets_var;
3402 goto done;
3403 }
3404 p->mark = _mark;
3405 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3406 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
3407 }
3408 _res = NULL;
3409 done:
3410 D(p->level--);
3411 return _res;
3412}
3413
3414// import_from_as_names: ','.import_from_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003415static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003416import_from_as_names_rule(Parser *p)
3417{
3418 D(p->level++);
3419 if (p->error_indicator) {
3420 D(p->level--);
3421 return NULL;
3422 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003423 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003424 int _mark = p->mark;
3425 { // ','.import_from_as_name+
3426 if (p->error_indicator) {
3427 D(p->level--);
3428 return NULL;
3429 }
3430 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 +01003431 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003432 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003433 (a = (asdl_alias_seq*)_gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003434 )
3435 {
3436 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
3437 _res = a;
3438 if (_res == NULL && PyErr_Occurred()) {
3439 p->error_indicator = 1;
3440 D(p->level--);
3441 return NULL;
3442 }
3443 goto done;
3444 }
3445 p->mark = _mark;
3446 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3447 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
3448 }
3449 _res = NULL;
3450 done:
3451 D(p->level--);
3452 return _res;
3453}
3454
3455// import_from_as_name: NAME ['as' NAME]
3456static alias_ty
3457import_from_as_name_rule(Parser *p)
3458{
3459 D(p->level++);
3460 if (p->error_indicator) {
3461 D(p->level--);
3462 return NULL;
3463 }
3464 alias_ty _res = NULL;
3465 int _mark = p->mark;
3466 { // NAME ['as' NAME]
3467 if (p->error_indicator) {
3468 D(p->level--);
3469 return NULL;
3470 }
3471 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3472 expr_ty a;
3473 void *b;
3474 if (
3475 (a = _PyPegen_name_token(p)) // NAME
3476 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003477 (b = _tmp_35_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003478 )
3479 {
3480 D(fprintf(stderr, "%*c+ import_from_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3481 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3482 if (_res == NULL && PyErr_Occurred()) {
3483 p->error_indicator = 1;
3484 D(p->level--);
3485 return NULL;
3486 }
3487 goto done;
3488 }
3489 p->mark = _mark;
3490 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3491 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
3492 }
3493 _res = NULL;
3494 done:
3495 D(p->level--);
3496 return _res;
3497}
3498
3499// dotted_as_names: ','.dotted_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003500static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003501dotted_as_names_rule(Parser *p)
3502{
3503 D(p->level++);
3504 if (p->error_indicator) {
3505 D(p->level--);
3506 return NULL;
3507 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003508 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003509 int _mark = p->mark;
3510 { // ','.dotted_as_name+
3511 if (p->error_indicator) {
3512 D(p->level--);
3513 return NULL;
3514 }
3515 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 +01003516 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003517 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003518 (a = (asdl_alias_seq*)_gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003519 )
3520 {
3521 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
3522 _res = a;
3523 if (_res == NULL && PyErr_Occurred()) {
3524 p->error_indicator = 1;
3525 D(p->level--);
3526 return NULL;
3527 }
3528 goto done;
3529 }
3530 p->mark = _mark;
3531 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3532 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
3533 }
3534 _res = NULL;
3535 done:
3536 D(p->level--);
3537 return _res;
3538}
3539
3540// dotted_as_name: dotted_name ['as' NAME]
3541static alias_ty
3542dotted_as_name_rule(Parser *p)
3543{
3544 D(p->level++);
3545 if (p->error_indicator) {
3546 D(p->level--);
3547 return NULL;
3548 }
3549 alias_ty _res = NULL;
3550 int _mark = p->mark;
3551 { // dotted_name ['as' NAME]
3552 if (p->error_indicator) {
3553 D(p->level--);
3554 return NULL;
3555 }
3556 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3557 expr_ty a;
3558 void *b;
3559 if (
3560 (a = dotted_name_rule(p)) // dotted_name
3561 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003562 (b = _tmp_38_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003563 )
3564 {
3565 D(fprintf(stderr, "%*c+ dotted_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3566 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3567 if (_res == NULL && PyErr_Occurred()) {
3568 p->error_indicator = 1;
3569 D(p->level--);
3570 return NULL;
3571 }
3572 goto done;
3573 }
3574 p->mark = _mark;
3575 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3576 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
3577 }
3578 _res = NULL;
3579 done:
3580 D(p->level--);
3581 return _res;
3582}
3583
3584// Left-recursive
3585// dotted_name: dotted_name '.' NAME | NAME
3586static expr_ty dotted_name_raw(Parser *);
3587static expr_ty
3588dotted_name_rule(Parser *p)
3589{
3590 D(p->level++);
3591 expr_ty _res = NULL;
3592 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3593 D(p->level--);
3594 return _res;
3595 }
3596 int _mark = p->mark;
3597 int _resmark = p->mark;
3598 while (1) {
3599 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
3600 if (tmpvar_0) {
3601 D(p->level--);
3602 return _res;
3603 }
3604 p->mark = _mark;
3605 void *_raw = dotted_name_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02003606 if (p->error_indicator)
3607 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003608 if (_raw == NULL || p->mark <= _resmark)
3609 break;
3610 _resmark = p->mark;
3611 _res = _raw;
3612 }
3613 p->mark = _resmark;
3614 D(p->level--);
3615 return _res;
3616}
3617static expr_ty
3618dotted_name_raw(Parser *p)
3619{
3620 D(p->level++);
3621 if (p->error_indicator) {
3622 D(p->level--);
3623 return NULL;
3624 }
3625 expr_ty _res = NULL;
3626 int _mark = p->mark;
3627 { // dotted_name '.' NAME
3628 if (p->error_indicator) {
3629 D(p->level--);
3630 return NULL;
3631 }
3632 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3633 Token * _literal;
3634 expr_ty a;
3635 expr_ty b;
3636 if (
3637 (a = dotted_name_rule(p)) // dotted_name
3638 &&
3639 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
3640 &&
3641 (b = _PyPegen_name_token(p)) // NAME
3642 )
3643 {
3644 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3645 _res = _PyPegen_join_names_with_dot ( p , a , b );
3646 if (_res == NULL && PyErr_Occurred()) {
3647 p->error_indicator = 1;
3648 D(p->level--);
3649 return NULL;
3650 }
3651 goto done;
3652 }
3653 p->mark = _mark;
3654 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3655 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
3656 }
3657 { // NAME
3658 if (p->error_indicator) {
3659 D(p->level--);
3660 return NULL;
3661 }
3662 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
3663 expr_ty name_var;
3664 if (
3665 (name_var = _PyPegen_name_token(p)) // NAME
3666 )
3667 {
3668 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
3669 _res = name_var;
3670 goto done;
3671 }
3672 p->mark = _mark;
3673 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3674 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
3675 }
3676 _res = NULL;
3677 done:
3678 D(p->level--);
3679 return _res;
3680}
3681
3682// if_stmt:
Pablo Galindo58fb1562021-02-02 19:54:22 +00003683// | 'if' named_expression &&':' block elif_stmt
3684// | 'if' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003685static stmt_ty
3686if_stmt_rule(Parser *p)
3687{
3688 D(p->level++);
3689 if (p->error_indicator) {
3690 D(p->level--);
3691 return NULL;
3692 }
3693 stmt_ty _res = NULL;
3694 int _mark = p->mark;
3695 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3696 p->error_indicator = 1;
3697 D(p->level--);
3698 return NULL;
3699 }
3700 int _start_lineno = p->tokens[_mark]->lineno;
3701 UNUSED(_start_lineno); // Only used by EXTRA macro
3702 int _start_col_offset = p->tokens[_mark]->col_offset;
3703 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00003704 { // 'if' named_expression &&':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003705 if (p->error_indicator) {
3706 D(p->level--);
3707 return NULL;
3708 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003709 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 +01003710 Token * _keyword;
3711 Token * _literal;
3712 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003713 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003714 stmt_ty c;
3715 if (
3716 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3717 &&
3718 (a = named_expression_rule(p)) // named_expression
3719 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003720 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003721 &&
3722 (b = block_rule(p)) // block
3723 &&
3724 (c = elif_stmt_rule(p)) // elif_stmt
3725 )
3726 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003727 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 +01003728 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3729 if (_token == NULL) {
3730 D(p->level--);
3731 return NULL;
3732 }
3733 int _end_lineno = _token->end_lineno;
3734 UNUSED(_end_lineno); // Only used by EXTRA macro
3735 int _end_col_offset = _token->end_col_offset;
3736 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03003737 _res = _Py_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003738 if (_res == NULL && PyErr_Occurred()) {
3739 p->error_indicator = 1;
3740 D(p->level--);
3741 return NULL;
3742 }
3743 goto done;
3744 }
3745 p->mark = _mark;
3746 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression &&':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003748 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003749 { // 'if' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003750 if (p->error_indicator) {
3751 D(p->level--);
3752 return NULL;
3753 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003754 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 +01003755 Token * _keyword;
3756 Token * _literal;
3757 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003758 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003759 void *c;
3760 if (
3761 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3762 &&
3763 (a = named_expression_rule(p)) // named_expression
3764 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003765 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003766 &&
3767 (b = block_rule(p)) // block
3768 &&
3769 (c = else_block_rule(p), 1) // else_block?
3770 )
3771 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003772 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 +01003773 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3774 if (_token == NULL) {
3775 D(p->level--);
3776 return NULL;
3777 }
3778 int _end_lineno = _token->end_lineno;
3779 UNUSED(_end_lineno); // Only used by EXTRA macro
3780 int _end_col_offset = _token->end_col_offset;
3781 UNUSED(_end_col_offset); // Only used by EXTRA macro
3782 _res = _Py_If ( a , b , c , EXTRA );
3783 if (_res == NULL && PyErr_Occurred()) {
3784 p->error_indicator = 1;
3785 D(p->level--);
3786 return NULL;
3787 }
3788 goto done;
3789 }
3790 p->mark = _mark;
3791 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003792 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression &&':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003793 }
3794 _res = NULL;
3795 done:
3796 D(p->level--);
3797 return _res;
3798}
3799
3800// elif_stmt:
Pablo Galindo58fb1562021-02-02 19:54:22 +00003801// | 'elif' named_expression &&':' block elif_stmt
3802// | 'elif' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003803static stmt_ty
3804elif_stmt_rule(Parser *p)
3805{
3806 D(p->level++);
3807 if (p->error_indicator) {
3808 D(p->level--);
3809 return NULL;
3810 }
3811 stmt_ty _res = NULL;
3812 int _mark = p->mark;
3813 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3814 p->error_indicator = 1;
3815 D(p->level--);
3816 return NULL;
3817 }
3818 int _start_lineno = p->tokens[_mark]->lineno;
3819 UNUSED(_start_lineno); // Only used by EXTRA macro
3820 int _start_col_offset = p->tokens[_mark]->col_offset;
3821 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00003822 { // 'elif' named_expression &&':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003823 if (p->error_indicator) {
3824 D(p->level--);
3825 return NULL;
3826 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003827 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 +01003828 Token * _keyword;
3829 Token * _literal;
3830 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003831 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003832 stmt_ty c;
3833 if (
3834 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
3835 &&
3836 (a = named_expression_rule(p)) // named_expression
3837 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003838 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003839 &&
3840 (b = block_rule(p)) // block
3841 &&
3842 (c = elif_stmt_rule(p)) // elif_stmt
3843 )
3844 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003845 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 +01003846 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3847 if (_token == NULL) {
3848 D(p->level--);
3849 return NULL;
3850 }
3851 int _end_lineno = _token->end_lineno;
3852 UNUSED(_end_lineno); // Only used by EXTRA macro
3853 int _end_col_offset = _token->end_col_offset;
3854 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03003855 _res = _Py_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003856 if (_res == NULL && PyErr_Occurred()) {
3857 p->error_indicator = 1;
3858 D(p->level--);
3859 return NULL;
3860 }
3861 goto done;
3862 }
3863 p->mark = _mark;
3864 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression &&':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003866 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003867 { // 'elif' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003868 if (p->error_indicator) {
3869 D(p->level--);
3870 return NULL;
3871 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003872 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 +01003873 Token * _keyword;
3874 Token * _literal;
3875 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003876 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003877 void *c;
3878 if (
3879 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
3880 &&
3881 (a = named_expression_rule(p)) // named_expression
3882 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003883 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003884 &&
3885 (b = block_rule(p)) // block
3886 &&
3887 (c = else_block_rule(p), 1) // else_block?
3888 )
3889 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003890 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 +01003891 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3892 if (_token == NULL) {
3893 D(p->level--);
3894 return NULL;
3895 }
3896 int _end_lineno = _token->end_lineno;
3897 UNUSED(_end_lineno); // Only used by EXTRA macro
3898 int _end_col_offset = _token->end_col_offset;
3899 UNUSED(_end_col_offset); // Only used by EXTRA macro
3900 _res = _Py_If ( a , b , c , EXTRA );
3901 if (_res == NULL && PyErr_Occurred()) {
3902 p->error_indicator = 1;
3903 D(p->level--);
3904 return NULL;
3905 }
3906 goto done;
3907 }
3908 p->mark = _mark;
3909 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003910 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression &&':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003911 }
3912 _res = NULL;
3913 done:
3914 D(p->level--);
3915 return _res;
3916}
3917
Pablo Galindo58fb1562021-02-02 19:54:22 +00003918// else_block: 'else' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01003919static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003920else_block_rule(Parser *p)
3921{
3922 D(p->level++);
3923 if (p->error_indicator) {
3924 D(p->level--);
3925 return NULL;
3926 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003927 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003928 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +00003929 { // 'else' &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003930 if (p->error_indicator) {
3931 D(p->level--);
3932 return NULL;
3933 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003934 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003935 Token * _keyword;
3936 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003937 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003938 if (
3939 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
3940 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003941 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003942 &&
3943 (b = block_rule(p)) // block
3944 )
3945 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003946 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 +01003947 _res = b;
3948 if (_res == NULL && PyErr_Occurred()) {
3949 p->error_indicator = 1;
3950 D(p->level--);
3951 return NULL;
3952 }
3953 goto done;
3954 }
3955 p->mark = _mark;
3956 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003957 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003958 }
3959 _res = NULL;
3960 done:
3961 D(p->level--);
3962 return _res;
3963}
3964
Pablo Galindo58fb1562021-02-02 19:54:22 +00003965// while_stmt: 'while' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003966static stmt_ty
3967while_stmt_rule(Parser *p)
3968{
3969 D(p->level++);
3970 if (p->error_indicator) {
3971 D(p->level--);
3972 return NULL;
3973 }
3974 stmt_ty _res = NULL;
3975 int _mark = p->mark;
3976 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3977 p->error_indicator = 1;
3978 D(p->level--);
3979 return NULL;
3980 }
3981 int _start_lineno = p->tokens[_mark]->lineno;
3982 UNUSED(_start_lineno); // Only used by EXTRA macro
3983 int _start_col_offset = p->tokens[_mark]->col_offset;
3984 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00003985 { // 'while' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003986 if (p->error_indicator) {
3987 D(p->level--);
3988 return NULL;
3989 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003990 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 +01003991 Token * _keyword;
3992 Token * _literal;
3993 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003994 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003995 void *c;
3996 if (
3997 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
3998 &&
3999 (a = named_expression_rule(p)) // named_expression
4000 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004001 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004002 &&
4003 (b = block_rule(p)) // block
4004 &&
4005 (c = else_block_rule(p), 1) // else_block?
4006 )
4007 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004008 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 +01004009 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4010 if (_token == NULL) {
4011 D(p->level--);
4012 return NULL;
4013 }
4014 int _end_lineno = _token->end_lineno;
4015 UNUSED(_end_lineno); // Only used by EXTRA macro
4016 int _end_col_offset = _token->end_col_offset;
4017 UNUSED(_end_col_offset); // Only used by EXTRA macro
4018 _res = _Py_While ( a , b , c , EXTRA );
4019 if (_res == NULL && PyErr_Occurred()) {
4020 p->error_indicator = 1;
4021 D(p->level--);
4022 return NULL;
4023 }
4024 goto done;
4025 }
4026 p->mark = _mark;
4027 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004028 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression &&':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004029 }
4030 _res = NULL;
4031 done:
4032 D(p->level--);
4033 return _res;
4034}
4035
4036// for_stmt:
Pablo Galindo58fb1562021-02-02 19:54:22 +00004037// | 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
4038// | ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004039// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004040static stmt_ty
4041for_stmt_rule(Parser *p)
4042{
4043 D(p->level++);
4044 if (p->error_indicator) {
4045 D(p->level--);
4046 return NULL;
4047 }
4048 stmt_ty _res = NULL;
4049 int _mark = p->mark;
4050 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4051 p->error_indicator = 1;
4052 D(p->level--);
4053 return NULL;
4054 }
4055 int _start_lineno = p->tokens[_mark]->lineno;
4056 UNUSED(_start_lineno); // Only used by EXTRA macro
4057 int _start_col_offset = p->tokens[_mark]->col_offset;
4058 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00004059 { // 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004060 if (p->error_indicator) {
4061 D(p->level--);
4062 return NULL;
4063 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004064 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 +03004065 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004066 Token * _keyword;
4067 Token * _keyword_1;
4068 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004069 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004070 void *el;
4071 expr_ty ex;
4072 expr_ty t;
4073 void *tc;
4074 if (
4075 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4076 &&
4077 (t = star_targets_rule(p)) // star_targets
4078 &&
4079 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4080 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004081 (_cut_var = 1)
4082 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004083 (ex = star_expressions_rule(p)) // star_expressions
4084 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004085 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004086 &&
4087 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4088 &&
4089 (b = block_rule(p)) // block
4090 &&
4091 (el = else_block_rule(p), 1) // else_block?
4092 )
4093 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004094 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 +01004095 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4096 if (_token == NULL) {
4097 D(p->level--);
4098 return NULL;
4099 }
4100 int _end_lineno = _token->end_lineno;
4101 UNUSED(_end_lineno); // Only used by EXTRA macro
4102 int _end_col_offset = _token->end_col_offset;
4103 UNUSED(_end_col_offset); // Only used by EXTRA macro
4104 _res = _Py_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
4105 if (_res == NULL && PyErr_Occurred()) {
4106 p->error_indicator = 1;
4107 D(p->level--);
4108 return NULL;
4109 }
4110 goto done;
4111 }
4112 p->mark = _mark;
4113 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004114 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 +03004115 if (_cut_var) {
4116 D(p->level--);
4117 return NULL;
4118 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004119 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004120 { // ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004121 if (p->error_indicator) {
4122 D(p->level--);
4123 return NULL;
4124 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004125 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 +03004126 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004127 Token * _keyword;
4128 Token * _keyword_1;
4129 Token * _literal;
4130 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004131 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004132 void *el;
4133 expr_ty ex;
4134 expr_ty t;
4135 void *tc;
4136 if (
4137 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4138 &&
4139 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4140 &&
4141 (t = star_targets_rule(p)) // star_targets
4142 &&
4143 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4144 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004145 (_cut_var = 1)
4146 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004147 (ex = star_expressions_rule(p)) // star_expressions
4148 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004149 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004150 &&
4151 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4152 &&
4153 (b = block_rule(p)) // block
4154 &&
4155 (el = else_block_rule(p), 1) // else_block?
4156 )
4157 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004158 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 +01004159 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4160 if (_token == NULL) {
4161 D(p->level--);
4162 return NULL;
4163 }
4164 int _end_lineno = _token->end_lineno;
4165 UNUSED(_end_lineno); // Only used by EXTRA macro
4166 int _end_col_offset = _token->end_col_offset;
4167 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03004168 _res = CHECK_VERSION ( stmt_ty , 5 , "Async for loops are" , _Py_AsyncFor ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004169 if (_res == NULL && PyErr_Occurred()) {
4170 p->error_indicator = 1;
4171 D(p->level--);
4172 return NULL;
4173 }
4174 goto done;
4175 }
4176 p->mark = _mark;
4177 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004178 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 +03004179 if (_cut_var) {
4180 D(p->level--);
4181 return NULL;
4182 }
4183 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004184 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004185 if (p->error_indicator) {
4186 D(p->level--);
4187 return NULL;
4188 }
4189 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4190 void *invalid_for_target_var;
4191 if (
4192 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4193 )
4194 {
4195 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4196 _res = invalid_for_target_var;
4197 goto done;
4198 }
4199 p->mark = _mark;
4200 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4201 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004202 }
4203 _res = NULL;
4204 done:
4205 D(p->level--);
4206 return _res;
4207}
4208
4209// with_stmt:
4210// | 'with' '(' ','.with_item+ ','? ')' ':' block
4211// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
4212// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4213// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo58fb1562021-02-02 19:54:22 +00004214// | invalid_with_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004215static stmt_ty
4216with_stmt_rule(Parser *p)
4217{
4218 D(p->level++);
4219 if (p->error_indicator) {
4220 D(p->level--);
4221 return NULL;
4222 }
4223 stmt_ty _res = NULL;
4224 int _mark = p->mark;
4225 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4226 p->error_indicator = 1;
4227 D(p->level--);
4228 return NULL;
4229 }
4230 int _start_lineno = p->tokens[_mark]->lineno;
4231 UNUSED(_start_lineno); // Only used by EXTRA macro
4232 int _start_col_offset = p->tokens[_mark]->col_offset;
4233 UNUSED(_start_col_offset); // Only used by EXTRA macro
4234 { // 'with' '(' ','.with_item+ ','? ')' ':' block
4235 if (p->error_indicator) {
4236 D(p->level--);
4237 return NULL;
4238 }
4239 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4240 Token * _keyword;
4241 Token * _literal;
4242 Token * _literal_1;
4243 Token * _literal_2;
4244 void *_opt_var;
4245 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004246 asdl_withitem_seq* a;
4247 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004248 if (
4249 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4250 &&
4251 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4252 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004253 (a = (asdl_withitem_seq*)_gather_39_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004254 &&
4255 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4256 &&
4257 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4258 &&
4259 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4260 &&
4261 (b = block_rule(p)) // block
4262 )
4263 {
4264 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4265 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4266 if (_token == NULL) {
4267 D(p->level--);
4268 return NULL;
4269 }
4270 int _end_lineno = _token->end_lineno;
4271 UNUSED(_end_lineno); // Only used by EXTRA macro
4272 int _end_col_offset = _token->end_col_offset;
4273 UNUSED(_end_col_offset); // Only used by EXTRA macro
4274 _res = _Py_With ( a , b , NULL , EXTRA );
4275 if (_res == NULL && PyErr_Occurred()) {
4276 p->error_indicator = 1;
4277 D(p->level--);
4278 return NULL;
4279 }
4280 goto done;
4281 }
4282 p->mark = _mark;
4283 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4284 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4285 }
4286 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
4287 if (p->error_indicator) {
4288 D(p->level--);
4289 return NULL;
4290 }
4291 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4292 Token * _keyword;
4293 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004294 asdl_withitem_seq* a;
4295 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004296 void *tc;
4297 if (
4298 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4299 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004300 (a = (asdl_withitem_seq*)_gather_41_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004301 &&
4302 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4303 &&
4304 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4305 &&
4306 (b = block_rule(p)) // block
4307 )
4308 {
4309 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4310 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4311 if (_token == NULL) {
4312 D(p->level--);
4313 return NULL;
4314 }
4315 int _end_lineno = _token->end_lineno;
4316 UNUSED(_end_lineno); // Only used by EXTRA macro
4317 int _end_col_offset = _token->end_col_offset;
4318 UNUSED(_end_col_offset); // Only used by EXTRA macro
4319 _res = _Py_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
4320 if (_res == NULL && PyErr_Occurred()) {
4321 p->error_indicator = 1;
4322 D(p->level--);
4323 return NULL;
4324 }
4325 goto done;
4326 }
4327 p->mark = _mark;
4328 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4329 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4330 }
4331 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4332 if (p->error_indicator) {
4333 D(p->level--);
4334 return NULL;
4335 }
4336 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4337 Token * _keyword;
4338 Token * _literal;
4339 Token * _literal_1;
4340 Token * _literal_2;
4341 void *_opt_var;
4342 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004343 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004344 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004345 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004346 if (
4347 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4348 &&
4349 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4350 &&
4351 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4352 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004353 (a = (asdl_withitem_seq*)_gather_43_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004354 &&
4355 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4356 &&
4357 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4358 &&
4359 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4360 &&
4361 (b = block_rule(p)) // block
4362 )
4363 {
4364 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4365 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4366 if (_token == NULL) {
4367 D(p->level--);
4368 return NULL;
4369 }
4370 int _end_lineno = _token->end_lineno;
4371 UNUSED(_end_lineno); // Only used by EXTRA macro
4372 int _end_col_offset = _token->end_col_offset;
4373 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03004374 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NULL , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004375 if (_res == NULL && PyErr_Occurred()) {
4376 p->error_indicator = 1;
4377 D(p->level--);
4378 return NULL;
4379 }
4380 goto done;
4381 }
4382 p->mark = _mark;
4383 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4384 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4385 }
4386 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
4387 if (p->error_indicator) {
4388 D(p->level--);
4389 return NULL;
4390 }
4391 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4392 Token * _keyword;
4393 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004394 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004395 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004396 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004397 void *tc;
4398 if (
4399 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4400 &&
4401 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4402 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004403 (a = (asdl_withitem_seq*)_gather_45_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004404 &&
4405 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4406 &&
4407 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4408 &&
4409 (b = block_rule(p)) // block
4410 )
4411 {
4412 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4413 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4414 if (_token == NULL) {
4415 D(p->level--);
4416 return NULL;
4417 }
4418 int _end_lineno = _token->end_lineno;
4419 UNUSED(_end_lineno); // Only used by EXTRA macro
4420 int _end_col_offset = _token->end_col_offset;
4421 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03004422 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004423 if (_res == NULL && PyErr_Occurred()) {
4424 p->error_indicator = 1;
4425 D(p->level--);
4426 return NULL;
4427 }
4428 goto done;
4429 }
4430 p->mark = _mark;
4431 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4432 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4433 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004434 if (p->call_invalid_rules) { // invalid_with_stmt
4435 if (p->error_indicator) {
4436 D(p->level--);
4437 return NULL;
4438 }
4439 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4440 void *invalid_with_stmt_var;
4441 if (
4442 (invalid_with_stmt_var = invalid_with_stmt_rule(p)) // invalid_with_stmt
4443 )
4444 {
4445 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4446 _res = invalid_with_stmt_var;
4447 goto done;
4448 }
4449 p->mark = _mark;
4450 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4451 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt"));
4452 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004453 _res = NULL;
4454 done:
4455 D(p->level--);
4456 return _res;
4457}
4458
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004459// with_item:
4460// | expression 'as' star_target &(',' | ')' | ':')
4461// | invalid_with_item
4462// | expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004463static withitem_ty
4464with_item_rule(Parser *p)
4465{
4466 D(p->level++);
4467 if (p->error_indicator) {
4468 D(p->level--);
4469 return NULL;
4470 }
4471 withitem_ty _res = NULL;
4472 int _mark = p->mark;
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004473 { // expression 'as' star_target &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004474 if (p->error_indicator) {
4475 D(p->level--);
4476 return NULL;
4477 }
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004478 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 +03004479 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004480 expr_ty e;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004481 expr_ty t;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004482 if (
4483 (e = expression_rule(p)) // expression
4484 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004485 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4486 &&
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004487 (t = star_target_rule(p)) // star_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004488 &&
4489 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004490 )
4491 {
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004492 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004493 _res = _Py_withitem ( e , t , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004494 if (_res == NULL && PyErr_Occurred()) {
4495 p->error_indicator = 1;
4496 D(p->level--);
4497 return NULL;
4498 }
4499 goto done;
4500 }
4501 p->mark = _mark;
4502 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004503 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004504 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004505 if (p->call_invalid_rules) { // invalid_with_item
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004506 if (p->error_indicator) {
4507 D(p->level--);
4508 return NULL;
4509 }
4510 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4511 void *invalid_with_item_var;
4512 if (
4513 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4514 )
4515 {
4516 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4517 _res = invalid_with_item_var;
4518 goto done;
4519 }
4520 p->mark = _mark;
4521 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4522 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4523 }
4524 { // expression
4525 if (p->error_indicator) {
4526 D(p->level--);
4527 return NULL;
4528 }
4529 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4530 expr_ty e;
4531 if (
4532 (e = expression_rule(p)) // expression
4533 )
4534 {
4535 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
4536 _res = _Py_withitem ( e , NULL , p -> arena );
4537 if (_res == NULL && PyErr_Occurred()) {
4538 p->error_indicator = 1;
4539 D(p->level--);
4540 return NULL;
4541 }
4542 goto done;
4543 }
4544 p->mark = _mark;
4545 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4546 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004547 }
4548 _res = NULL;
4549 done:
4550 D(p->level--);
4551 return _res;
4552}
4553
4554// try_stmt:
Pablo Galindo58fb1562021-02-02 19:54:22 +00004555// | 'try' &&':' block finally_block
4556// | 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004557static stmt_ty
4558try_stmt_rule(Parser *p)
4559{
4560 D(p->level++);
4561 if (p->error_indicator) {
4562 D(p->level--);
4563 return NULL;
4564 }
4565 stmt_ty _res = NULL;
4566 int _mark = p->mark;
4567 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4568 p->error_indicator = 1;
4569 D(p->level--);
4570 return NULL;
4571 }
4572 int _start_lineno = p->tokens[_mark]->lineno;
4573 UNUSED(_start_lineno); // Only used by EXTRA macro
4574 int _start_col_offset = p->tokens[_mark]->col_offset;
4575 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00004576 { // 'try' &&':' block finally_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004577 if (p->error_indicator) {
4578 D(p->level--);
4579 return NULL;
4580 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004581 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 +01004582 Token * _keyword;
4583 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004584 asdl_stmt_seq* b;
4585 asdl_stmt_seq* f;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004586 if (
4587 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4588 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004589 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004590 &&
4591 (b = block_rule(p)) // block
4592 &&
4593 (f = finally_block_rule(p)) // finally_block
4594 )
4595 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004596 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 +01004597 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4598 if (_token == NULL) {
4599 D(p->level--);
4600 return NULL;
4601 }
4602 int _end_lineno = _token->end_lineno;
4603 UNUSED(_end_lineno); // Only used by EXTRA macro
4604 int _end_col_offset = _token->end_col_offset;
4605 UNUSED(_end_col_offset); // Only used by EXTRA macro
4606 _res = _Py_Try ( b , NULL , NULL , f , EXTRA );
4607 if (_res == NULL && PyErr_Occurred()) {
4608 p->error_indicator = 1;
4609 D(p->level--);
4610 return NULL;
4611 }
4612 goto done;
4613 }
4614 p->mark = _mark;
4615 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block finally_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004617 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004618 { // 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004619 if (p->error_indicator) {
4620 D(p->level--);
4621 return NULL;
4622 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004623 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 +01004624 Token * _keyword;
4625 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004626 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004627 void *el;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004628 asdl_excepthandler_seq* ex;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004629 void *f;
4630 if (
4631 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4632 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004633 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004634 &&
4635 (b = block_rule(p)) // block
4636 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004637 (ex = (asdl_excepthandler_seq*)_loop1_48_rule(p)) // except_block+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004638 &&
4639 (el = else_block_rule(p), 1) // else_block?
4640 &&
4641 (f = finally_block_rule(p), 1) // finally_block?
4642 )
4643 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004644 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 +01004645 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4646 if (_token == NULL) {
4647 D(p->level--);
4648 return NULL;
4649 }
4650 int _end_lineno = _token->end_lineno;
4651 UNUSED(_end_lineno); // Only used by EXTRA macro
4652 int _end_col_offset = _token->end_col_offset;
4653 UNUSED(_end_col_offset); // Only used by EXTRA macro
4654 _res = _Py_Try ( b , ex , el , f , EXTRA );
4655 if (_res == NULL && PyErr_Occurred()) {
4656 p->error_indicator = 1;
4657 D(p->level--);
4658 return NULL;
4659 }
4660 goto done;
4661 }
4662 p->mark = _mark;
4663 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004664 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004665 }
4666 _res = NULL;
4667 done:
4668 D(p->level--);
4669 return _res;
4670}
4671
Pablo Galindo206cbda2021-02-07 18:42:21 +00004672// except_block:
4673// | 'except' expression ['as' NAME] ':' block
4674// | 'except' ':' block
4675// | invalid_except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004676static excepthandler_ty
4677except_block_rule(Parser *p)
4678{
4679 D(p->level++);
4680 if (p->error_indicator) {
4681 D(p->level--);
4682 return NULL;
4683 }
4684 excepthandler_ty _res = NULL;
4685 int _mark = p->mark;
4686 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4687 p->error_indicator = 1;
4688 D(p->level--);
4689 return NULL;
4690 }
4691 int _start_lineno = p->tokens[_mark]->lineno;
4692 UNUSED(_start_lineno); // Only used by EXTRA macro
4693 int _start_col_offset = p->tokens[_mark]->col_offset;
4694 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo206cbda2021-02-07 18:42:21 +00004695 { // 'except' expression ['as' NAME] ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004696 if (p->error_indicator) {
4697 D(p->level--);
4698 return NULL;
4699 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00004700 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 +01004701 Token * _keyword;
4702 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004703 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004704 expr_ty e;
4705 void *t;
4706 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004707 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004708 &&
4709 (e = expression_rule(p)) // expression
4710 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004711 (t = _tmp_49_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004712 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00004713 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004714 &&
4715 (b = block_rule(p)) // block
4716 )
4717 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00004718 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 +01004719 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4720 if (_token == NULL) {
4721 D(p->level--);
4722 return NULL;
4723 }
4724 int _end_lineno = _token->end_lineno;
4725 UNUSED(_end_lineno); // Only used by EXTRA macro
4726 int _end_col_offset = _token->end_col_offset;
4727 UNUSED(_end_col_offset); // Only used by EXTRA macro
4728 _res = _Py_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
4729 if (_res == NULL && PyErr_Occurred()) {
4730 p->error_indicator = 1;
4731 D(p->level--);
4732 return NULL;
4733 }
4734 goto done;
4735 }
4736 p->mark = _mark;
4737 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00004738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004739 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00004740 { // 'except' ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004741 if (p->error_indicator) {
4742 D(p->level--);
4743 return NULL;
4744 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00004745 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004746 Token * _keyword;
4747 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004748 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004749 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004750 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004751 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00004752 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004753 &&
4754 (b = block_rule(p)) // block
4755 )
4756 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00004757 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 +01004758 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4759 if (_token == NULL) {
4760 D(p->level--);
4761 return NULL;
4762 }
4763 int _end_lineno = _token->end_lineno;
4764 UNUSED(_end_lineno); // Only used by EXTRA macro
4765 int _end_col_offset = _token->end_col_offset;
4766 UNUSED(_end_col_offset); // Only used by EXTRA macro
4767 _res = _Py_ExceptHandler ( NULL , NULL , b , EXTRA );
4768 if (_res == NULL && PyErr_Occurred()) {
4769 p->error_indicator = 1;
4770 D(p->level--);
4771 return NULL;
4772 }
4773 goto done;
4774 }
4775 p->mark = _mark;
4776 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00004777 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
4778 }
4779 if (p->call_invalid_rules) { // invalid_except_block
4780 if (p->error_indicator) {
4781 D(p->level--);
4782 return NULL;
4783 }
4784 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_block"));
4785 void *invalid_except_block_var;
4786 if (
4787 (invalid_except_block_var = invalid_except_block_rule(p)) // invalid_except_block
4788 )
4789 {
4790 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_block"));
4791 _res = invalid_except_block_var;
4792 goto done;
4793 }
4794 p->mark = _mark;
4795 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4796 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004797 }
4798 _res = NULL;
4799 done:
4800 D(p->level--);
4801 return _res;
4802}
4803
4804// finally_block: 'finally' ':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01004805static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004806finally_block_rule(Parser *p)
4807{
4808 D(p->level++);
4809 if (p->error_indicator) {
4810 D(p->level--);
4811 return NULL;
4812 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01004813 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004814 int _mark = p->mark;
4815 { // 'finally' ':' block
4816 if (p->error_indicator) {
4817 D(p->level--);
4818 return NULL;
4819 }
4820 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
4821 Token * _keyword;
4822 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004823 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004824 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004825 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004826 &&
4827 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4828 &&
4829 (a = block_rule(p)) // block
4830 )
4831 {
4832 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
4833 _res = a;
4834 if (_res == NULL && PyErr_Occurred()) {
4835 p->error_indicator = 1;
4836 D(p->level--);
4837 return NULL;
4838 }
4839 goto done;
4840 }
4841 p->mark = _mark;
4842 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
4843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' block"));
4844 }
4845 _res = NULL;
4846 done:
4847 D(p->level--);
4848 return _res;
4849}
4850
Brandt Bucher145bf262021-02-26 14:51:55 -08004851// match_stmt: "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
4852static stmt_ty
4853match_stmt_rule(Parser *p)
4854{
4855 D(p->level++);
4856 if (p->error_indicator) {
4857 D(p->level--);
4858 return NULL;
4859 }
4860 stmt_ty _res = NULL;
4861 int _mark = p->mark;
4862 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4863 p->error_indicator = 1;
4864 D(p->level--);
4865 return NULL;
4866 }
4867 int _start_lineno = p->tokens[_mark]->lineno;
4868 UNUSED(_start_lineno); // Only used by EXTRA macro
4869 int _start_col_offset = p->tokens[_mark]->col_offset;
4870 UNUSED(_start_col_offset); // Only used by EXTRA macro
4871 { // "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
4872 if (p->error_indicator) {
4873 D(p->level--);
4874 return NULL;
4875 }
4876 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
4877 expr_ty _keyword;
4878 Token * _literal;
4879 asdl_match_case_seq* cases;
4880 Token * dedent_var;
4881 Token * indent_var;
4882 Token * newline_var;
4883 expr_ty subject;
4884 if (
4885 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
4886 &&
4887 (subject = subject_expr_rule(p)) // subject_expr
4888 &&
4889 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4890 &&
4891 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
4892 &&
4893 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
4894 &&
4895 (cases = (asdl_match_case_seq*)_loop1_50_rule(p)) // case_block+
4896 &&
4897 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
4898 )
4899 {
4900 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
4901 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4902 if (_token == NULL) {
4903 D(p->level--);
4904 return NULL;
4905 }
4906 int _end_lineno = _token->end_lineno;
4907 UNUSED(_end_lineno); // Only used by EXTRA macro
4908 int _end_col_offset = _token->end_col_offset;
4909 UNUSED(_end_col_offset); // Only used by EXTRA macro
4910 _res = CHECK_VERSION ( stmt_ty , 10 , "Pattern matching is" , _Py_Match ( subject , cases , EXTRA ) );
4911 if (_res == NULL && PyErr_Occurred()) {
4912 p->error_indicator = 1;
4913 D(p->level--);
4914 return NULL;
4915 }
4916 goto done;
4917 }
4918 p->mark = _mark;
4919 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4920 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
4921 }
4922 _res = NULL;
4923 done:
4924 D(p->level--);
4925 return _res;
4926}
4927
4928// subject_expr: star_named_expression ',' star_named_expressions? | named_expression
4929static expr_ty
4930subject_expr_rule(Parser *p)
4931{
4932 D(p->level++);
4933 if (p->error_indicator) {
4934 D(p->level--);
4935 return NULL;
4936 }
4937 expr_ty _res = NULL;
4938 int _mark = p->mark;
4939 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4940 p->error_indicator = 1;
4941 D(p->level--);
4942 return NULL;
4943 }
4944 int _start_lineno = p->tokens[_mark]->lineno;
4945 UNUSED(_start_lineno); // Only used by EXTRA macro
4946 int _start_col_offset = p->tokens[_mark]->col_offset;
4947 UNUSED(_start_col_offset); // Only used by EXTRA macro
4948 { // star_named_expression ',' star_named_expressions?
4949 if (p->error_indicator) {
4950 D(p->level--);
4951 return NULL;
4952 }
4953 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
4954 Token * _literal;
4955 expr_ty value;
4956 void *values;
4957 if (
4958 (value = star_named_expression_rule(p)) // star_named_expression
4959 &&
4960 (_literal = _PyPegen_expect_token(p, 12)) // token=','
4961 &&
4962 (values = star_named_expressions_rule(p), 1) // star_named_expressions?
4963 )
4964 {
4965 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
4966 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4967 if (_token == NULL) {
4968 D(p->level--);
4969 return NULL;
4970 }
4971 int _end_lineno = _token->end_lineno;
4972 UNUSED(_end_lineno); // Only used by EXTRA macro
4973 int _end_col_offset = _token->end_col_offset;
4974 UNUSED(_end_col_offset); // Only used by EXTRA macro
4975 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , value , values ) ) , Load , EXTRA );
4976 if (_res == NULL && PyErr_Occurred()) {
4977 p->error_indicator = 1;
4978 D(p->level--);
4979 return NULL;
4980 }
4981 goto done;
4982 }
4983 p->mark = _mark;
4984 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
4985 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
4986 }
4987 { // named_expression
4988 if (p->error_indicator) {
4989 D(p->level--);
4990 return NULL;
4991 }
4992 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
4993 expr_ty named_expression_var;
4994 if (
4995 (named_expression_var = named_expression_rule(p)) // named_expression
4996 )
4997 {
4998 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
4999 _res = named_expression_var;
5000 goto done;
5001 }
5002 p->mark = _mark;
5003 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5004 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
5005 }
5006 _res = NULL;
5007 done:
5008 D(p->level--);
5009 return _res;
5010}
5011
5012// case_block: "case" patterns guard? ':' block
5013static match_case_ty
5014case_block_rule(Parser *p)
5015{
5016 D(p->level++);
5017 if (p->error_indicator) {
5018 D(p->level--);
5019 return NULL;
5020 }
5021 match_case_ty _res = NULL;
5022 int _mark = p->mark;
5023 { // "case" patterns guard? ':' block
5024 if (p->error_indicator) {
5025 D(p->level--);
5026 return NULL;
5027 }
5028 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
5029 expr_ty _keyword;
5030 Token * _literal;
5031 asdl_stmt_seq* body;
5032 void *guard;
5033 expr_ty pattern;
5034 if (
5035 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
5036 &&
5037 (pattern = patterns_rule(p)) // patterns
5038 &&
5039 (guard = guard_rule(p), 1) // guard?
5040 &&
5041 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5042 &&
5043 (body = block_rule(p)) // block
5044 )
5045 {
5046 D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
5047 _res = _Py_match_case ( pattern , guard , body , p -> arena );
5048 if (_res == NULL && PyErr_Occurred()) {
5049 p->error_indicator = 1;
5050 D(p->level--);
5051 return NULL;
5052 }
5053 goto done;
5054 }
5055 p->mark = _mark;
5056 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5057 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' block"));
5058 }
5059 _res = NULL;
5060 done:
5061 D(p->level--);
5062 return _res;
5063}
5064
5065// guard: 'if' named_expression
5066static expr_ty
5067guard_rule(Parser *p)
5068{
5069 D(p->level++);
5070 if (p->error_indicator) {
5071 D(p->level--);
5072 return NULL;
5073 }
5074 expr_ty _res = NULL;
5075 int _mark = p->mark;
5076 { // 'if' named_expression
5077 if (p->error_indicator) {
5078 D(p->level--);
5079 return NULL;
5080 }
5081 D(fprintf(stderr, "%*c> guard[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5082 Token * _keyword;
5083 expr_ty guard;
5084 if (
5085 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
5086 &&
5087 (guard = named_expression_rule(p)) // named_expression
5088 )
5089 {
5090 D(fprintf(stderr, "%*c+ guard[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5091 _res = guard;
5092 if (_res == NULL && PyErr_Occurred()) {
5093 p->error_indicator = 1;
5094 D(p->level--);
5095 return NULL;
5096 }
5097 goto done;
5098 }
5099 p->mark = _mark;
5100 D(fprintf(stderr, "%*c%s guard[%d-%d]: %s failed!\n", p->level, ' ',
5101 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression"));
5102 }
5103 _res = NULL;
5104 done:
5105 D(p->level--);
5106 return _res;
5107}
5108
5109// patterns: open_sequence_pattern | pattern
5110static expr_ty
5111patterns_rule(Parser *p)
5112{
5113 D(p->level++);
5114 if (p->error_indicator) {
5115 D(p->level--);
5116 return NULL;
5117 }
5118 expr_ty _res = NULL;
5119 int _mark = p->mark;
5120 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5121 p->error_indicator = 1;
5122 D(p->level--);
5123 return NULL;
5124 }
5125 int _start_lineno = p->tokens[_mark]->lineno;
5126 UNUSED(_start_lineno); // Only used by EXTRA macro
5127 int _start_col_offset = p->tokens[_mark]->col_offset;
5128 UNUSED(_start_col_offset); // Only used by EXTRA macro
5129 { // open_sequence_pattern
5130 if (p->error_indicator) {
5131 D(p->level--);
5132 return NULL;
5133 }
5134 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
5135 asdl_expr_seq* values;
5136 if (
5137 (values = (asdl_expr_seq*)open_sequence_pattern_rule(p)) // open_sequence_pattern
5138 )
5139 {
5140 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
5141 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5142 if (_token == NULL) {
5143 D(p->level--);
5144 return NULL;
5145 }
5146 int _end_lineno = _token->end_lineno;
5147 UNUSED(_end_lineno); // Only used by EXTRA macro
5148 int _end_col_offset = _token->end_col_offset;
5149 UNUSED(_end_col_offset); // Only used by EXTRA macro
5150 _res = _Py_Tuple ( values , Load , EXTRA );
5151 if (_res == NULL && PyErr_Occurred()) {
5152 p->error_indicator = 1;
5153 D(p->level--);
5154 return NULL;
5155 }
5156 goto done;
5157 }
5158 p->mark = _mark;
5159 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5160 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "open_sequence_pattern"));
5161 }
5162 { // pattern
5163 if (p->error_indicator) {
5164 D(p->level--);
5165 return NULL;
5166 }
5167 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
5168 expr_ty pattern_var;
5169 if (
5170 (pattern_var = pattern_rule(p)) // pattern
5171 )
5172 {
5173 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
5174 _res = pattern_var;
5175 goto done;
5176 }
5177 p->mark = _mark;
5178 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5179 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
5180 }
5181 _res = NULL;
5182 done:
5183 D(p->level--);
5184 return _res;
5185}
5186
5187// pattern: as_pattern | or_pattern
5188static expr_ty
5189pattern_rule(Parser *p)
5190{
5191 D(p->level++);
5192 if (p->error_indicator) {
5193 D(p->level--);
5194 return NULL;
5195 }
5196 expr_ty _res = NULL;
5197 int _mark = p->mark;
5198 { // as_pattern
5199 if (p->error_indicator) {
5200 D(p->level--);
5201 return NULL;
5202 }
5203 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "as_pattern"));
5204 expr_ty as_pattern_var;
5205 if (
5206 (as_pattern_var = as_pattern_rule(p)) // as_pattern
5207 )
5208 {
5209 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "as_pattern"));
5210 _res = as_pattern_var;
5211 goto done;
5212 }
5213 p->mark = _mark;
5214 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5215 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "as_pattern"));
5216 }
5217 { // or_pattern
5218 if (p->error_indicator) {
5219 D(p->level--);
5220 return NULL;
5221 }
5222 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern"));
5223 expr_ty or_pattern_var;
5224 if (
5225 (or_pattern_var = or_pattern_rule(p)) // or_pattern
5226 )
5227 {
5228 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern"));
5229 _res = or_pattern_var;
5230 goto done;
5231 }
5232 p->mark = _mark;
5233 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern"));
5235 }
5236 _res = NULL;
5237 done:
5238 D(p->level--);
5239 return _res;
5240}
5241
5242// as_pattern: or_pattern 'as' capture_pattern
5243static expr_ty
5244as_pattern_rule(Parser *p)
5245{
5246 D(p->level++);
5247 if (p->error_indicator) {
5248 D(p->level--);
5249 return NULL;
5250 }
5251 expr_ty _res = NULL;
5252 int _mark = p->mark;
5253 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5254 p->error_indicator = 1;
5255 D(p->level--);
5256 return NULL;
5257 }
5258 int _start_lineno = p->tokens[_mark]->lineno;
5259 UNUSED(_start_lineno); // Only used by EXTRA macro
5260 int _start_col_offset = p->tokens[_mark]->col_offset;
5261 UNUSED(_start_col_offset); // Only used by EXTRA macro
5262 { // or_pattern 'as' capture_pattern
5263 if (p->error_indicator) {
5264 D(p->level--);
5265 return NULL;
5266 }
5267 D(fprintf(stderr, "%*c> as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' capture_pattern"));
5268 Token * _keyword;
5269 expr_ty pattern;
5270 expr_ty target;
5271 if (
5272 (pattern = or_pattern_rule(p)) // or_pattern
5273 &&
5274 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
5275 &&
5276 (target = capture_pattern_rule(p)) // capture_pattern
5277 )
5278 {
5279 D(fprintf(stderr, "%*c+ as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' capture_pattern"));
5280 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5281 if (_token == NULL) {
5282 D(p->level--);
5283 return NULL;
5284 }
5285 int _end_lineno = _token->end_lineno;
5286 UNUSED(_end_lineno); // Only used by EXTRA macro
5287 int _end_col_offset = _token->end_col_offset;
5288 UNUSED(_end_col_offset); // Only used by EXTRA macro
5289 _res = _Py_MatchAs ( pattern , target -> v . Name . id , EXTRA );
5290 if (_res == NULL && PyErr_Occurred()) {
5291 p->error_indicator = 1;
5292 D(p->level--);
5293 return NULL;
5294 }
5295 goto done;
5296 }
5297 p->mark = _mark;
5298 D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5299 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' capture_pattern"));
5300 }
5301 _res = NULL;
5302 done:
5303 D(p->level--);
5304 return _res;
5305}
5306
5307// or_pattern: '|'.closed_pattern+
5308static expr_ty
5309or_pattern_rule(Parser *p)
5310{
5311 D(p->level++);
5312 if (p->error_indicator) {
5313 D(p->level--);
5314 return NULL;
5315 }
5316 expr_ty _res = NULL;
5317 int _mark = p->mark;
5318 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5319 p->error_indicator = 1;
5320 D(p->level--);
5321 return NULL;
5322 }
5323 int _start_lineno = p->tokens[_mark]->lineno;
5324 UNUSED(_start_lineno); // Only used by EXTRA macro
5325 int _start_col_offset = p->tokens[_mark]->col_offset;
5326 UNUSED(_start_col_offset); // Only used by EXTRA macro
5327 { // '|'.closed_pattern+
5328 if (p->error_indicator) {
5329 D(p->level--);
5330 return NULL;
5331 }
5332 D(fprintf(stderr, "%*c> or_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
5333 asdl_expr_seq* patterns;
5334 if (
5335 (patterns = (asdl_expr_seq*)_gather_51_rule(p)) // '|'.closed_pattern+
5336 )
5337 {
5338 D(fprintf(stderr, "%*c+ or_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
5339 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5340 if (_token == NULL) {
5341 D(p->level--);
5342 return NULL;
5343 }
5344 int _end_lineno = _token->end_lineno;
5345 UNUSED(_end_lineno); // Only used by EXTRA macro
5346 int _end_col_offset = _token->end_col_offset;
5347 UNUSED(_end_col_offset); // Only used by EXTRA macro
5348 _res = asdl_seq_LEN ( patterns ) == 1 ? asdl_seq_GET ( patterns , 0 ) : _Py_MatchOr ( patterns , EXTRA );
5349 if (_res == NULL && PyErr_Occurred()) {
5350 p->error_indicator = 1;
5351 D(p->level--);
5352 return NULL;
5353 }
5354 goto done;
5355 }
5356 p->mark = _mark;
5357 D(fprintf(stderr, "%*c%s or_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5358 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|'.closed_pattern+"));
5359 }
5360 _res = NULL;
5361 done:
5362 D(p->level--);
5363 return _res;
5364}
5365
5366// closed_pattern:
5367// | literal_pattern
5368// | capture_pattern
5369// | wildcard_pattern
5370// | value_pattern
5371// | group_pattern
5372// | sequence_pattern
5373// | mapping_pattern
5374// | class_pattern
5375static expr_ty
5376closed_pattern_rule(Parser *p)
5377{
5378 D(p->level++);
5379 if (p->error_indicator) {
5380 D(p->level--);
5381 return NULL;
5382 }
5383 expr_ty _res = NULL;
5384 int _mark = p->mark;
5385 { // literal_pattern
5386 if (p->error_indicator) {
5387 D(p->level--);
5388 return NULL;
5389 }
5390 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
5391 expr_ty literal_pattern_var;
5392 if (
5393 (literal_pattern_var = literal_pattern_rule(p)) // literal_pattern
5394 )
5395 {
5396 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
5397 _res = literal_pattern_var;
5398 goto done;
5399 }
5400 p->mark = _mark;
5401 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5402 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern"));
5403 }
5404 { // capture_pattern
5405 if (p->error_indicator) {
5406 D(p->level--);
5407 return NULL;
5408 }
5409 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
5410 expr_ty capture_pattern_var;
5411 if (
5412 (capture_pattern_var = capture_pattern_rule(p)) // capture_pattern
5413 )
5414 {
5415 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
5416 _res = capture_pattern_var;
5417 goto done;
5418 }
5419 p->mark = _mark;
5420 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5421 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern"));
5422 }
5423 { // wildcard_pattern
5424 if (p->error_indicator) {
5425 D(p->level--);
5426 return NULL;
5427 }
5428 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
5429 expr_ty wildcard_pattern_var;
5430 if (
5431 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
5432 )
5433 {
5434 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
5435 _res = wildcard_pattern_var;
5436 goto done;
5437 }
5438 p->mark = _mark;
5439 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5440 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern"));
5441 }
5442 { // value_pattern
5443 if (p->error_indicator) {
5444 D(p->level--);
5445 return NULL;
5446 }
5447 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
5448 expr_ty value_pattern_var;
5449 if (
5450 (value_pattern_var = value_pattern_rule(p)) // value_pattern
5451 )
5452 {
5453 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
5454 _res = value_pattern_var;
5455 goto done;
5456 }
5457 p->mark = _mark;
5458 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5459 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern"));
5460 }
5461 { // group_pattern
5462 if (p->error_indicator) {
5463 D(p->level--);
5464 return NULL;
5465 }
5466 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group_pattern"));
5467 expr_ty group_pattern_var;
5468 if (
5469 (group_pattern_var = group_pattern_rule(p)) // group_pattern
5470 )
5471 {
5472 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group_pattern"));
5473 _res = group_pattern_var;
5474 goto done;
5475 }
5476 p->mark = _mark;
5477 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group_pattern"));
5479 }
5480 { // sequence_pattern
5481 if (p->error_indicator) {
5482 D(p->level--);
5483 return NULL;
5484 }
5485 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
5486 expr_ty sequence_pattern_var;
5487 if (
5488 (sequence_pattern_var = sequence_pattern_rule(p)) // sequence_pattern
5489 )
5490 {
5491 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
5492 _res = sequence_pattern_var;
5493 goto done;
5494 }
5495 p->mark = _mark;
5496 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5497 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sequence_pattern"));
5498 }
5499 { // mapping_pattern
5500 if (p->error_indicator) {
5501 D(p->level--);
5502 return NULL;
5503 }
5504 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
5505 expr_ty mapping_pattern_var;
5506 if (
5507 (mapping_pattern_var = mapping_pattern_rule(p)) // mapping_pattern
5508 )
5509 {
5510 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
5511 _res = mapping_pattern_var;
5512 goto done;
5513 }
5514 p->mark = _mark;
5515 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5516 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "mapping_pattern"));
5517 }
5518 { // class_pattern
5519 if (p->error_indicator) {
5520 D(p->level--);
5521 return NULL;
5522 }
5523 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_pattern"));
5524 expr_ty class_pattern_var;
5525 if (
5526 (class_pattern_var = class_pattern_rule(p)) // class_pattern
5527 )
5528 {
5529 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_pattern"));
5530 _res = class_pattern_var;
5531 goto done;
5532 }
5533 p->mark = _mark;
5534 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5535 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_pattern"));
5536 }
5537 _res = NULL;
5538 done:
5539 D(p->level--);
5540 return _res;
5541}
5542
5543// literal_pattern:
5544// | signed_number !('+' | '-')
5545// | signed_number '+' NUMBER
5546// | signed_number '-' NUMBER
5547// | strings
5548// | 'None'
5549// | 'True'
5550// | 'False'
5551static expr_ty
5552literal_pattern_rule(Parser *p)
5553{
5554 D(p->level++);
5555 if (p->error_indicator) {
5556 D(p->level--);
5557 return NULL;
5558 }
5559 expr_ty _res = NULL;
5560 int _mark = p->mark;
5561 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5562 p->error_indicator = 1;
5563 D(p->level--);
5564 return NULL;
5565 }
5566 int _start_lineno = p->tokens[_mark]->lineno;
5567 UNUSED(_start_lineno); // Only used by EXTRA macro
5568 int _start_col_offset = p->tokens[_mark]->col_offset;
5569 UNUSED(_start_col_offset); // Only used by EXTRA macro
5570 { // signed_number !('+' | '-')
5571 if (p->error_indicator) {
5572 D(p->level--);
5573 return NULL;
5574 }
5575 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
5576 expr_ty signed_number_var;
5577 if (
5578 (signed_number_var = signed_number_rule(p)) // signed_number
5579 &&
5580 _PyPegen_lookahead(0, _tmp_53_rule, p)
5581 )
5582 {
5583 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
5584 _res = signed_number_var;
5585 goto done;
5586 }
5587 p->mark = _mark;
5588 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5589 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
5590 }
5591 { // signed_number '+' NUMBER
5592 if (p->error_indicator) {
5593 D(p->level--);
5594 return NULL;
5595 }
5596 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number '+' NUMBER"));
5597 Token * _literal;
5598 expr_ty imag;
5599 expr_ty real;
5600 if (
5601 (real = signed_number_rule(p)) // signed_number
5602 &&
5603 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
5604 &&
5605 (imag = _PyPegen_number_token(p)) // NUMBER
5606 )
5607 {
5608 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number '+' NUMBER"));
5609 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5610 if (_token == NULL) {
5611 D(p->level--);
5612 return NULL;
5613 }
5614 int _end_lineno = _token->end_lineno;
5615 UNUSED(_end_lineno); // Only used by EXTRA macro
5616 int _end_col_offset = _token->end_col_offset;
5617 UNUSED(_end_col_offset); // Only used by EXTRA macro
5618 _res = _Py_BinOp ( real , Add , imag , EXTRA );
5619 if (_res == NULL && PyErr_Occurred()) {
5620 p->error_indicator = 1;
5621 D(p->level--);
5622 return NULL;
5623 }
5624 goto done;
5625 }
5626 p->mark = _mark;
5627 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5628 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number '+' NUMBER"));
5629 }
5630 { // signed_number '-' NUMBER
5631 if (p->error_indicator) {
5632 D(p->level--);
5633 return NULL;
5634 }
5635 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number '-' NUMBER"));
5636 Token * _literal;
5637 expr_ty imag;
5638 expr_ty real;
5639 if (
5640 (real = signed_number_rule(p)) // signed_number
5641 &&
5642 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
5643 &&
5644 (imag = _PyPegen_number_token(p)) // NUMBER
5645 )
5646 {
5647 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number '-' NUMBER"));
5648 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5649 if (_token == NULL) {
5650 D(p->level--);
5651 return NULL;
5652 }
5653 int _end_lineno = _token->end_lineno;
5654 UNUSED(_end_lineno); // Only used by EXTRA macro
5655 int _end_col_offset = _token->end_col_offset;
5656 UNUSED(_end_col_offset); // Only used by EXTRA macro
5657 _res = _Py_BinOp ( real , Sub , imag , EXTRA );
5658 if (_res == NULL && PyErr_Occurred()) {
5659 p->error_indicator = 1;
5660 D(p->level--);
5661 return NULL;
5662 }
5663 goto done;
5664 }
5665 p->mark = _mark;
5666 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number '-' NUMBER"));
5668 }
5669 { // strings
5670 if (p->error_indicator) {
5671 D(p->level--);
5672 return NULL;
5673 }
5674 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
5675 expr_ty strings_var;
5676 if (
5677 (strings_var = strings_rule(p)) // strings
5678 )
5679 {
5680 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
5681 _res = strings_var;
5682 goto done;
5683 }
5684 p->mark = _mark;
5685 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5686 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
5687 }
5688 { // 'None'
5689 if (p->error_indicator) {
5690 D(p->level--);
5691 return NULL;
5692 }
5693 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
5694 Token * _keyword;
5695 if (
5696 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
5697 )
5698 {
5699 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
5700 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5701 if (_token == NULL) {
5702 D(p->level--);
5703 return NULL;
5704 }
5705 int _end_lineno = _token->end_lineno;
5706 UNUSED(_end_lineno); // Only used by EXTRA macro
5707 int _end_col_offset = _token->end_col_offset;
5708 UNUSED(_end_col_offset); // Only used by EXTRA macro
5709 _res = _Py_Constant ( Py_None , NULL , EXTRA );
5710 if (_res == NULL && PyErr_Occurred()) {
5711 p->error_indicator = 1;
5712 D(p->level--);
5713 return NULL;
5714 }
5715 goto done;
5716 }
5717 p->mark = _mark;
5718 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5719 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
5720 }
5721 { // 'True'
5722 if (p->error_indicator) {
5723 D(p->level--);
5724 return NULL;
5725 }
5726 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
5727 Token * _keyword;
5728 if (
5729 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
5730 )
5731 {
5732 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
5733 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5734 if (_token == NULL) {
5735 D(p->level--);
5736 return NULL;
5737 }
5738 int _end_lineno = _token->end_lineno;
5739 UNUSED(_end_lineno); // Only used by EXTRA macro
5740 int _end_col_offset = _token->end_col_offset;
5741 UNUSED(_end_col_offset); // Only used by EXTRA macro
5742 _res = _Py_Constant ( Py_True , NULL , EXTRA );
5743 if (_res == NULL && PyErr_Occurred()) {
5744 p->error_indicator = 1;
5745 D(p->level--);
5746 return NULL;
5747 }
5748 goto done;
5749 }
5750 p->mark = _mark;
5751 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5752 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
5753 }
5754 { // 'False'
5755 if (p->error_indicator) {
5756 D(p->level--);
5757 return NULL;
5758 }
5759 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
5760 Token * _keyword;
5761 if (
5762 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
5763 )
5764 {
5765 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
5766 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5767 if (_token == NULL) {
5768 D(p->level--);
5769 return NULL;
5770 }
5771 int _end_lineno = _token->end_lineno;
5772 UNUSED(_end_lineno); // Only used by EXTRA macro
5773 int _end_col_offset = _token->end_col_offset;
5774 UNUSED(_end_col_offset); // Only used by EXTRA macro
5775 _res = _Py_Constant ( Py_False , NULL , EXTRA );
5776 if (_res == NULL && PyErr_Occurred()) {
5777 p->error_indicator = 1;
5778 D(p->level--);
5779 return NULL;
5780 }
5781 goto done;
5782 }
5783 p->mark = _mark;
5784 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5785 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
5786 }
5787 _res = NULL;
5788 done:
5789 D(p->level--);
5790 return _res;
5791}
5792
5793// signed_number: NUMBER | '-' NUMBER
5794static expr_ty
5795signed_number_rule(Parser *p)
5796{
5797 D(p->level++);
5798 if (p->error_indicator) {
5799 D(p->level--);
5800 return NULL;
5801 }
5802 expr_ty _res = NULL;
5803 int _mark = p->mark;
5804 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5805 p->error_indicator = 1;
5806 D(p->level--);
5807 return NULL;
5808 }
5809 int _start_lineno = p->tokens[_mark]->lineno;
5810 UNUSED(_start_lineno); // Only used by EXTRA macro
5811 int _start_col_offset = p->tokens[_mark]->col_offset;
5812 UNUSED(_start_col_offset); // Only used by EXTRA macro
5813 { // NUMBER
5814 if (p->error_indicator) {
5815 D(p->level--);
5816 return NULL;
5817 }
5818 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
5819 expr_ty number_var;
5820 if (
5821 (number_var = _PyPegen_number_token(p)) // NUMBER
5822 )
5823 {
5824 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
5825 _res = number_var;
5826 goto done;
5827 }
5828 p->mark = _mark;
5829 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
5830 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
5831 }
5832 { // '-' NUMBER
5833 if (p->error_indicator) {
5834 D(p->level--);
5835 return NULL;
5836 }
5837 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
5838 Token * _literal;
5839 expr_ty number;
5840 if (
5841 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
5842 &&
5843 (number = _PyPegen_number_token(p)) // NUMBER
5844 )
5845 {
5846 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
5847 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5848 if (_token == NULL) {
5849 D(p->level--);
5850 return NULL;
5851 }
5852 int _end_lineno = _token->end_lineno;
5853 UNUSED(_end_lineno); // Only used by EXTRA macro
5854 int _end_col_offset = _token->end_col_offset;
5855 UNUSED(_end_col_offset); // Only used by EXTRA macro
5856 _res = _Py_UnaryOp ( USub , number , EXTRA );
5857 if (_res == NULL && PyErr_Occurred()) {
5858 p->error_indicator = 1;
5859 D(p->level--);
5860 return NULL;
5861 }
5862 goto done;
5863 }
5864 p->mark = _mark;
5865 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
5866 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' NUMBER"));
5867 }
5868 _res = NULL;
5869 done:
5870 D(p->level--);
5871 return _res;
5872}
5873
5874// capture_pattern: !"_" NAME !('.' | '(' | '=')
5875static expr_ty
5876capture_pattern_rule(Parser *p)
5877{
5878 D(p->level++);
5879 if (p->error_indicator) {
5880 D(p->level--);
5881 return NULL;
5882 }
5883 expr_ty _res = NULL;
5884 int _mark = p->mark;
5885 { // !"_" NAME !('.' | '(' | '=')
5886 if (p->error_indicator) {
5887 D(p->level--);
5888 return NULL;
5889 }
5890 D(fprintf(stderr, "%*c> capture_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
5891 expr_ty name;
5892 if (
5893 _PyPegen_lookahead_with_string(0, _PyPegen_expect_soft_keyword, p, "_")
5894 &&
5895 (name = _PyPegen_name_token(p)) // NAME
5896 &&
5897 _PyPegen_lookahead(0, _tmp_54_rule, p)
5898 )
5899 {
5900 D(fprintf(stderr, "%*c+ capture_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
5901 _res = _PyPegen_set_expr_context ( p , name , Store );
5902 if (_res == NULL && PyErr_Occurred()) {
5903 p->error_indicator = 1;
5904 D(p->level--);
5905 return NULL;
5906 }
5907 goto done;
5908 }
5909 p->mark = _mark;
5910 D(fprintf(stderr, "%*c%s capture_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5911 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
5912 }
5913 _res = NULL;
5914 done:
5915 D(p->level--);
5916 return _res;
5917}
5918
5919// wildcard_pattern: "_"
5920static expr_ty
5921wildcard_pattern_rule(Parser *p)
5922{
5923 D(p->level++);
5924 if (p->error_indicator) {
5925 D(p->level--);
5926 return NULL;
5927 }
5928 expr_ty _res = NULL;
5929 int _mark = p->mark;
5930 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5931 p->error_indicator = 1;
5932 D(p->level--);
5933 return NULL;
5934 }
5935 int _start_lineno = p->tokens[_mark]->lineno;
5936 UNUSED(_start_lineno); // Only used by EXTRA macro
5937 int _start_col_offset = p->tokens[_mark]->col_offset;
5938 UNUSED(_start_col_offset); // Only used by EXTRA macro
5939 { // "_"
5940 if (p->error_indicator) {
5941 D(p->level--);
5942 return NULL;
5943 }
5944 D(fprintf(stderr, "%*c> wildcard_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"_\""));
5945 expr_ty _keyword;
5946 if (
5947 (_keyword = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"'
5948 )
5949 {
5950 D(fprintf(stderr, "%*c+ wildcard_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"_\""));
5951 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5952 if (_token == NULL) {
5953 D(p->level--);
5954 return NULL;
5955 }
5956 int _end_lineno = _token->end_lineno;
5957 UNUSED(_end_lineno); // Only used by EXTRA macro
5958 int _end_col_offset = _token->end_col_offset;
5959 UNUSED(_end_col_offset); // Only used by EXTRA macro
5960 _res = _Py_Name ( CHECK ( PyObject * , _PyPegen_new_identifier ( p , "_" ) ) , Store , EXTRA );
5961 if (_res == NULL && PyErr_Occurred()) {
5962 p->error_indicator = 1;
5963 D(p->level--);
5964 return NULL;
5965 }
5966 goto done;
5967 }
5968 p->mark = _mark;
5969 D(fprintf(stderr, "%*c%s wildcard_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5970 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"_\""));
5971 }
5972 _res = NULL;
5973 done:
5974 D(p->level--);
5975 return _res;
5976}
5977
5978// value_pattern: attr !('.' | '(' | '=')
5979static expr_ty
5980value_pattern_rule(Parser *p)
5981{
5982 D(p->level++);
5983 if (p->error_indicator) {
5984 D(p->level--);
5985 return NULL;
5986 }
5987 expr_ty _res = NULL;
5988 int _mark = p->mark;
5989 { // attr !('.' | '(' | '=')
5990 if (p->error_indicator) {
5991 D(p->level--);
5992 return NULL;
5993 }
5994 D(fprintf(stderr, "%*c> value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
5995 expr_ty attr;
5996 if (
5997 (attr = attr_rule(p)) // attr
5998 &&
5999 _PyPegen_lookahead(0, _tmp_55_rule, p)
6000 )
6001 {
6002 D(fprintf(stderr, "%*c+ value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
6003 _res = attr;
6004 if (_res == NULL && PyErr_Occurred()) {
6005 p->error_indicator = 1;
6006 D(p->level--);
6007 return NULL;
6008 }
6009 goto done;
6010 }
6011 p->mark = _mark;
6012 D(fprintf(stderr, "%*c%s value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6013 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr !('.' | '(' | '=')"));
6014 }
6015 _res = NULL;
6016 done:
6017 D(p->level--);
6018 return _res;
6019}
6020
6021// Left-recursive
6022// attr: name_or_attr '.' NAME
6023static expr_ty attr_raw(Parser *);
6024static expr_ty
6025attr_rule(Parser *p)
6026{
6027 D(p->level++);
6028 expr_ty _res = NULL;
6029 if (_PyPegen_is_memoized(p, attr_type, &_res)) {
6030 D(p->level--);
6031 return _res;
6032 }
6033 int _mark = p->mark;
6034 int _resmark = p->mark;
6035 while (1) {
6036 int tmpvar_1 = _PyPegen_update_memo(p, _mark, attr_type, _res);
6037 if (tmpvar_1) {
6038 D(p->level--);
6039 return _res;
6040 }
6041 p->mark = _mark;
6042 void *_raw = attr_raw(p);
6043 if (p->error_indicator)
6044 return NULL;
6045 if (_raw == NULL || p->mark <= _resmark)
6046 break;
6047 _resmark = p->mark;
6048 _res = _raw;
6049 }
6050 p->mark = _resmark;
6051 D(p->level--);
6052 return _res;
6053}
6054static expr_ty
6055attr_raw(Parser *p)
6056{
6057 D(p->level++);
6058 if (p->error_indicator) {
6059 D(p->level--);
6060 return NULL;
6061 }
6062 expr_ty _res = NULL;
6063 int _mark = p->mark;
6064 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6065 p->error_indicator = 1;
6066 D(p->level--);
6067 return NULL;
6068 }
6069 int _start_lineno = p->tokens[_mark]->lineno;
6070 UNUSED(_start_lineno); // Only used by EXTRA macro
6071 int _start_col_offset = p->tokens[_mark]->col_offset;
6072 UNUSED(_start_col_offset); // Only used by EXTRA macro
6073 { // name_or_attr '.' NAME
6074 if (p->error_indicator) {
6075 D(p->level--);
6076 return NULL;
6077 }
6078 D(fprintf(stderr, "%*c> attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6079 Token * _literal;
6080 expr_ty attr;
6081 expr_ty value;
6082 if (
6083 (value = name_or_attr_rule(p)) // name_or_attr
6084 &&
6085 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
6086 &&
6087 (attr = _PyPegen_name_token(p)) // NAME
6088 )
6089 {
6090 D(fprintf(stderr, "%*c+ attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6091 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6092 if (_token == NULL) {
6093 D(p->level--);
6094 return NULL;
6095 }
6096 int _end_lineno = _token->end_lineno;
6097 UNUSED(_end_lineno); // Only used by EXTRA macro
6098 int _end_col_offset = _token->end_col_offset;
6099 UNUSED(_end_col_offset); // Only used by EXTRA macro
6100 _res = _Py_Attribute ( value , attr -> v . Name . id , Load , EXTRA );
6101 if (_res == NULL && PyErr_Occurred()) {
6102 p->error_indicator = 1;
6103 D(p->level--);
6104 return NULL;
6105 }
6106 goto done;
6107 }
6108 p->mark = _mark;
6109 D(fprintf(stderr, "%*c%s attr[%d-%d]: %s failed!\n", p->level, ' ',
6110 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '.' NAME"));
6111 }
6112 _res = NULL;
6113 done:
6114 D(p->level--);
6115 return _res;
6116}
6117
6118// Left-recursive
6119// name_or_attr: attr | NAME
6120static expr_ty
6121name_or_attr_rule(Parser *p)
6122{
6123 D(p->level++);
6124 if (p->error_indicator) {
6125 D(p->level--);
6126 return NULL;
6127 }
6128 expr_ty _res = NULL;
6129 int _mark = p->mark;
6130 { // attr
6131 if (p->error_indicator) {
6132 D(p->level--);
6133 return NULL;
6134 }
6135 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
6136 expr_ty attr_var;
6137 if (
6138 (attr_var = attr_rule(p)) // attr
6139 )
6140 {
6141 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
6142 _res = attr_var;
6143 goto done;
6144 }
6145 p->mark = _mark;
6146 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
6147 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
6148 }
6149 { // NAME
6150 if (p->error_indicator) {
6151 D(p->level--);
6152 return NULL;
6153 }
6154 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
6155 expr_ty name_var;
6156 if (
6157 (name_var = _PyPegen_name_token(p)) // NAME
6158 )
6159 {
6160 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
6161 _res = name_var;
6162 goto done;
6163 }
6164 p->mark = _mark;
6165 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
6166 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
6167 }
6168 _res = NULL;
6169 done:
6170 D(p->level--);
6171 return _res;
6172}
6173
6174// group_pattern: '(' pattern ')'
6175static expr_ty
6176group_pattern_rule(Parser *p)
6177{
6178 D(p->level++);
6179 if (p->error_indicator) {
6180 D(p->level--);
6181 return NULL;
6182 }
6183 expr_ty _res = NULL;
6184 int _mark = p->mark;
6185 { // '(' pattern ')'
6186 if (p->error_indicator) {
6187 D(p->level--);
6188 return NULL;
6189 }
6190 D(fprintf(stderr, "%*c> group_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
6191 Token * _literal;
6192 Token * _literal_1;
6193 expr_ty pattern;
6194 if (
6195 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6196 &&
6197 (pattern = pattern_rule(p)) // pattern
6198 &&
6199 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6200 )
6201 {
6202 D(fprintf(stderr, "%*c+ group_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
6203 _res = pattern;
6204 if (_res == NULL && PyErr_Occurred()) {
6205 p->error_indicator = 1;
6206 D(p->level--);
6207 return NULL;
6208 }
6209 goto done;
6210 }
6211 p->mark = _mark;
6212 D(fprintf(stderr, "%*c%s group_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6213 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' pattern ')'"));
6214 }
6215 _res = NULL;
6216 done:
6217 D(p->level--);
6218 return _res;
6219}
6220
6221// sequence_pattern: '[' maybe_sequence_pattern? ']' | '(' open_sequence_pattern? ')'
6222static expr_ty
6223sequence_pattern_rule(Parser *p)
6224{
6225 D(p->level++);
6226 if (p->error_indicator) {
6227 D(p->level--);
6228 return NULL;
6229 }
6230 expr_ty _res = NULL;
6231 int _mark = p->mark;
6232 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6233 p->error_indicator = 1;
6234 D(p->level--);
6235 return NULL;
6236 }
6237 int _start_lineno = p->tokens[_mark]->lineno;
6238 UNUSED(_start_lineno); // Only used by EXTRA macro
6239 int _start_col_offset = p->tokens[_mark]->col_offset;
6240 UNUSED(_start_col_offset); // Only used by EXTRA macro
6241 { // '[' maybe_sequence_pattern? ']'
6242 if (p->error_indicator) {
6243 D(p->level--);
6244 return NULL;
6245 }
6246 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
6247 Token * _literal;
6248 Token * _literal_1;
6249 void *values;
6250 if (
6251 (_literal = _PyPegen_expect_token(p, 9)) // token='['
6252 &&
6253 (values = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
6254 &&
6255 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
6256 )
6257 {
6258 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
6259 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6260 if (_token == NULL) {
6261 D(p->level--);
6262 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
6268 _res = _Py_List ( values , Load , EXTRA );
6269 if (_res == NULL && PyErr_Occurred()) {
6270 p->error_indicator = 1;
6271 D(p->level--);
6272 return NULL;
6273 }
6274 goto done;
6275 }
6276 p->mark = _mark;
6277 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6278 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
6279 }
6280 { // '(' open_sequence_pattern? ')'
6281 if (p->error_indicator) {
6282 D(p->level--);
6283 return NULL;
6284 }
6285 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
6286 Token * _literal;
6287 Token * _literal_1;
6288 void *values;
6289 if (
6290 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6291 &&
6292 (values = open_sequence_pattern_rule(p), 1) // open_sequence_pattern?
6293 &&
6294 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6295 )
6296 {
6297 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
6298 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6299 if (_token == NULL) {
6300 D(p->level--);
6301 return NULL;
6302 }
6303 int _end_lineno = _token->end_lineno;
6304 UNUSED(_end_lineno); // Only used by EXTRA macro
6305 int _end_col_offset = _token->end_col_offset;
6306 UNUSED(_end_col_offset); // Only used by EXTRA macro
6307 _res = _Py_Tuple ( values , Load , EXTRA );
6308 if (_res == NULL && PyErr_Occurred()) {
6309 p->error_indicator = 1;
6310 D(p->level--);
6311 return NULL;
6312 }
6313 goto done;
6314 }
6315 p->mark = _mark;
6316 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6317 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' open_sequence_pattern? ')'"));
6318 }
6319 _res = NULL;
6320 done:
6321 D(p->level--);
6322 return _res;
6323}
6324
6325// open_sequence_pattern: maybe_star_pattern ',' maybe_sequence_pattern?
6326static asdl_seq*
6327open_sequence_pattern_rule(Parser *p)
6328{
6329 D(p->level++);
6330 if (p->error_indicator) {
6331 D(p->level--);
6332 return NULL;
6333 }
6334 asdl_seq* _res = NULL;
6335 int _mark = p->mark;
6336 { // maybe_star_pattern ',' maybe_sequence_pattern?
6337 if (p->error_indicator) {
6338 D(p->level--);
6339 return NULL;
6340 }
6341 D(fprintf(stderr, "%*c> open_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
6342 Token * _literal;
6343 expr_ty value;
6344 void *values;
6345 if (
6346 (value = maybe_star_pattern_rule(p)) // maybe_star_pattern
6347 &&
6348 (_literal = _PyPegen_expect_token(p, 12)) // token=','
6349 &&
6350 (values = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
6351 )
6352 {
6353 D(fprintf(stderr, "%*c+ open_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
6354 _res = _PyPegen_seq_insert_in_front ( p , value , values );
6355 if (_res == NULL && PyErr_Occurred()) {
6356 p->error_indicator = 1;
6357 D(p->level--);
6358 return NULL;
6359 }
6360 goto done;
6361 }
6362 p->mark = _mark;
6363 D(fprintf(stderr, "%*c%s open_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6364 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
6365 }
6366 _res = NULL;
6367 done:
6368 D(p->level--);
6369 return _res;
6370}
6371
6372// maybe_sequence_pattern: ','.maybe_star_pattern+ ','?
6373static asdl_seq*
6374maybe_sequence_pattern_rule(Parser *p)
6375{
6376 D(p->level++);
6377 if (p->error_indicator) {
6378 D(p->level--);
6379 return NULL;
6380 }
6381 asdl_seq* _res = NULL;
6382 int _mark = p->mark;
6383 { // ','.maybe_star_pattern+ ','?
6384 if (p->error_indicator) {
6385 D(p->level--);
6386 return NULL;
6387 }
6388 D(fprintf(stderr, "%*c> maybe_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
6389 void *_opt_var;
6390 UNUSED(_opt_var); // Silence compiler warnings
6391 asdl_seq * values;
6392 if (
6393 (values = _gather_56_rule(p)) // ','.maybe_star_pattern+
6394 &&
6395 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6396 )
6397 {
6398 D(fprintf(stderr, "%*c+ maybe_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
6399 _res = values;
6400 if (_res == NULL && PyErr_Occurred()) {
6401 p->error_indicator = 1;
6402 D(p->level--);
6403 return NULL;
6404 }
6405 goto done;
6406 }
6407 p->mark = _mark;
6408 D(fprintf(stderr, "%*c%s maybe_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6409 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.maybe_star_pattern+ ','?"));
6410 }
6411 _res = NULL;
6412 done:
6413 D(p->level--);
6414 return _res;
6415}
6416
6417// maybe_star_pattern: star_pattern | pattern
6418static expr_ty
6419maybe_star_pattern_rule(Parser *p)
6420{
6421 D(p->level++);
6422 if (p->error_indicator) {
6423 D(p->level--);
6424 return NULL;
6425 }
6426 expr_ty _res = NULL;
6427 int _mark = p->mark;
6428 { // star_pattern
6429 if (p->error_indicator) {
6430 D(p->level--);
6431 return NULL;
6432 }
6433 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_pattern"));
6434 expr_ty star_pattern_var;
6435 if (
6436 (star_pattern_var = star_pattern_rule(p)) // star_pattern
6437 )
6438 {
6439 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_pattern"));
6440 _res = star_pattern_var;
6441 goto done;
6442 }
6443 p->mark = _mark;
6444 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6445 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_pattern"));
6446 }
6447 { // pattern
6448 if (p->error_indicator) {
6449 D(p->level--);
6450 return NULL;
6451 }
6452 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
6453 expr_ty pattern_var;
6454 if (
6455 (pattern_var = pattern_rule(p)) // pattern
6456 )
6457 {
6458 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
6459 _res = pattern_var;
6460 goto done;
6461 }
6462 p->mark = _mark;
6463 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6464 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
6465 }
6466 _res = NULL;
6467 done:
6468 D(p->level--);
6469 return _res;
6470}
6471
6472// star_pattern: '*' (capture_pattern | wildcard_pattern)
6473static expr_ty
6474star_pattern_rule(Parser *p)
6475{
6476 D(p->level++);
6477 if (p->error_indicator) {
6478 D(p->level--);
6479 return NULL;
6480 }
6481 expr_ty _res = NULL;
6482 int _mark = p->mark;
6483 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6484 p->error_indicator = 1;
6485 D(p->level--);
6486 return NULL;
6487 }
6488 int _start_lineno = p->tokens[_mark]->lineno;
6489 UNUSED(_start_lineno); // Only used by EXTRA macro
6490 int _start_col_offset = p->tokens[_mark]->col_offset;
6491 UNUSED(_start_col_offset); // Only used by EXTRA macro
6492 { // '*' (capture_pattern | wildcard_pattern)
6493 if (p->error_indicator) {
6494 D(p->level--);
6495 return NULL;
6496 }
6497 D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (capture_pattern | wildcard_pattern)"));
6498 Token * _literal;
6499 void *value;
6500 if (
6501 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
6502 &&
6503 (value = _tmp_58_rule(p)) // capture_pattern | wildcard_pattern
6504 )
6505 {
6506 D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (capture_pattern | wildcard_pattern)"));
6507 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6508 if (_token == NULL) {
6509 D(p->level--);
6510 return NULL;
6511 }
6512 int _end_lineno = _token->end_lineno;
6513 UNUSED(_end_lineno); // Only used by EXTRA macro
6514 int _end_col_offset = _token->end_col_offset;
6515 UNUSED(_end_col_offset); // Only used by EXTRA macro
6516 _res = _Py_Starred ( value , Store , EXTRA );
6517 if (_res == NULL && PyErr_Occurred()) {
6518 p->error_indicator = 1;
6519 D(p->level--);
6520 return NULL;
6521 }
6522 goto done;
6523 }
6524 p->mark = _mark;
6525 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6526 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (capture_pattern | wildcard_pattern)"));
6527 }
6528 _res = NULL;
6529 done:
6530 D(p->level--);
6531 return _res;
6532}
6533
6534// mapping_pattern: '{' items_pattern? '}'
6535static expr_ty
6536mapping_pattern_rule(Parser *p)
6537{
6538 D(p->level++);
6539 if (p->error_indicator) {
6540 D(p->level--);
6541 return NULL;
6542 }
6543 expr_ty _res = NULL;
6544 int _mark = p->mark;
6545 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6546 p->error_indicator = 1;
6547 D(p->level--);
6548 return NULL;
6549 }
6550 int _start_lineno = p->tokens[_mark]->lineno;
6551 UNUSED(_start_lineno); // Only used by EXTRA macro
6552 int _start_col_offset = p->tokens[_mark]->col_offset;
6553 UNUSED(_start_col_offset); // Only used by EXTRA macro
6554 { // '{' items_pattern? '}'
6555 if (p->error_indicator) {
6556 D(p->level--);
6557 return NULL;
6558 }
6559 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern? '}'"));
6560 Token * _literal;
6561 Token * _literal_1;
6562 void *items;
6563 if (
6564 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
6565 &&
6566 (items = items_pattern_rule(p), 1) // items_pattern?
6567 &&
6568 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
6569 )
6570 {
6571 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern? '}'"));
6572 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6573 if (_token == NULL) {
6574 D(p->level--);
6575 return NULL;
6576 }
6577 int _end_lineno = _token->end_lineno;
6578 UNUSED(_end_lineno); // Only used by EXTRA macro
6579 int _end_col_offset = _token->end_col_offset;
6580 UNUSED(_end_col_offset); // Only used by EXTRA macro
6581 _res = _Py_Dict ( CHECK ( asdl_expr_seq * , _PyPegen_get_keys ( p , items ) ) , CHECK ( asdl_expr_seq * , _PyPegen_get_values ( p , items ) ) , EXTRA );
6582 if (_res == NULL && PyErr_Occurred()) {
6583 p->error_indicator = 1;
6584 D(p->level--);
6585 return NULL;
6586 }
6587 goto done;
6588 }
6589 p->mark = _mark;
6590 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6591 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern? '}'"));
6592 }
6593 _res = NULL;
6594 done:
6595 D(p->level--);
6596 return _res;
6597}
6598
6599// items_pattern: ','.key_value_pattern+ ','?
6600static asdl_seq*
6601items_pattern_rule(Parser *p)
6602{
6603 D(p->level++);
6604 if (p->error_indicator) {
6605 D(p->level--);
6606 return NULL;
6607 }
6608 asdl_seq* _res = NULL;
6609 int _mark = p->mark;
6610 { // ','.key_value_pattern+ ','?
6611 if (p->error_indicator) {
6612 D(p->level--);
6613 return NULL;
6614 }
6615 D(fprintf(stderr, "%*c> items_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+ ','?"));
6616 void *_opt_var;
6617 UNUSED(_opt_var); // Silence compiler warnings
6618 asdl_seq * items;
6619 if (
6620 (items = _gather_59_rule(p)) // ','.key_value_pattern+
6621 &&
6622 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6623 )
6624 {
6625 D(fprintf(stderr, "%*c+ items_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+ ','?"));
6626 _res = items;
6627 if (_res == NULL && PyErr_Occurred()) {
6628 p->error_indicator = 1;
6629 D(p->level--);
6630 return NULL;
6631 }
6632 goto done;
6633 }
6634 p->mark = _mark;
6635 D(fprintf(stderr, "%*c%s items_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6636 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.key_value_pattern+ ','?"));
6637 }
6638 _res = NULL;
6639 done:
6640 D(p->level--);
6641 return _res;
6642}
6643
6644// key_value_pattern: (literal_pattern | value_pattern) ':' pattern | double_star_pattern
6645static KeyValuePair*
6646key_value_pattern_rule(Parser *p)
6647{
6648 D(p->level++);
6649 if (p->error_indicator) {
6650 D(p->level--);
6651 return NULL;
6652 }
6653 KeyValuePair* _res = NULL;
6654 int _mark = p->mark;
6655 { // (literal_pattern | value_pattern) ':' pattern
6656 if (p->error_indicator) {
6657 D(p->level--);
6658 return NULL;
6659 }
6660 D(fprintf(stderr, "%*c> key_value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(literal_pattern | value_pattern) ':' pattern"));
6661 Token * _literal;
6662 void *key;
6663 expr_ty value;
6664 if (
6665 (key = _tmp_61_rule(p)) // literal_pattern | value_pattern
6666 &&
6667 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
6668 &&
6669 (value = pattern_rule(p)) // pattern
6670 )
6671 {
6672 D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(literal_pattern | value_pattern) ':' pattern"));
6673 _res = _PyPegen_key_value_pair ( p , key , value );
6674 if (_res == NULL && PyErr_Occurred()) {
6675 p->error_indicator = 1;
6676 D(p->level--);
6677 return NULL;
6678 }
6679 goto done;
6680 }
6681 p->mark = _mark;
6682 D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6683 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(literal_pattern | value_pattern) ':' pattern"));
6684 }
6685 { // double_star_pattern
6686 if (p->error_indicator) {
6687 D(p->level--);
6688 return NULL;
6689 }
6690 D(fprintf(stderr, "%*c> key_value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_star_pattern"));
6691 KeyValuePair* double_star_pattern_var;
6692 if (
6693 (double_star_pattern_var = double_star_pattern_rule(p)) // double_star_pattern
6694 )
6695 {
6696 D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_star_pattern"));
6697 _res = double_star_pattern_var;
6698 goto done;
6699 }
6700 p->mark = _mark;
6701 D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6702 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_star_pattern"));
6703 }
6704 _res = NULL;
6705 done:
6706 D(p->level--);
6707 return _res;
6708}
6709
6710// double_star_pattern: '**' capture_pattern
6711static KeyValuePair*
6712double_star_pattern_rule(Parser *p)
6713{
6714 D(p->level++);
6715 if (p->error_indicator) {
6716 D(p->level--);
6717 return NULL;
6718 }
6719 KeyValuePair* _res = NULL;
6720 int _mark = p->mark;
6721 { // '**' capture_pattern
6722 if (p->error_indicator) {
6723 D(p->level--);
6724 return NULL;
6725 }
6726 D(fprintf(stderr, "%*c> double_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' capture_pattern"));
6727 Token * _literal;
6728 expr_ty value;
6729 if (
6730 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
6731 &&
6732 (value = capture_pattern_rule(p)) // capture_pattern
6733 )
6734 {
6735 D(fprintf(stderr, "%*c+ double_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' capture_pattern"));
6736 _res = _PyPegen_key_value_pair ( p , NULL , value );
6737 if (_res == NULL && PyErr_Occurred()) {
6738 p->error_indicator = 1;
6739 D(p->level--);
6740 return NULL;
6741 }
6742 goto done;
6743 }
6744 p->mark = _mark;
6745 D(fprintf(stderr, "%*c%s double_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6746 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' capture_pattern"));
6747 }
6748 _res = NULL;
6749 done:
6750 D(p->level--);
6751 return _res;
6752}
6753
6754// class_pattern:
6755// | name_or_attr '(' ')'
6756// | name_or_attr '(' positional_patterns ','? ')'
6757// | name_or_attr '(' keyword_patterns ','? ')'
6758// | name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
6759static expr_ty
6760class_pattern_rule(Parser *p)
6761{
6762 D(p->level++);
6763 if (p->error_indicator) {
6764 D(p->level--);
6765 return NULL;
6766 }
6767 expr_ty _res = NULL;
6768 int _mark = p->mark;
6769 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6770 p->error_indicator = 1;
6771 D(p->level--);
6772 return NULL;
6773 }
6774 int _start_lineno = p->tokens[_mark]->lineno;
6775 UNUSED(_start_lineno); // Only used by EXTRA macro
6776 int _start_col_offset = p->tokens[_mark]->col_offset;
6777 UNUSED(_start_col_offset); // Only used by EXTRA macro
6778 { // name_or_attr '(' ')'
6779 if (p->error_indicator) {
6780 D(p->level--);
6781 return NULL;
6782 }
6783 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
6784 Token * _literal;
6785 Token * _literal_1;
6786 expr_ty func;
6787 if (
6788 (func = name_or_attr_rule(p)) // name_or_attr
6789 &&
6790 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6791 &&
6792 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6793 )
6794 {
6795 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
6796 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6797 if (_token == NULL) {
6798 D(p->level--);
6799 return NULL;
6800 }
6801 int _end_lineno = _token->end_lineno;
6802 UNUSED(_end_lineno); // Only used by EXTRA macro
6803 int _end_col_offset = _token->end_col_offset;
6804 UNUSED(_end_col_offset); // Only used by EXTRA macro
6805 _res = _Py_Call ( func , NULL , NULL , EXTRA );
6806 if (_res == NULL && PyErr_Occurred()) {
6807 p->error_indicator = 1;
6808 D(p->level--);
6809 return NULL;
6810 }
6811 goto done;
6812 }
6813 p->mark = _mark;
6814 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6815 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' ')'"));
6816 }
6817 { // name_or_attr '(' positional_patterns ','? ')'
6818 if (p->error_indicator) {
6819 D(p->level--);
6820 return NULL;
6821 }
6822 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
6823 Token * _literal;
6824 Token * _literal_1;
6825 void *_opt_var;
6826 UNUSED(_opt_var); // Silence compiler warnings
6827 asdl_expr_seq* args;
6828 expr_ty func;
6829 if (
6830 (func = name_or_attr_rule(p)) // name_or_attr
6831 &&
6832 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6833 &&
6834 (args = positional_patterns_rule(p)) // positional_patterns
6835 &&
6836 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6837 &&
6838 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6839 )
6840 {
6841 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
6842 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6843 if (_token == NULL) {
6844 D(p->level--);
6845 return NULL;
6846 }
6847 int _end_lineno = _token->end_lineno;
6848 UNUSED(_end_lineno); // Only used by EXTRA macro
6849 int _end_col_offset = _token->end_col_offset;
6850 UNUSED(_end_col_offset); // Only used by EXTRA macro
6851 _res = _Py_Call ( func , args , NULL , EXTRA );
6852 if (_res == NULL && PyErr_Occurred()) {
6853 p->error_indicator = 1;
6854 D(p->level--);
6855 return NULL;
6856 }
6857 goto done;
6858 }
6859 p->mark = _mark;
6860 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6861 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
6862 }
6863 { // name_or_attr '(' keyword_patterns ','? ')'
6864 if (p->error_indicator) {
6865 D(p->level--);
6866 return NULL;
6867 }
6868 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
6869 Token * _literal;
6870 Token * _literal_1;
6871 void *_opt_var;
6872 UNUSED(_opt_var); // Silence compiler warnings
6873 expr_ty func;
6874 asdl_keyword_seq* keywords;
6875 if (
6876 (func = name_or_attr_rule(p)) // name_or_attr
6877 &&
6878 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6879 &&
6880 (keywords = keyword_patterns_rule(p)) // keyword_patterns
6881 &&
6882 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6883 &&
6884 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
6885 )
6886 {
6887 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
6888 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6889 if (_token == NULL) {
6890 D(p->level--);
6891 return NULL;
6892 }
6893 int _end_lineno = _token->end_lineno;
6894 UNUSED(_end_lineno); // Only used by EXTRA macro
6895 int _end_col_offset = _token->end_col_offset;
6896 UNUSED(_end_col_offset); // Only used by EXTRA macro
6897 _res = _Py_Call ( func , NULL , keywords , EXTRA );
6898 if (_res == NULL && PyErr_Occurred()) {
6899 p->error_indicator = 1;
6900 D(p->level--);
6901 return NULL;
6902 }
6903 goto done;
6904 }
6905 p->mark = _mark;
6906 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
6908 }
6909 { // name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
6910 if (p->error_indicator) {
6911 D(p->level--);
6912 return NULL;
6913 }
6914 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
6915 Token * _literal;
6916 Token * _literal_1;
6917 Token * _literal_2;
6918 void *_opt_var;
6919 UNUSED(_opt_var); // Silence compiler warnings
6920 asdl_expr_seq* args;
6921 expr_ty func;
6922 asdl_keyword_seq* keywords;
6923 if (
6924 (func = name_or_attr_rule(p)) // name_or_attr
6925 &&
6926 (_literal = _PyPegen_expect_token(p, 7)) // token='('
6927 &&
6928 (args = positional_patterns_rule(p)) // positional_patterns
6929 &&
6930 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
6931 &&
6932 (keywords = keyword_patterns_rule(p)) // keyword_patterns
6933 &&
6934 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6935 &&
6936 (_literal_2 = _PyPegen_expect_token(p, 8)) // token=')'
6937 )
6938 {
6939 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
6940 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6941 if (_token == NULL) {
6942 D(p->level--);
6943 return NULL;
6944 }
6945 int _end_lineno = _token->end_lineno;
6946 UNUSED(_end_lineno); // Only used by EXTRA macro
6947 int _end_col_offset = _token->end_col_offset;
6948 UNUSED(_end_col_offset); // Only used by EXTRA macro
6949 _res = _Py_Call ( func , args , keywords , EXTRA );
6950 if (_res == NULL && PyErr_Occurred()) {
6951 p->error_indicator = 1;
6952 D(p->level--);
6953 return NULL;
6954 }
6955 goto done;
6956 }
6957 p->mark = _mark;
6958 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
6960 }
6961 _res = NULL;
6962 done:
6963 D(p->level--);
6964 return _res;
6965}
6966
6967// positional_patterns: ','.pattern+
6968static asdl_expr_seq*
6969positional_patterns_rule(Parser *p)
6970{
6971 D(p->level++);
6972 if (p->error_indicator) {
6973 D(p->level--);
6974 return NULL;
6975 }
6976 asdl_expr_seq* _res = NULL;
6977 int _mark = p->mark;
6978 { // ','.pattern+
6979 if (p->error_indicator) {
6980 D(p->level--);
6981 return NULL;
6982 }
6983 D(fprintf(stderr, "%*c> positional_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
6984 asdl_expr_seq* args;
6985 if (
6986 (args = (asdl_expr_seq*)_gather_62_rule(p)) // ','.pattern+
6987 )
6988 {
6989 D(fprintf(stderr, "%*c+ positional_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
6990 _res = args;
6991 if (_res == NULL && PyErr_Occurred()) {
6992 p->error_indicator = 1;
6993 D(p->level--);
6994 return NULL;
6995 }
6996 goto done;
6997 }
6998 p->mark = _mark;
6999 D(fprintf(stderr, "%*c%s positional_patterns[%d-%d]: %s failed!\n", p->level, ' ',
7000 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.pattern+"));
7001 }
7002 _res = NULL;
7003 done:
7004 D(p->level--);
7005 return _res;
7006}
7007
7008// keyword_patterns: ','.keyword_pattern+
7009static asdl_keyword_seq*
7010keyword_patterns_rule(Parser *p)
7011{
7012 D(p->level++);
7013 if (p->error_indicator) {
7014 D(p->level--);
7015 return NULL;
7016 }
7017 asdl_keyword_seq* _res = NULL;
7018 int _mark = p->mark;
7019 { // ','.keyword_pattern+
7020 if (p->error_indicator) {
7021 D(p->level--);
7022 return NULL;
7023 }
7024 D(fprintf(stderr, "%*c> keyword_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
7025 asdl_keyword_seq* keywords;
7026 if (
7027 (keywords = (asdl_keyword_seq*)_gather_64_rule(p)) // ','.keyword_pattern+
7028 )
7029 {
7030 D(fprintf(stderr, "%*c+ keyword_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
7031 _res = keywords;
7032 if (_res == NULL && PyErr_Occurred()) {
7033 p->error_indicator = 1;
7034 D(p->level--);
7035 return NULL;
7036 }
7037 goto done;
7038 }
7039 p->mark = _mark;
7040 D(fprintf(stderr, "%*c%s keyword_patterns[%d-%d]: %s failed!\n", p->level, ' ',
7041 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.keyword_pattern+"));
7042 }
7043 _res = NULL;
7044 done:
7045 D(p->level--);
7046 return _res;
7047}
7048
7049// keyword_pattern: NAME '=' pattern
7050static keyword_ty
7051keyword_pattern_rule(Parser *p)
7052{
7053 D(p->level++);
7054 if (p->error_indicator) {
7055 D(p->level--);
7056 return NULL;
7057 }
7058 keyword_ty _res = NULL;
7059 int _mark = p->mark;
7060 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7061 p->error_indicator = 1;
7062 D(p->level--);
7063 return NULL;
7064 }
7065 int _start_lineno = p->tokens[_mark]->lineno;
7066 UNUSED(_start_lineno); // Only used by EXTRA macro
7067 int _start_col_offset = p->tokens[_mark]->col_offset;
7068 UNUSED(_start_col_offset); // Only used by EXTRA macro
7069 { // NAME '=' pattern
7070 if (p->error_indicator) {
7071 D(p->level--);
7072 return NULL;
7073 }
7074 D(fprintf(stderr, "%*c> keyword_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
7075 Token * _literal;
7076 expr_ty arg;
7077 expr_ty value;
7078 if (
7079 (arg = _PyPegen_name_token(p)) // NAME
7080 &&
7081 (_literal = _PyPegen_expect_token(p, 22)) // token='='
7082 &&
7083 (value = pattern_rule(p)) // pattern
7084 )
7085 {
7086 D(fprintf(stderr, "%*c+ keyword_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
7087 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7088 if (_token == NULL) {
7089 D(p->level--);
7090 return NULL;
7091 }
7092 int _end_lineno = _token->end_lineno;
7093 UNUSED(_end_lineno); // Only used by EXTRA macro
7094 int _end_col_offset = _token->end_col_offset;
7095 UNUSED(_end_col_offset); // Only used by EXTRA macro
7096 _res = _Py_keyword ( arg -> v . Name . id , value , EXTRA );
7097 if (_res == NULL && PyErr_Occurred()) {
7098 p->error_indicator = 1;
7099 D(p->level--);
7100 return NULL;
7101 }
7102 goto done;
7103 }
7104 p->mark = _mark;
7105 D(fprintf(stderr, "%*c%s keyword_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7106 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' pattern"));
7107 }
7108 _res = NULL;
7109 done:
7110 D(p->level--);
7111 return _res;
7112}
7113
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007114// return_stmt: 'return' star_expressions?
7115static stmt_ty
7116return_stmt_rule(Parser *p)
7117{
7118 D(p->level++);
7119 if (p->error_indicator) {
7120 D(p->level--);
7121 return NULL;
7122 }
7123 stmt_ty _res = NULL;
7124 int _mark = p->mark;
7125 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7126 p->error_indicator = 1;
7127 D(p->level--);
7128 return NULL;
7129 }
7130 int _start_lineno = p->tokens[_mark]->lineno;
7131 UNUSED(_start_lineno); // Only used by EXTRA macro
7132 int _start_col_offset = p->tokens[_mark]->col_offset;
7133 UNUSED(_start_col_offset); // Only used by EXTRA macro
7134 { // 'return' star_expressions?
7135 if (p->error_indicator) {
7136 D(p->level--);
7137 return NULL;
7138 }
7139 D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
7140 Token * _keyword;
7141 void *a;
7142 if (
7143 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
7144 &&
7145 (a = star_expressions_rule(p), 1) // star_expressions?
7146 )
7147 {
7148 D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
7149 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7150 if (_token == NULL) {
7151 D(p->level--);
7152 return NULL;
7153 }
7154 int _end_lineno = _token->end_lineno;
7155 UNUSED(_end_lineno); // Only used by EXTRA macro
7156 int _end_col_offset = _token->end_col_offset;
7157 UNUSED(_end_col_offset); // Only used by EXTRA macro
7158 _res = _Py_Return ( a , EXTRA );
7159 if (_res == NULL && PyErr_Occurred()) {
7160 p->error_indicator = 1;
7161 D(p->level--);
7162 return NULL;
7163 }
7164 goto done;
7165 }
7166 p->mark = _mark;
7167 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
7168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
7169 }
7170 _res = NULL;
7171 done:
7172 D(p->level--);
7173 return _res;
7174}
7175
7176// raise_stmt: 'raise' expression ['from' expression] | 'raise'
7177static stmt_ty
7178raise_stmt_rule(Parser *p)
7179{
7180 D(p->level++);
7181 if (p->error_indicator) {
7182 D(p->level--);
7183 return NULL;
7184 }
7185 stmt_ty _res = NULL;
7186 int _mark = p->mark;
7187 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7188 p->error_indicator = 1;
7189 D(p->level--);
7190 return NULL;
7191 }
7192 int _start_lineno = p->tokens[_mark]->lineno;
7193 UNUSED(_start_lineno); // Only used by EXTRA macro
7194 int _start_col_offset = p->tokens[_mark]->col_offset;
7195 UNUSED(_start_col_offset); // Only used by EXTRA macro
7196 { // 'raise' expression ['from' expression]
7197 if (p->error_indicator) {
7198 D(p->level--);
7199 return NULL;
7200 }
7201 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
7202 Token * _keyword;
7203 expr_ty a;
7204 void *b;
7205 if (
7206 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
7207 &&
7208 (a = expression_rule(p)) // expression
7209 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007210 (b = _tmp_66_rule(p), 1) // ['from' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007211 )
7212 {
7213 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
7214 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7215 if (_token == NULL) {
7216 D(p->level--);
7217 return NULL;
7218 }
7219 int _end_lineno = _token->end_lineno;
7220 UNUSED(_end_lineno); // Only used by EXTRA macro
7221 int _end_col_offset = _token->end_col_offset;
7222 UNUSED(_end_col_offset); // Only used by EXTRA macro
7223 _res = _Py_Raise ( a , b , EXTRA );
7224 if (_res == NULL && PyErr_Occurred()) {
7225 p->error_indicator = 1;
7226 D(p->level--);
7227 return NULL;
7228 }
7229 goto done;
7230 }
7231 p->mark = _mark;
7232 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
7233 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
7234 }
7235 { // 'raise'
7236 if (p->error_indicator) {
7237 D(p->level--);
7238 return NULL;
7239 }
7240 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
7241 Token * _keyword;
7242 if (
7243 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
7244 )
7245 {
7246 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
7247 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7248 if (_token == NULL) {
7249 D(p->level--);
7250 return NULL;
7251 }
7252 int _end_lineno = _token->end_lineno;
7253 UNUSED(_end_lineno); // Only used by EXTRA macro
7254 int _end_col_offset = _token->end_col_offset;
7255 UNUSED(_end_col_offset); // Only used by EXTRA macro
7256 _res = _Py_Raise ( NULL , NULL , EXTRA );
7257 if (_res == NULL && PyErr_Occurred()) {
7258 p->error_indicator = 1;
7259 D(p->level--);
7260 return NULL;
7261 }
7262 goto done;
7263 }
7264 p->mark = _mark;
7265 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
7266 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
7267 }
7268 _res = NULL;
7269 done:
7270 D(p->level--);
7271 return _res;
7272}
7273
7274// function_def: decorators function_def_raw | function_def_raw
7275static stmt_ty
7276function_def_rule(Parser *p)
7277{
7278 D(p->level++);
7279 if (p->error_indicator) {
7280 D(p->level--);
7281 return NULL;
7282 }
7283 stmt_ty _res = NULL;
7284 int _mark = p->mark;
7285 { // decorators function_def_raw
7286 if (p->error_indicator) {
7287 D(p->level--);
7288 return NULL;
7289 }
7290 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 +01007291 asdl_expr_seq* d;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007292 stmt_ty f;
7293 if (
7294 (d = decorators_rule(p)) // decorators
7295 &&
7296 (f = function_def_raw_rule(p)) // function_def_raw
7297 )
7298 {
7299 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
7300 _res = _PyPegen_function_def_decorators ( p , d , f );
7301 if (_res == NULL && PyErr_Occurred()) {
7302 p->error_indicator = 1;
7303 D(p->level--);
7304 return NULL;
7305 }
7306 goto done;
7307 }
7308 p->mark = _mark;
7309 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
7310 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
7311 }
7312 { // function_def_raw
7313 if (p->error_indicator) {
7314 D(p->level--);
7315 return NULL;
7316 }
7317 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
7318 stmt_ty function_def_raw_var;
7319 if (
7320 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
7321 )
7322 {
7323 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
7324 _res = function_def_raw_var;
7325 goto done;
7326 }
7327 p->mark = _mark;
7328 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
7329 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
7330 }
7331 _res = NULL;
7332 done:
7333 D(p->level--);
7334 return _res;
7335}
7336
7337// function_def_raw:
Pablo Galindo58fb1562021-02-02 19:54:22 +00007338// | 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
7339// | ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007340static stmt_ty
7341function_def_raw_rule(Parser *p)
7342{
7343 D(p->level++);
7344 if (p->error_indicator) {
7345 D(p->level--);
7346 return NULL;
7347 }
7348 stmt_ty _res = NULL;
7349 int _mark = p->mark;
7350 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7351 p->error_indicator = 1;
7352 D(p->level--);
7353 return NULL;
7354 }
7355 int _start_lineno = p->tokens[_mark]->lineno;
7356 UNUSED(_start_lineno); // Only used by EXTRA macro
7357 int _start_col_offset = p->tokens[_mark]->col_offset;
7358 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00007359 { // 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007360 if (p->error_indicator) {
7361 D(p->level--);
7362 return NULL;
7363 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00007364 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 +01007365 Token * _keyword;
7366 Token * _literal;
7367 Token * _literal_1;
7368 Token * _literal_2;
7369 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007370 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007371 expr_ty n;
7372 void *params;
7373 void *tc;
7374 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007375 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007376 &&
7377 (n = _PyPegen_name_token(p)) // NAME
7378 &&
7379 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7380 &&
7381 (params = params_rule(p), 1) // params?
7382 &&
7383 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7384 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007385 (a = _tmp_67_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007386 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00007387 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007388 &&
7389 (tc = func_type_comment_rule(p), 1) // func_type_comment?
7390 &&
7391 (b = block_rule(p)) // block
7392 )
7393 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00007394 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 +01007395 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7396 if (_token == NULL) {
7397 D(p->level--);
7398 return NULL;
7399 }
7400 int _end_lineno = _token->end_lineno;
7401 UNUSED(_end_lineno); // Only used by EXTRA macro
7402 int _end_col_offset = _token->end_col_offset;
7403 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03007404 _res = _Py_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 +01007405 if (_res == NULL && PyErr_Occurred()) {
7406 p->error_indicator = 1;
7407 D(p->level--);
7408 return NULL;
7409 }
7410 goto done;
7411 }
7412 p->mark = _mark;
7413 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00007414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007415 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00007416 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007417 if (p->error_indicator) {
7418 D(p->level--);
7419 return NULL;
7420 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00007421 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 +01007422 Token * _keyword;
7423 Token * _literal;
7424 Token * _literal_1;
7425 Token * _literal_2;
7426 void *a;
7427 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007428 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007429 expr_ty n;
7430 void *params;
7431 void *tc;
7432 if (
7433 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
7434 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007435 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007436 &&
7437 (n = _PyPegen_name_token(p)) // NAME
7438 &&
7439 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7440 &&
7441 (params = params_rule(p), 1) // params?
7442 &&
7443 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7444 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007445 (a = _tmp_68_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007446 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00007447 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007448 &&
7449 (tc = func_type_comment_rule(p), 1) // func_type_comment?
7450 &&
7451 (b = block_rule(p)) // block
7452 )
7453 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00007454 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 +01007455 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7456 if (_token == NULL) {
7457 D(p->level--);
7458 return NULL;
7459 }
7460 int _end_lineno = _token->end_lineno;
7461 UNUSED(_end_lineno); // Only used by EXTRA macro
7462 int _end_col_offset = _token->end_col_offset;
7463 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03007464 _res = CHECK_VERSION ( stmt_ty , 5 , "Async functions are" , _Py_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 +01007465 if (_res == NULL && PyErr_Occurred()) {
7466 p->error_indicator = 1;
7467 D(p->level--);
7468 return NULL;
7469 }
7470 goto done;
7471 }
7472 p->mark = _mark;
7473 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00007474 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007475 }
7476 _res = NULL;
7477 done:
7478 D(p->level--);
7479 return _res;
7480}
7481
7482// func_type_comment:
7483// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
7484// | invalid_double_type_comments
7485// | TYPE_COMMENT
7486static Token*
7487func_type_comment_rule(Parser *p)
7488{
7489 D(p->level++);
7490 if (p->error_indicator) {
7491 D(p->level--);
7492 return NULL;
7493 }
7494 Token* _res = NULL;
7495 int _mark = p->mark;
7496 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
7497 if (p->error_indicator) {
7498 D(p->level--);
7499 return NULL;
7500 }
7501 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
7502 Token * newline_var;
7503 Token * t;
7504 if (
7505 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
7506 &&
7507 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
7508 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007509 _PyPegen_lookahead(1, _tmp_69_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007510 )
7511 {
7512 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
7513 _res = t;
7514 if (_res == NULL && PyErr_Occurred()) {
7515 p->error_indicator = 1;
7516 D(p->level--);
7517 return NULL;
7518 }
7519 goto done;
7520 }
7521 p->mark = _mark;
7522 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
7523 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
7524 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02007525 if (p->call_invalid_rules) { // invalid_double_type_comments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007526 if (p->error_indicator) {
7527 D(p->level--);
7528 return NULL;
7529 }
7530 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
7531 void *invalid_double_type_comments_var;
7532 if (
7533 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
7534 )
7535 {
7536 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
7537 _res = invalid_double_type_comments_var;
7538 goto done;
7539 }
7540 p->mark = _mark;
7541 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
7542 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
7543 }
7544 { // TYPE_COMMENT
7545 if (p->error_indicator) {
7546 D(p->level--);
7547 return NULL;
7548 }
7549 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
7550 Token * type_comment_var;
7551 if (
7552 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
7553 )
7554 {
7555 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
7556 _res = type_comment_var;
7557 goto done;
7558 }
7559 p->mark = _mark;
7560 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
7561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
7562 }
7563 _res = NULL;
7564 done:
7565 D(p->level--);
7566 return _res;
7567}
7568
7569// params: invalid_parameters | parameters
7570static arguments_ty
7571params_rule(Parser *p)
7572{
7573 D(p->level++);
7574 if (p->error_indicator) {
7575 D(p->level--);
7576 return NULL;
7577 }
7578 arguments_ty _res = NULL;
7579 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02007580 if (p->call_invalid_rules) { // invalid_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007581 if (p->error_indicator) {
7582 D(p->level--);
7583 return NULL;
7584 }
7585 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
7586 void *invalid_parameters_var;
7587 if (
7588 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
7589 )
7590 {
7591 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
7592 _res = invalid_parameters_var;
7593 goto done;
7594 }
7595 p->mark = _mark;
7596 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
7597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
7598 }
7599 { // parameters
7600 if (p->error_indicator) {
7601 D(p->level--);
7602 return NULL;
7603 }
7604 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
7605 arguments_ty parameters_var;
7606 if (
7607 (parameters_var = parameters_rule(p)) // parameters
7608 )
7609 {
7610 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
7611 _res = parameters_var;
7612 goto done;
7613 }
7614 p->mark = _mark;
7615 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
7616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
7617 }
7618 _res = NULL;
7619 done:
7620 D(p->level--);
7621 return _res;
7622}
7623
7624// parameters:
7625// | slash_no_default param_no_default* param_with_default* star_etc?
7626// | slash_with_default param_with_default* star_etc?
7627// | param_no_default+ param_with_default* star_etc?
7628// | param_with_default+ star_etc?
7629// | star_etc
7630static arguments_ty
7631parameters_rule(Parser *p)
7632{
7633 D(p->level++);
7634 if (p->error_indicator) {
7635 D(p->level--);
7636 return NULL;
7637 }
7638 arguments_ty _res = NULL;
7639 int _mark = p->mark;
7640 { // slash_no_default param_no_default* param_with_default* star_etc?
7641 if (p->error_indicator) {
7642 D(p->level--);
7643 return NULL;
7644 }
7645 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 +01007646 asdl_arg_seq* a;
7647 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007648 asdl_seq * c;
7649 void *d;
7650 if (
7651 (a = slash_no_default_rule(p)) // slash_no_default
7652 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007653 (b = (asdl_arg_seq*)_loop0_70_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007654 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007655 (c = _loop0_71_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007656 &&
7657 (d = star_etc_rule(p), 1) // star_etc?
7658 )
7659 {
7660 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?"));
7661 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
7662 if (_res == NULL && PyErr_Occurred()) {
7663 p->error_indicator = 1;
7664 D(p->level--);
7665 return NULL;
7666 }
7667 goto done;
7668 }
7669 p->mark = _mark;
7670 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
7671 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
7672 }
7673 { // slash_with_default param_with_default* star_etc?
7674 if (p->error_indicator) {
7675 D(p->level--);
7676 return NULL;
7677 }
7678 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
7679 SlashWithDefault* a;
7680 asdl_seq * b;
7681 void *c;
7682 if (
7683 (a = slash_with_default_rule(p)) // slash_with_default
7684 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007685 (b = _loop0_72_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007686 &&
7687 (c = star_etc_rule(p), 1) // star_etc?
7688 )
7689 {
7690 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
7691 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
7692 if (_res == NULL && PyErr_Occurred()) {
7693 p->error_indicator = 1;
7694 D(p->level--);
7695 return NULL;
7696 }
7697 goto done;
7698 }
7699 p->mark = _mark;
7700 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
7701 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
7702 }
7703 { // param_no_default+ param_with_default* star_etc?
7704 if (p->error_indicator) {
7705 D(p->level--);
7706 return NULL;
7707 }
7708 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 +01007709 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007710 asdl_seq * b;
7711 void *c;
7712 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007713 (a = (asdl_arg_seq*)_loop1_73_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007714 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007715 (b = _loop0_74_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007716 &&
7717 (c = star_etc_rule(p), 1) // star_etc?
7718 )
7719 {
7720 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
7721 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
7722 if (_res == NULL && PyErr_Occurred()) {
7723 p->error_indicator = 1;
7724 D(p->level--);
7725 return NULL;
7726 }
7727 goto done;
7728 }
7729 p->mark = _mark;
7730 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
7731 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
7732 }
7733 { // param_with_default+ star_etc?
7734 if (p->error_indicator) {
7735 D(p->level--);
7736 return NULL;
7737 }
7738 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
7739 asdl_seq * a;
7740 void *b;
7741 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007742 (a = _loop1_75_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007743 &&
7744 (b = star_etc_rule(p), 1) // star_etc?
7745 )
7746 {
7747 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
7748 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
7749 if (_res == NULL && PyErr_Occurred()) {
7750 p->error_indicator = 1;
7751 D(p->level--);
7752 return NULL;
7753 }
7754 goto done;
7755 }
7756 p->mark = _mark;
7757 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
7758 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
7759 }
7760 { // star_etc
7761 if (p->error_indicator) {
7762 D(p->level--);
7763 return NULL;
7764 }
7765 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
7766 StarEtc* a;
7767 if (
7768 (a = star_etc_rule(p)) // star_etc
7769 )
7770 {
7771 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
7772 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
7773 if (_res == NULL && PyErr_Occurred()) {
7774 p->error_indicator = 1;
7775 D(p->level--);
7776 return NULL;
7777 }
7778 goto done;
7779 }
7780 p->mark = _mark;
7781 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
7782 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
7783 }
7784 _res = NULL;
7785 done:
7786 D(p->level--);
7787 return _res;
7788}
7789
7790// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoa5634c42020-09-16 19:42:00 +01007791static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007792slash_no_default_rule(Parser *p)
7793{
7794 D(p->level++);
7795 if (p->error_indicator) {
7796 D(p->level--);
7797 return NULL;
7798 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01007799 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007800 int _mark = p->mark;
7801 { // param_no_default+ '/' ','
7802 if (p->error_indicator) {
7803 D(p->level--);
7804 return NULL;
7805 }
7806 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
7807 Token * _literal;
7808 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007809 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007810 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007811 (a = (asdl_arg_seq*)_loop1_76_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007812 &&
7813 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7814 &&
7815 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7816 )
7817 {
7818 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
7819 _res = a;
7820 if (_res == NULL && PyErr_Occurred()) {
7821 p->error_indicator = 1;
7822 D(p->level--);
7823 return NULL;
7824 }
7825 goto done;
7826 }
7827 p->mark = _mark;
7828 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7829 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
7830 }
7831 { // param_no_default+ '/' &')'
7832 if (p->error_indicator) {
7833 D(p->level--);
7834 return NULL;
7835 }
7836 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
7837 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007838 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007839 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007840 (a = (asdl_arg_seq*)_loop1_77_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007841 &&
7842 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7843 &&
7844 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
7845 )
7846 {
7847 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
7848 _res = a;
7849 if (_res == NULL && PyErr_Occurred()) {
7850 p->error_indicator = 1;
7851 D(p->level--);
7852 return NULL;
7853 }
7854 goto done;
7855 }
7856 p->mark = _mark;
7857 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7858 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
7859 }
7860 _res = NULL;
7861 done:
7862 D(p->level--);
7863 return _res;
7864}
7865
7866// slash_with_default:
7867// | param_no_default* param_with_default+ '/' ','
7868// | param_no_default* param_with_default+ '/' &')'
7869static SlashWithDefault*
7870slash_with_default_rule(Parser *p)
7871{
7872 D(p->level++);
7873 if (p->error_indicator) {
7874 D(p->level--);
7875 return NULL;
7876 }
7877 SlashWithDefault* _res = NULL;
7878 int _mark = p->mark;
7879 { // param_no_default* param_with_default+ '/' ','
7880 if (p->error_indicator) {
7881 D(p->level--);
7882 return NULL;
7883 }
7884 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
7885 Token * _literal;
7886 Token * _literal_1;
7887 asdl_seq * a;
7888 asdl_seq * b;
7889 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007890 (a = _loop0_78_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007891 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007892 (b = _loop1_79_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007893 &&
7894 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7895 &&
7896 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7897 )
7898 {
7899 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 +01007900 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007901 if (_res == NULL && PyErr_Occurred()) {
7902 p->error_indicator = 1;
7903 D(p->level--);
7904 return NULL;
7905 }
7906 goto done;
7907 }
7908 p->mark = _mark;
7909 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7910 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
7911 }
7912 { // param_no_default* param_with_default+ '/' &')'
7913 if (p->error_indicator) {
7914 D(p->level--);
7915 return NULL;
7916 }
7917 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
7918 Token * _literal;
7919 asdl_seq * a;
7920 asdl_seq * b;
7921 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08007922 (a = _loop0_80_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007923 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007924 (b = _loop1_81_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007925 &&
7926 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7927 &&
7928 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
7929 )
7930 {
7931 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 +01007932 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007933 if (_res == NULL && PyErr_Occurred()) {
7934 p->error_indicator = 1;
7935 D(p->level--);
7936 return NULL;
7937 }
7938 goto done;
7939 }
7940 p->mark = _mark;
7941 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7942 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
7943 }
7944 _res = NULL;
7945 done:
7946 D(p->level--);
7947 return _res;
7948}
7949
7950// star_etc:
7951// | '*' param_no_default param_maybe_default* kwds?
7952// | '*' ',' param_maybe_default+ kwds?
7953// | kwds
7954// | invalid_star_etc
7955static StarEtc*
7956star_etc_rule(Parser *p)
7957{
7958 D(p->level++);
7959 if (p->error_indicator) {
7960 D(p->level--);
7961 return NULL;
7962 }
7963 StarEtc* _res = NULL;
7964 int _mark = p->mark;
7965 { // '*' param_no_default param_maybe_default* kwds?
7966 if (p->error_indicator) {
7967 D(p->level--);
7968 return NULL;
7969 }
7970 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
7971 Token * _literal;
7972 arg_ty a;
7973 asdl_seq * b;
7974 void *c;
7975 if (
7976 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7977 &&
7978 (a = param_no_default_rule(p)) // param_no_default
7979 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007980 (b = _loop0_82_rule(p)) // param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007981 &&
7982 (c = kwds_rule(p), 1) // kwds?
7983 )
7984 {
7985 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
7986 _res = _PyPegen_star_etc ( p , a , b , c );
7987 if (_res == NULL && PyErr_Occurred()) {
7988 p->error_indicator = 1;
7989 D(p->level--);
7990 return NULL;
7991 }
7992 goto done;
7993 }
7994 p->mark = _mark;
7995 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
7997 }
7998 { // '*' ',' param_maybe_default+ kwds?
7999 if (p->error_indicator) {
8000 D(p->level--);
8001 return NULL;
8002 }
8003 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
8004 Token * _literal;
8005 Token * _literal_1;
8006 asdl_seq * b;
8007 void *c;
8008 if (
8009 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
8010 &&
8011 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8012 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008013 (b = _loop1_83_rule(p)) // param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008014 &&
8015 (c = kwds_rule(p), 1) // kwds?
8016 )
8017 {
8018 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
8019 _res = _PyPegen_star_etc ( p , NULL , b , c );
8020 if (_res == NULL && PyErr_Occurred()) {
8021 p->error_indicator = 1;
8022 D(p->level--);
8023 return NULL;
8024 }
8025 goto done;
8026 }
8027 p->mark = _mark;
8028 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
8030 }
8031 { // kwds
8032 if (p->error_indicator) {
8033 D(p->level--);
8034 return NULL;
8035 }
8036 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
8037 arg_ty a;
8038 if (
8039 (a = kwds_rule(p)) // kwds
8040 )
8041 {
8042 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
8043 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
8044 if (_res == NULL && PyErr_Occurred()) {
8045 p->error_indicator = 1;
8046 D(p->level--);
8047 return NULL;
8048 }
8049 goto done;
8050 }
8051 p->mark = _mark;
8052 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
8054 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008055 if (p->call_invalid_rules) { // invalid_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008056 if (p->error_indicator) {
8057 D(p->level--);
8058 return NULL;
8059 }
8060 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
8061 void *invalid_star_etc_var;
8062 if (
8063 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
8064 )
8065 {
8066 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
8067 _res = invalid_star_etc_var;
8068 goto done;
8069 }
8070 p->mark = _mark;
8071 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
8072 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
8073 }
8074 _res = NULL;
8075 done:
8076 D(p->level--);
8077 return _res;
8078}
8079
8080// kwds: '**' param_no_default
8081static arg_ty
8082kwds_rule(Parser *p)
8083{
8084 D(p->level++);
8085 if (p->error_indicator) {
8086 D(p->level--);
8087 return NULL;
8088 }
8089 arg_ty _res = NULL;
8090 int _mark = p->mark;
8091 { // '**' param_no_default
8092 if (p->error_indicator) {
8093 D(p->level--);
8094 return NULL;
8095 }
8096 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
8097 Token * _literal;
8098 arg_ty a;
8099 if (
8100 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
8101 &&
8102 (a = param_no_default_rule(p)) // param_no_default
8103 )
8104 {
8105 D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
8106 _res = a;
8107 if (_res == NULL && PyErr_Occurred()) {
8108 p->error_indicator = 1;
8109 D(p->level--);
8110 return NULL;
8111 }
8112 goto done;
8113 }
8114 p->mark = _mark;
8115 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
8116 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
8117 }
8118 _res = NULL;
8119 done:
8120 D(p->level--);
8121 return _res;
8122}
8123
8124// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
8125static arg_ty
8126param_no_default_rule(Parser *p)
8127{
8128 D(p->level++);
8129 if (p->error_indicator) {
8130 D(p->level--);
8131 return NULL;
8132 }
8133 arg_ty _res = NULL;
8134 int _mark = p->mark;
8135 { // param ',' TYPE_COMMENT?
8136 if (p->error_indicator) {
8137 D(p->level--);
8138 return NULL;
8139 }
8140 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
8141 Token * _literal;
8142 arg_ty a;
8143 void *tc;
8144 if (
8145 (a = param_rule(p)) // param
8146 &&
8147 (_literal = _PyPegen_expect_token(p, 12)) // token=','
8148 &&
8149 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8150 )
8151 {
8152 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
8153 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
8154 if (_res == NULL && PyErr_Occurred()) {
8155 p->error_indicator = 1;
8156 D(p->level--);
8157 return NULL;
8158 }
8159 goto done;
8160 }
8161 p->mark = _mark;
8162 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8163 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
8164 }
8165 { // param TYPE_COMMENT? &')'
8166 if (p->error_indicator) {
8167 D(p->level--);
8168 return NULL;
8169 }
8170 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
8171 arg_ty a;
8172 void *tc;
8173 if (
8174 (a = param_rule(p)) // param
8175 &&
8176 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8177 &&
8178 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8179 )
8180 {
8181 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
8182 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
8183 if (_res == NULL && PyErr_Occurred()) {
8184 p->error_indicator = 1;
8185 D(p->level--);
8186 return NULL;
8187 }
8188 goto done;
8189 }
8190 p->mark = _mark;
8191 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8192 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
8193 }
8194 _res = NULL;
8195 done:
8196 D(p->level--);
8197 return _res;
8198}
8199
8200// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
8201static NameDefaultPair*
8202param_with_default_rule(Parser *p)
8203{
8204 D(p->level++);
8205 if (p->error_indicator) {
8206 D(p->level--);
8207 return NULL;
8208 }
8209 NameDefaultPair* _res = NULL;
8210 int _mark = p->mark;
8211 { // param default ',' TYPE_COMMENT?
8212 if (p->error_indicator) {
8213 D(p->level--);
8214 return NULL;
8215 }
8216 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
8217 Token * _literal;
8218 arg_ty a;
8219 expr_ty c;
8220 void *tc;
8221 if (
8222 (a = param_rule(p)) // param
8223 &&
8224 (c = default_rule(p)) // default
8225 &&
8226 (_literal = _PyPegen_expect_token(p, 12)) // token=','
8227 &&
8228 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8229 )
8230 {
8231 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
8232 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8233 if (_res == NULL && PyErr_Occurred()) {
8234 p->error_indicator = 1;
8235 D(p->level--);
8236 return NULL;
8237 }
8238 goto done;
8239 }
8240 p->mark = _mark;
8241 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
8243 }
8244 { // param default TYPE_COMMENT? &')'
8245 if (p->error_indicator) {
8246 D(p->level--);
8247 return NULL;
8248 }
8249 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
8250 arg_ty a;
8251 expr_ty c;
8252 void *tc;
8253 if (
8254 (a = param_rule(p)) // param
8255 &&
8256 (c = default_rule(p)) // default
8257 &&
8258 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8259 &&
8260 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8261 )
8262 {
8263 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
8264 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8265 if (_res == NULL && PyErr_Occurred()) {
8266 p->error_indicator = 1;
8267 D(p->level--);
8268 return NULL;
8269 }
8270 goto done;
8271 }
8272 p->mark = _mark;
8273 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8274 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
8275 }
8276 _res = NULL;
8277 done:
8278 D(p->level--);
8279 return _res;
8280}
8281
8282// param_maybe_default:
8283// | param default? ',' TYPE_COMMENT?
8284// | param default? TYPE_COMMENT? &')'
8285static NameDefaultPair*
8286param_maybe_default_rule(Parser *p)
8287{
8288 D(p->level++);
8289 if (p->error_indicator) {
8290 D(p->level--);
8291 return NULL;
8292 }
8293 NameDefaultPair* _res = NULL;
8294 int _mark = p->mark;
8295 { // param default? ',' TYPE_COMMENT?
8296 if (p->error_indicator) {
8297 D(p->level--);
8298 return NULL;
8299 }
8300 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
8301 Token * _literal;
8302 arg_ty a;
8303 void *c;
8304 void *tc;
8305 if (
8306 (a = param_rule(p)) // param
8307 &&
8308 (c = default_rule(p), 1) // default?
8309 &&
8310 (_literal = _PyPegen_expect_token(p, 12)) // token=','
8311 &&
8312 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8313 )
8314 {
8315 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
8316 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8317 if (_res == NULL && PyErr_Occurred()) {
8318 p->error_indicator = 1;
8319 D(p->level--);
8320 return NULL;
8321 }
8322 goto done;
8323 }
8324 p->mark = _mark;
8325 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
8326 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
8327 }
8328 { // param default? TYPE_COMMENT? &')'
8329 if (p->error_indicator) {
8330 D(p->level--);
8331 return NULL;
8332 }
8333 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
8334 arg_ty a;
8335 void *c;
8336 void *tc;
8337 if (
8338 (a = param_rule(p)) // param
8339 &&
8340 (c = default_rule(p), 1) // default?
8341 &&
8342 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
8343 &&
8344 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8345 )
8346 {
8347 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
8348 _res = _PyPegen_name_default_pair ( p , a , c , tc );
8349 if (_res == NULL && PyErr_Occurred()) {
8350 p->error_indicator = 1;
8351 D(p->level--);
8352 return NULL;
8353 }
8354 goto done;
8355 }
8356 p->mark = _mark;
8357 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
8358 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
8359 }
8360 _res = NULL;
8361 done:
8362 D(p->level--);
8363 return _res;
8364}
8365
8366// param: NAME annotation?
8367static arg_ty
8368param_rule(Parser *p)
8369{
8370 D(p->level++);
8371 if (p->error_indicator) {
8372 D(p->level--);
8373 return NULL;
8374 }
8375 arg_ty _res = NULL;
8376 int _mark = p->mark;
8377 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8378 p->error_indicator = 1;
8379 D(p->level--);
8380 return NULL;
8381 }
8382 int _start_lineno = p->tokens[_mark]->lineno;
8383 UNUSED(_start_lineno); // Only used by EXTRA macro
8384 int _start_col_offset = p->tokens[_mark]->col_offset;
8385 UNUSED(_start_col_offset); // Only used by EXTRA macro
8386 { // NAME annotation?
8387 if (p->error_indicator) {
8388 D(p->level--);
8389 return NULL;
8390 }
8391 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
8392 expr_ty a;
8393 void *b;
8394 if (
8395 (a = _PyPegen_name_token(p)) // NAME
8396 &&
8397 (b = annotation_rule(p), 1) // annotation?
8398 )
8399 {
8400 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
8401 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8402 if (_token == NULL) {
8403 D(p->level--);
8404 return NULL;
8405 }
8406 int _end_lineno = _token->end_lineno;
8407 UNUSED(_end_lineno); // Only used by EXTRA macro
8408 int _end_col_offset = _token->end_col_offset;
8409 UNUSED(_end_col_offset); // Only used by EXTRA macro
8410 _res = _Py_arg ( a -> v . Name . id , b , NULL , EXTRA );
8411 if (_res == NULL && PyErr_Occurred()) {
8412 p->error_indicator = 1;
8413 D(p->level--);
8414 return NULL;
8415 }
8416 goto done;
8417 }
8418 p->mark = _mark;
8419 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
8420 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
8421 }
8422 _res = NULL;
8423 done:
8424 D(p->level--);
8425 return _res;
8426}
8427
8428// annotation: ':' expression
8429static expr_ty
8430annotation_rule(Parser *p)
8431{
8432 D(p->level++);
8433 if (p->error_indicator) {
8434 D(p->level--);
8435 return NULL;
8436 }
8437 expr_ty _res = NULL;
8438 int _mark = p->mark;
8439 { // ':' expression
8440 if (p->error_indicator) {
8441 D(p->level--);
8442 return NULL;
8443 }
8444 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
8445 Token * _literal;
8446 expr_ty a;
8447 if (
8448 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
8449 &&
8450 (a = expression_rule(p)) // expression
8451 )
8452 {
8453 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
8454 _res = a;
8455 if (_res == NULL && PyErr_Occurred()) {
8456 p->error_indicator = 1;
8457 D(p->level--);
8458 return NULL;
8459 }
8460 goto done;
8461 }
8462 p->mark = _mark;
8463 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
8464 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
8465 }
8466 _res = NULL;
8467 done:
8468 D(p->level--);
8469 return _res;
8470}
8471
8472// default: '=' expression
8473static expr_ty
8474default_rule(Parser *p)
8475{
8476 D(p->level++);
8477 if (p->error_indicator) {
8478 D(p->level--);
8479 return NULL;
8480 }
8481 expr_ty _res = NULL;
8482 int _mark = p->mark;
8483 { // '=' expression
8484 if (p->error_indicator) {
8485 D(p->level--);
8486 return NULL;
8487 }
8488 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
8489 Token * _literal;
8490 expr_ty a;
8491 if (
8492 (_literal = _PyPegen_expect_token(p, 22)) // token='='
8493 &&
8494 (a = expression_rule(p)) // expression
8495 )
8496 {
8497 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
8498 _res = a;
8499 if (_res == NULL && PyErr_Occurred()) {
8500 p->error_indicator = 1;
8501 D(p->level--);
8502 return NULL;
8503 }
8504 goto done;
8505 }
8506 p->mark = _mark;
8507 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
8508 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
8509 }
8510 _res = NULL;
8511 done:
8512 D(p->level--);
8513 return _res;
8514}
8515
8516// decorators: (('@' named_expression NEWLINE))+
Pablo Galindoa5634c42020-09-16 19:42:00 +01008517static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008518decorators_rule(Parser *p)
8519{
8520 D(p->level++);
8521 if (p->error_indicator) {
8522 D(p->level--);
8523 return NULL;
8524 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01008525 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008526 int _mark = p->mark;
8527 { // (('@' named_expression NEWLINE))+
8528 if (p->error_indicator) {
8529 D(p->level--);
8530 return NULL;
8531 }
8532 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01008533 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008534 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008535 (a = (asdl_expr_seq*)_loop1_84_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008536 )
8537 {
8538 D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
8539 _res = a;
8540 if (_res == NULL && PyErr_Occurred()) {
8541 p->error_indicator = 1;
8542 D(p->level--);
8543 return NULL;
8544 }
8545 goto done;
8546 }
8547 p->mark = _mark;
8548 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
8549 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
8550 }
8551 _res = NULL;
8552 done:
8553 D(p->level--);
8554 return _res;
8555}
8556
8557// class_def: decorators class_def_raw | class_def_raw
8558static stmt_ty
8559class_def_rule(Parser *p)
8560{
8561 D(p->level++);
8562 if (p->error_indicator) {
8563 D(p->level--);
8564 return NULL;
8565 }
8566 stmt_ty _res = NULL;
8567 int _mark = p->mark;
8568 { // decorators class_def_raw
8569 if (p->error_indicator) {
8570 D(p->level--);
8571 return NULL;
8572 }
8573 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 +01008574 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008575 stmt_ty b;
8576 if (
8577 (a = decorators_rule(p)) // decorators
8578 &&
8579 (b = class_def_raw_rule(p)) // class_def_raw
8580 )
8581 {
8582 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
8583 _res = _PyPegen_class_def_decorators ( p , a , b );
8584 if (_res == NULL && PyErr_Occurred()) {
8585 p->error_indicator = 1;
8586 D(p->level--);
8587 return NULL;
8588 }
8589 goto done;
8590 }
8591 p->mark = _mark;
8592 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
8593 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
8594 }
8595 { // class_def_raw
8596 if (p->error_indicator) {
8597 D(p->level--);
8598 return NULL;
8599 }
8600 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
8601 stmt_ty class_def_raw_var;
8602 if (
8603 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
8604 )
8605 {
8606 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
8607 _res = class_def_raw_var;
8608 goto done;
8609 }
8610 p->mark = _mark;
8611 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
8612 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
8613 }
8614 _res = NULL;
8615 done:
8616 D(p->level--);
8617 return _res;
8618}
8619
Pablo Galindo58fb1562021-02-02 19:54:22 +00008620// class_def_raw: 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008621static stmt_ty
8622class_def_raw_rule(Parser *p)
8623{
8624 D(p->level++);
8625 if (p->error_indicator) {
8626 D(p->level--);
8627 return NULL;
8628 }
8629 stmt_ty _res = NULL;
8630 int _mark = p->mark;
8631 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8632 p->error_indicator = 1;
8633 D(p->level--);
8634 return NULL;
8635 }
8636 int _start_lineno = p->tokens[_mark]->lineno;
8637 UNUSED(_start_lineno); // Only used by EXTRA macro
8638 int _start_col_offset = p->tokens[_mark]->col_offset;
8639 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00008640 { // 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008641 if (p->error_indicator) {
8642 D(p->level--);
8643 return NULL;
8644 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008645 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 +01008646 Token * _keyword;
8647 Token * _literal;
8648 expr_ty a;
8649 void *b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008650 asdl_stmt_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008651 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008652 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008653 &&
8654 (a = _PyPegen_name_token(p)) // NAME
8655 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008656 (b = _tmp_85_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008657 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008658 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008659 &&
8660 (c = block_rule(p)) // block
8661 )
8662 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008663 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 +01008664 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8665 if (_token == NULL) {
8666 D(p->level--);
8667 return NULL;
8668 }
8669 int _end_lineno = _token->end_lineno;
8670 UNUSED(_end_lineno); // Only used by EXTRA macro
8671 int _end_col_offset = _token->end_col_offset;
8672 UNUSED(_end_col_offset); // Only used by EXTRA macro
8673 _res = _Py_ClassDef ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , c , NULL , EXTRA );
8674 if (_res == NULL && PyErr_Occurred()) {
8675 p->error_indicator = 1;
8676 D(p->level--);
8677 return NULL;
8678 }
8679 goto done;
8680 }
8681 p->mark = _mark;
8682 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008683 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008684 }
8685 _res = NULL;
8686 done:
8687 D(p->level--);
8688 return _res;
8689}
8690
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008691// block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block
Pablo Galindoa5634c42020-09-16 19:42:00 +01008692static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008693block_rule(Parser *p)
8694{
8695 D(p->level++);
8696 if (p->error_indicator) {
8697 D(p->level--);
8698 return NULL;
8699 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01008700 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008701 if (_PyPegen_is_memoized(p, block_type, &_res)) {
8702 D(p->level--);
8703 return _res;
8704 }
8705 int _mark = p->mark;
8706 { // NEWLINE INDENT statements DEDENT
8707 if (p->error_indicator) {
8708 D(p->level--);
8709 return NULL;
8710 }
8711 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 +01008712 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008713 Token * dedent_var;
8714 Token * indent_var;
8715 Token * newline_var;
8716 if (
8717 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
8718 &&
8719 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
8720 &&
8721 (a = statements_rule(p)) // statements
8722 &&
8723 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
8724 )
8725 {
8726 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
8727 _res = a;
8728 if (_res == NULL && PyErr_Occurred()) {
8729 p->error_indicator = 1;
8730 D(p->level--);
8731 return NULL;
8732 }
8733 goto done;
8734 }
8735 p->mark = _mark;
8736 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
8737 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
8738 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008739 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008740 if (p->error_indicator) {
8741 D(p->level--);
8742 return NULL;
8743 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008744 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
8745 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008746 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008747 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008748 )
8749 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008750 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
8751 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008752 goto done;
8753 }
8754 p->mark = _mark;
8755 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00008756 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008757 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008758 if (p->call_invalid_rules) { // invalid_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008759 if (p->error_indicator) {
8760 D(p->level--);
8761 return NULL;
8762 }
8763 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
8764 void *invalid_block_var;
8765 if (
8766 (invalid_block_var = invalid_block_rule(p)) // invalid_block
8767 )
8768 {
8769 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
8770 _res = invalid_block_var;
8771 goto done;
8772 }
8773 p->mark = _mark;
8774 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
8775 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
8776 }
8777 _res = NULL;
8778 done:
8779 _PyPegen_insert_memo(p, _mark, block_type, _res);
8780 D(p->level--);
8781 return _res;
8782}
8783
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008784// star_expressions:
8785// | star_expression ((',' star_expression))+ ','?
8786// | star_expression ','
8787// | star_expression
8788static expr_ty
8789star_expressions_rule(Parser *p)
8790{
8791 D(p->level++);
8792 if (p->error_indicator) {
8793 D(p->level--);
8794 return NULL;
8795 }
8796 expr_ty _res = NULL;
8797 int _mark = p->mark;
8798 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8799 p->error_indicator = 1;
8800 D(p->level--);
8801 return NULL;
8802 }
8803 int _start_lineno = p->tokens[_mark]->lineno;
8804 UNUSED(_start_lineno); // Only used by EXTRA macro
8805 int _start_col_offset = p->tokens[_mark]->col_offset;
8806 UNUSED(_start_col_offset); // Only used by EXTRA macro
8807 { // star_expression ((',' star_expression))+ ','?
8808 if (p->error_indicator) {
8809 D(p->level--);
8810 return NULL;
8811 }
8812 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
8813 void *_opt_var;
8814 UNUSED(_opt_var); // Silence compiler warnings
8815 expr_ty a;
8816 asdl_seq * b;
8817 if (
8818 (a = star_expression_rule(p)) // star_expression
8819 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008820 (b = _loop1_86_rule(p)) // ((',' star_expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008821 &&
8822 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
8823 )
8824 {
8825 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
8826 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8827 if (_token == NULL) {
8828 D(p->level--);
8829 return NULL;
8830 }
8831 int _end_lineno = _token->end_lineno;
8832 UNUSED(_end_lineno); // Only used by EXTRA macro
8833 int _end_col_offset = _token->end_col_offset;
8834 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03008835 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008836 if (_res == NULL && PyErr_Occurred()) {
8837 p->error_indicator = 1;
8838 D(p->level--);
8839 return NULL;
8840 }
8841 goto done;
8842 }
8843 p->mark = _mark;
8844 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
8845 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
8846 }
8847 { // star_expression ','
8848 if (p->error_indicator) {
8849 D(p->level--);
8850 return NULL;
8851 }
8852 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
8853 Token * _literal;
8854 expr_ty a;
8855 if (
8856 (a = star_expression_rule(p)) // star_expression
8857 &&
8858 (_literal = _PyPegen_expect_token(p, 12)) // token=','
8859 )
8860 {
8861 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
8862 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8863 if (_token == NULL) {
8864 D(p->level--);
8865 return NULL;
8866 }
8867 int _end_lineno = _token->end_lineno;
8868 UNUSED(_end_lineno); // Only used by EXTRA macro
8869 int _end_col_offset = _token->end_col_offset;
8870 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03008871 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008872 if (_res == NULL && PyErr_Occurred()) {
8873 p->error_indicator = 1;
8874 D(p->level--);
8875 return NULL;
8876 }
8877 goto done;
8878 }
8879 p->mark = _mark;
8880 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
8881 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
8882 }
8883 { // star_expression
8884 if (p->error_indicator) {
8885 D(p->level--);
8886 return NULL;
8887 }
8888 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
8889 expr_ty star_expression_var;
8890 if (
8891 (star_expression_var = star_expression_rule(p)) // star_expression
8892 )
8893 {
8894 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
8895 _res = star_expression_var;
8896 goto done;
8897 }
8898 p->mark = _mark;
8899 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
8900 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
8901 }
8902 _res = NULL;
8903 done:
8904 D(p->level--);
8905 return _res;
8906}
8907
8908// star_expression: '*' bitwise_or | expression
8909static expr_ty
8910star_expression_rule(Parser *p)
8911{
8912 D(p->level++);
8913 if (p->error_indicator) {
8914 D(p->level--);
8915 return NULL;
8916 }
8917 expr_ty _res = NULL;
8918 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
8919 D(p->level--);
8920 return _res;
8921 }
8922 int _mark = p->mark;
8923 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8924 p->error_indicator = 1;
8925 D(p->level--);
8926 return NULL;
8927 }
8928 int _start_lineno = p->tokens[_mark]->lineno;
8929 UNUSED(_start_lineno); // Only used by EXTRA macro
8930 int _start_col_offset = p->tokens[_mark]->col_offset;
8931 UNUSED(_start_col_offset); // Only used by EXTRA macro
8932 { // '*' bitwise_or
8933 if (p->error_indicator) {
8934 D(p->level--);
8935 return NULL;
8936 }
8937 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
8938 Token * _literal;
8939 expr_ty a;
8940 if (
8941 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
8942 &&
8943 (a = bitwise_or_rule(p)) // bitwise_or
8944 )
8945 {
8946 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
8947 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8948 if (_token == NULL) {
8949 D(p->level--);
8950 return NULL;
8951 }
8952 int _end_lineno = _token->end_lineno;
8953 UNUSED(_end_lineno); // Only used by EXTRA macro
8954 int _end_col_offset = _token->end_col_offset;
8955 UNUSED(_end_col_offset); // Only used by EXTRA macro
8956 _res = _Py_Starred ( a , Load , EXTRA );
8957 if (_res == NULL && PyErr_Occurred()) {
8958 p->error_indicator = 1;
8959 D(p->level--);
8960 return NULL;
8961 }
8962 goto done;
8963 }
8964 p->mark = _mark;
8965 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
8966 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
8967 }
8968 { // expression
8969 if (p->error_indicator) {
8970 D(p->level--);
8971 return NULL;
8972 }
8973 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
8974 expr_ty expression_var;
8975 if (
8976 (expression_var = expression_rule(p)) // expression
8977 )
8978 {
8979 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
8980 _res = expression_var;
8981 goto done;
8982 }
8983 p->mark = _mark;
8984 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
8985 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
8986 }
8987 _res = NULL;
8988 done:
8989 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
8990 D(p->level--);
8991 return _res;
8992}
8993
8994// star_named_expressions: ','.star_named_expression+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +01008995static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008996star_named_expressions_rule(Parser *p)
8997{
8998 D(p->level++);
8999 if (p->error_indicator) {
9000 D(p->level--);
9001 return NULL;
9002 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009003 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009004 int _mark = p->mark;
9005 { // ','.star_named_expression+ ','?
9006 if (p->error_indicator) {
9007 D(p->level--);
9008 return NULL;
9009 }
9010 D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
9011 void *_opt_var;
9012 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01009013 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009014 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009015 (a = (asdl_expr_seq*)_gather_87_rule(p)) // ','.star_named_expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009016 &&
9017 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9018 )
9019 {
9020 D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
9021 _res = a;
9022 if (_res == NULL && PyErr_Occurred()) {
9023 p->error_indicator = 1;
9024 D(p->level--);
9025 return NULL;
9026 }
9027 goto done;
9028 }
9029 p->mark = _mark;
9030 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9031 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
9032 }
9033 _res = NULL;
9034 done:
9035 D(p->level--);
9036 return _res;
9037}
9038
9039// star_named_expression: '*' bitwise_or | named_expression
9040static expr_ty
9041star_named_expression_rule(Parser *p)
9042{
9043 D(p->level++);
9044 if (p->error_indicator) {
9045 D(p->level--);
9046 return NULL;
9047 }
9048 expr_ty _res = NULL;
9049 int _mark = p->mark;
9050 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9051 p->error_indicator = 1;
9052 D(p->level--);
9053 return NULL;
9054 }
9055 int _start_lineno = p->tokens[_mark]->lineno;
9056 UNUSED(_start_lineno); // Only used by EXTRA macro
9057 int _start_col_offset = p->tokens[_mark]->col_offset;
9058 UNUSED(_start_col_offset); // Only used by EXTRA macro
9059 { // '*' bitwise_or
9060 if (p->error_indicator) {
9061 D(p->level--);
9062 return NULL;
9063 }
9064 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9065 Token * _literal;
9066 expr_ty a;
9067 if (
9068 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9069 &&
9070 (a = bitwise_or_rule(p)) // bitwise_or
9071 )
9072 {
9073 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9074 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9075 if (_token == NULL) {
9076 D(p->level--);
9077 return NULL;
9078 }
9079 int _end_lineno = _token->end_lineno;
9080 UNUSED(_end_lineno); // Only used by EXTRA macro
9081 int _end_col_offset = _token->end_col_offset;
9082 UNUSED(_end_col_offset); // Only used by EXTRA macro
9083 _res = _Py_Starred ( a , Load , EXTRA );
9084 if (_res == NULL && PyErr_Occurred()) {
9085 p->error_indicator = 1;
9086 D(p->level--);
9087 return NULL;
9088 }
9089 goto done;
9090 }
9091 p->mark = _mark;
9092 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9093 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
9094 }
9095 { // named_expression
9096 if (p->error_indicator) {
9097 D(p->level--);
9098 return NULL;
9099 }
9100 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
9101 expr_ty named_expression_var;
9102 if (
9103 (named_expression_var = named_expression_rule(p)) // named_expression
9104 )
9105 {
9106 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
9107 _res = named_expression_var;
9108 goto done;
9109 }
9110 p->mark = _mark;
9111 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9112 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
9113 }
9114 _res = NULL;
9115 done:
9116 D(p->level--);
9117 return _res;
9118}
9119
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009120// named_expression: NAME ':=' ~ expression | expression !':=' | invalid_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009121static expr_ty
9122named_expression_rule(Parser *p)
9123{
9124 D(p->level++);
9125 if (p->error_indicator) {
9126 D(p->level--);
9127 return NULL;
9128 }
9129 expr_ty _res = NULL;
9130 int _mark = p->mark;
9131 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9132 p->error_indicator = 1;
9133 D(p->level--);
9134 return NULL;
9135 }
9136 int _start_lineno = p->tokens[_mark]->lineno;
9137 UNUSED(_start_lineno); // Only used by EXTRA macro
9138 int _start_col_offset = p->tokens[_mark]->col_offset;
9139 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009140 { // NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009141 if (p->error_indicator) {
9142 D(p->level--);
9143 return NULL;
9144 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009145 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
9146 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009147 Token * _literal;
9148 expr_ty a;
9149 expr_ty b;
9150 if (
9151 (a = _PyPegen_name_token(p)) // NAME
9152 &&
9153 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
9154 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009155 (_cut_var = 1)
9156 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009157 (b = expression_rule(p)) // expression
9158 )
9159 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009160 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009161 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9162 if (_token == NULL) {
9163 D(p->level--);
9164 return NULL;
9165 }
9166 int _end_lineno = _token->end_lineno;
9167 UNUSED(_end_lineno); // Only used by EXTRA macro
9168 int _end_col_offset = _token->end_col_offset;
9169 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03009170 _res = _Py_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009171 if (_res == NULL && PyErr_Occurred()) {
9172 p->error_indicator = 1;
9173 D(p->level--);
9174 return NULL;
9175 }
9176 goto done;
9177 }
9178 p->mark = _mark;
9179 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009180 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
9181 if (_cut_var) {
9182 D(p->level--);
9183 return NULL;
9184 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009185 }
9186 { // expression !':='
9187 if (p->error_indicator) {
9188 D(p->level--);
9189 return NULL;
9190 }
9191 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
9192 expr_ty expression_var;
9193 if (
9194 (expression_var = expression_rule(p)) // expression
9195 &&
9196 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
9197 )
9198 {
9199 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
9200 _res = expression_var;
9201 goto done;
9202 }
9203 p->mark = _mark;
9204 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9205 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
9206 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009207 if (p->call_invalid_rules) { // invalid_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009208 if (p->error_indicator) {
9209 D(p->level--);
9210 return NULL;
9211 }
9212 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
9213 void *invalid_named_expression_var;
9214 if (
9215 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
9216 )
9217 {
9218 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
9219 _res = invalid_named_expression_var;
9220 goto done;
9221 }
9222 p->mark = _mark;
9223 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
9224 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
9225 }
9226 _res = NULL;
9227 done:
9228 D(p->level--);
9229 return _res;
9230}
9231
9232// annotated_rhs: yield_expr | star_expressions
9233static expr_ty
9234annotated_rhs_rule(Parser *p)
9235{
9236 D(p->level++);
9237 if (p->error_indicator) {
9238 D(p->level--);
9239 return NULL;
9240 }
9241 expr_ty _res = NULL;
9242 int _mark = p->mark;
9243 { // yield_expr
9244 if (p->error_indicator) {
9245 D(p->level--);
9246 return NULL;
9247 }
9248 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
9249 expr_ty yield_expr_var;
9250 if (
9251 (yield_expr_var = yield_expr_rule(p)) // yield_expr
9252 )
9253 {
9254 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
9255 _res = yield_expr_var;
9256 goto done;
9257 }
9258 p->mark = _mark;
9259 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
9260 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
9261 }
9262 { // star_expressions
9263 if (p->error_indicator) {
9264 D(p->level--);
9265 return NULL;
9266 }
9267 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
9268 expr_ty star_expressions_var;
9269 if (
9270 (star_expressions_var = star_expressions_rule(p)) // star_expressions
9271 )
9272 {
9273 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
9274 _res = star_expressions_var;
9275 goto done;
9276 }
9277 p->mark = _mark;
9278 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
9279 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
9280 }
9281 _res = NULL;
9282 done:
9283 D(p->level--);
9284 return _res;
9285}
9286
9287// expressions: expression ((',' expression))+ ','? | expression ',' | expression
9288static expr_ty
9289expressions_rule(Parser *p)
9290{
9291 D(p->level++);
9292 if (p->error_indicator) {
9293 D(p->level--);
9294 return NULL;
9295 }
9296 expr_ty _res = NULL;
9297 int _mark = p->mark;
9298 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9299 p->error_indicator = 1;
9300 D(p->level--);
9301 return NULL;
9302 }
9303 int _start_lineno = p->tokens[_mark]->lineno;
9304 UNUSED(_start_lineno); // Only used by EXTRA macro
9305 int _start_col_offset = p->tokens[_mark]->col_offset;
9306 UNUSED(_start_col_offset); // Only used by EXTRA macro
9307 { // expression ((',' expression))+ ','?
9308 if (p->error_indicator) {
9309 D(p->level--);
9310 return NULL;
9311 }
9312 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
9313 void *_opt_var;
9314 UNUSED(_opt_var); // Silence compiler warnings
9315 expr_ty a;
9316 asdl_seq * b;
9317 if (
9318 (a = expression_rule(p)) // expression
9319 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009320 (b = _loop1_89_rule(p)) // ((',' expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009321 &&
9322 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9323 )
9324 {
9325 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
9326 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9327 if (_token == NULL) {
9328 D(p->level--);
9329 return NULL;
9330 }
9331 int _end_lineno = _token->end_lineno;
9332 UNUSED(_end_lineno); // Only used by EXTRA macro
9333 int _end_col_offset = _token->end_col_offset;
9334 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03009335 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009336 if (_res == NULL && PyErr_Occurred()) {
9337 p->error_indicator = 1;
9338 D(p->level--);
9339 return NULL;
9340 }
9341 goto done;
9342 }
9343 p->mark = _mark;
9344 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
9345 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
9346 }
9347 { // expression ','
9348 if (p->error_indicator) {
9349 D(p->level--);
9350 return NULL;
9351 }
9352 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
9353 Token * _literal;
9354 expr_ty a;
9355 if (
9356 (a = expression_rule(p)) // expression
9357 &&
9358 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9359 )
9360 {
9361 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
9362 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9363 if (_token == NULL) {
9364 D(p->level--);
9365 return NULL;
9366 }
9367 int _end_lineno = _token->end_lineno;
9368 UNUSED(_end_lineno); // Only used by EXTRA macro
9369 int _end_col_offset = _token->end_col_offset;
9370 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03009371 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009372 if (_res == NULL && PyErr_Occurred()) {
9373 p->error_indicator = 1;
9374 D(p->level--);
9375 return NULL;
9376 }
9377 goto done;
9378 }
9379 p->mark = _mark;
9380 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
9381 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
9382 }
9383 { // expression
9384 if (p->error_indicator) {
9385 D(p->level--);
9386 return NULL;
9387 }
9388 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
9389 expr_ty expression_var;
9390 if (
9391 (expression_var = expression_rule(p)) // expression
9392 )
9393 {
9394 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
9395 _res = expression_var;
9396 goto done;
9397 }
9398 p->mark = _mark;
9399 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
9400 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
9401 }
9402 _res = NULL;
9403 done:
9404 D(p->level--);
9405 return _res;
9406}
9407
9408// expression: disjunction 'if' disjunction 'else' expression | disjunction | lambdef
9409static expr_ty
9410expression_rule(Parser *p)
9411{
9412 D(p->level++);
9413 if (p->error_indicator) {
9414 D(p->level--);
9415 return NULL;
9416 }
9417 expr_ty _res = NULL;
9418 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
9419 D(p->level--);
9420 return _res;
9421 }
9422 int _mark = p->mark;
9423 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9424 p->error_indicator = 1;
9425 D(p->level--);
9426 return NULL;
9427 }
9428 int _start_lineno = p->tokens[_mark]->lineno;
9429 UNUSED(_start_lineno); // Only used by EXTRA macro
9430 int _start_col_offset = p->tokens[_mark]->col_offset;
9431 UNUSED(_start_col_offset); // Only used by EXTRA macro
9432 { // disjunction 'if' disjunction 'else' expression
9433 if (p->error_indicator) {
9434 D(p->level--);
9435 return NULL;
9436 }
9437 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
9438 Token * _keyword;
9439 Token * _keyword_1;
9440 expr_ty a;
9441 expr_ty b;
9442 expr_ty c;
9443 if (
9444 (a = disjunction_rule(p)) // disjunction
9445 &&
9446 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
9447 &&
9448 (b = disjunction_rule(p)) // disjunction
9449 &&
9450 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
9451 &&
9452 (c = expression_rule(p)) // expression
9453 )
9454 {
9455 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
9456 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9457 if (_token == NULL) {
9458 D(p->level--);
9459 return NULL;
9460 }
9461 int _end_lineno = _token->end_lineno;
9462 UNUSED(_end_lineno); // Only used by EXTRA macro
9463 int _end_col_offset = _token->end_col_offset;
9464 UNUSED(_end_col_offset); // Only used by EXTRA macro
9465 _res = _Py_IfExp ( b , a , c , EXTRA );
9466 if (_res == NULL && PyErr_Occurred()) {
9467 p->error_indicator = 1;
9468 D(p->level--);
9469 return NULL;
9470 }
9471 goto done;
9472 }
9473 p->mark = _mark;
9474 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
9475 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
9476 }
9477 { // disjunction
9478 if (p->error_indicator) {
9479 D(p->level--);
9480 return NULL;
9481 }
9482 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
9483 expr_ty disjunction_var;
9484 if (
9485 (disjunction_var = disjunction_rule(p)) // disjunction
9486 )
9487 {
9488 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
9489 _res = disjunction_var;
9490 goto done;
9491 }
9492 p->mark = _mark;
9493 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
9494 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
9495 }
9496 { // lambdef
9497 if (p->error_indicator) {
9498 D(p->level--);
9499 return NULL;
9500 }
9501 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
9502 expr_ty lambdef_var;
9503 if (
9504 (lambdef_var = lambdef_rule(p)) // lambdef
9505 )
9506 {
9507 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
9508 _res = lambdef_var;
9509 goto done;
9510 }
9511 p->mark = _mark;
9512 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
9513 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
9514 }
9515 _res = NULL;
9516 done:
9517 _PyPegen_insert_memo(p, _mark, expression_type, _res);
9518 D(p->level--);
9519 return _res;
9520}
9521
9522// lambdef: 'lambda' lambda_params? ':' expression
9523static expr_ty
9524lambdef_rule(Parser *p)
9525{
9526 D(p->level++);
9527 if (p->error_indicator) {
9528 D(p->level--);
9529 return NULL;
9530 }
9531 expr_ty _res = NULL;
9532 int _mark = p->mark;
9533 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9534 p->error_indicator = 1;
9535 D(p->level--);
9536 return NULL;
9537 }
9538 int _start_lineno = p->tokens[_mark]->lineno;
9539 UNUSED(_start_lineno); // Only used by EXTRA macro
9540 int _start_col_offset = p->tokens[_mark]->col_offset;
9541 UNUSED(_start_col_offset); // Only used by EXTRA macro
9542 { // 'lambda' lambda_params? ':' expression
9543 if (p->error_indicator) {
9544 D(p->level--);
9545 return NULL;
9546 }
9547 D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
9548 Token * _keyword;
9549 Token * _literal;
9550 void *a;
9551 expr_ty b;
9552 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009553 (_keyword = _PyPegen_expect_token(p, 528)) // token='lambda'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009554 &&
9555 (a = lambda_params_rule(p), 1) // lambda_params?
9556 &&
9557 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
9558 &&
9559 (b = expression_rule(p)) // expression
9560 )
9561 {
9562 D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
9563 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9564 if (_token == NULL) {
9565 D(p->level--);
9566 return NULL;
9567 }
9568 int _end_lineno = _token->end_lineno;
9569 UNUSED(_end_lineno); // Only used by EXTRA macro
9570 int _end_col_offset = _token->end_col_offset;
9571 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03009572 _res = _Py_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009573 if (_res == NULL && PyErr_Occurred()) {
9574 p->error_indicator = 1;
9575 D(p->level--);
9576 return NULL;
9577 }
9578 goto done;
9579 }
9580 p->mark = _mark;
9581 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
9582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
9583 }
9584 _res = NULL;
9585 done:
9586 D(p->level--);
9587 return _res;
9588}
9589
9590// lambda_params: invalid_lambda_parameters | lambda_parameters
9591static arguments_ty
9592lambda_params_rule(Parser *p)
9593{
9594 D(p->level++);
9595 if (p->error_indicator) {
9596 D(p->level--);
9597 return NULL;
9598 }
9599 arguments_ty _res = NULL;
9600 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009601 if (p->call_invalid_rules) { // invalid_lambda_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009602 if (p->error_indicator) {
9603 D(p->level--);
9604 return NULL;
9605 }
9606 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
9607 void *invalid_lambda_parameters_var;
9608 if (
9609 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
9610 )
9611 {
9612 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
9613 _res = invalid_lambda_parameters_var;
9614 goto done;
9615 }
9616 p->mark = _mark;
9617 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
9618 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
9619 }
9620 { // lambda_parameters
9621 if (p->error_indicator) {
9622 D(p->level--);
9623 return NULL;
9624 }
9625 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
9626 arguments_ty lambda_parameters_var;
9627 if (
9628 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
9629 )
9630 {
9631 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
9632 _res = lambda_parameters_var;
9633 goto done;
9634 }
9635 p->mark = _mark;
9636 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
9637 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
9638 }
9639 _res = NULL;
9640 done:
9641 D(p->level--);
9642 return _res;
9643}
9644
9645// lambda_parameters:
9646// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
9647// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
9648// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
9649// | lambda_param_with_default+ lambda_star_etc?
9650// | lambda_star_etc
9651static arguments_ty
9652lambda_parameters_rule(Parser *p)
9653{
9654 D(p->level++);
9655 if (p->error_indicator) {
9656 D(p->level--);
9657 return NULL;
9658 }
9659 arguments_ty _res = NULL;
9660 int _mark = p->mark;
9661 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
9662 if (p->error_indicator) {
9663 D(p->level--);
9664 return NULL;
9665 }
9666 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 +01009667 asdl_arg_seq* a;
9668 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009669 asdl_seq * c;
9670 void *d;
9671 if (
9672 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
9673 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009674 (b = (asdl_arg_seq*)_loop0_90_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009675 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009676 (c = _loop0_91_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009677 &&
9678 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
9679 )
9680 {
9681 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?"));
9682 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
9683 if (_res == NULL && PyErr_Occurred()) {
9684 p->error_indicator = 1;
9685 D(p->level--);
9686 return NULL;
9687 }
9688 goto done;
9689 }
9690 p->mark = _mark;
9691 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
9692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
9693 }
9694 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
9695 if (p->error_indicator) {
9696 D(p->level--);
9697 return NULL;
9698 }
9699 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?"));
9700 SlashWithDefault* a;
9701 asdl_seq * b;
9702 void *c;
9703 if (
9704 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
9705 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009706 (b = _loop0_92_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009707 &&
9708 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
9709 )
9710 {
9711 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?"));
9712 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
9713 if (_res == NULL && PyErr_Occurred()) {
9714 p->error_indicator = 1;
9715 D(p->level--);
9716 return NULL;
9717 }
9718 goto done;
9719 }
9720 p->mark = _mark;
9721 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
9722 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
9723 }
9724 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
9725 if (p->error_indicator) {
9726 D(p->level--);
9727 return NULL;
9728 }
9729 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 +01009730 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009731 asdl_seq * b;
9732 void *c;
9733 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009734 (a = (asdl_arg_seq*)_loop1_93_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009735 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009736 (b = _loop0_94_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009737 &&
9738 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
9739 )
9740 {
9741 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?"));
9742 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
9743 if (_res == NULL && PyErr_Occurred()) {
9744 p->error_indicator = 1;
9745 D(p->level--);
9746 return NULL;
9747 }
9748 goto done;
9749 }
9750 p->mark = _mark;
9751 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
9752 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
9753 }
9754 { // lambda_param_with_default+ lambda_star_etc?
9755 if (p->error_indicator) {
9756 D(p->level--);
9757 return NULL;
9758 }
9759 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
9760 asdl_seq * a;
9761 void *b;
9762 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009763 (a = _loop1_95_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009764 &&
9765 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
9766 )
9767 {
9768 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
9769 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
9770 if (_res == NULL && PyErr_Occurred()) {
9771 p->error_indicator = 1;
9772 D(p->level--);
9773 return NULL;
9774 }
9775 goto done;
9776 }
9777 p->mark = _mark;
9778 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
9779 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
9780 }
9781 { // lambda_star_etc
9782 if (p->error_indicator) {
9783 D(p->level--);
9784 return NULL;
9785 }
9786 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
9787 StarEtc* a;
9788 if (
9789 (a = lambda_star_etc_rule(p)) // lambda_star_etc
9790 )
9791 {
9792 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
9793 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
9794 if (_res == NULL && PyErr_Occurred()) {
9795 p->error_indicator = 1;
9796 D(p->level--);
9797 return NULL;
9798 }
9799 goto done;
9800 }
9801 p->mark = _mark;
9802 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
9803 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
9804 }
9805 _res = NULL;
9806 done:
9807 D(p->level--);
9808 return _res;
9809}
9810
9811// lambda_slash_no_default:
9812// | lambda_param_no_default+ '/' ','
9813// | lambda_param_no_default+ '/' &':'
Pablo Galindoa5634c42020-09-16 19:42:00 +01009814static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009815lambda_slash_no_default_rule(Parser *p)
9816{
9817 D(p->level++);
9818 if (p->error_indicator) {
9819 D(p->level--);
9820 return NULL;
9821 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009822 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009823 int _mark = p->mark;
9824 { // lambda_param_no_default+ '/' ','
9825 if (p->error_indicator) {
9826 D(p->level--);
9827 return NULL;
9828 }
9829 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
9830 Token * _literal;
9831 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01009832 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009833 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009834 (a = (asdl_arg_seq*)_loop1_96_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009835 &&
9836 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
9837 &&
9838 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
9839 )
9840 {
9841 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
9842 _res = a;
9843 if (_res == NULL && PyErr_Occurred()) {
9844 p->error_indicator = 1;
9845 D(p->level--);
9846 return NULL;
9847 }
9848 goto done;
9849 }
9850 p->mark = _mark;
9851 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9852 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
9853 }
9854 { // lambda_param_no_default+ '/' &':'
9855 if (p->error_indicator) {
9856 D(p->level--);
9857 return NULL;
9858 }
9859 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
9860 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01009861 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009862 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009863 (a = (asdl_arg_seq*)_loop1_97_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009864 &&
9865 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
9866 &&
9867 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
9868 )
9869 {
9870 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
9871 _res = a;
9872 if (_res == NULL && PyErr_Occurred()) {
9873 p->error_indicator = 1;
9874 D(p->level--);
9875 return NULL;
9876 }
9877 goto done;
9878 }
9879 p->mark = _mark;
9880 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9881 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
9882 }
9883 _res = NULL;
9884 done:
9885 D(p->level--);
9886 return _res;
9887}
9888
9889// lambda_slash_with_default:
9890// | lambda_param_no_default* lambda_param_with_default+ '/' ','
9891// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
9892static SlashWithDefault*
9893lambda_slash_with_default_rule(Parser *p)
9894{
9895 D(p->level++);
9896 if (p->error_indicator) {
9897 D(p->level--);
9898 return NULL;
9899 }
9900 SlashWithDefault* _res = NULL;
9901 int _mark = p->mark;
9902 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
9903 if (p->error_indicator) {
9904 D(p->level--);
9905 return NULL;
9906 }
9907 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+ '/' ','"));
9908 Token * _literal;
9909 Token * _literal_1;
9910 asdl_seq * a;
9911 asdl_seq * b;
9912 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009913 (a = _loop0_98_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009914 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009915 (b = _loop1_99_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009916 &&
9917 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
9918 &&
9919 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
9920 )
9921 {
9922 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 +01009923 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009924 if (_res == NULL && PyErr_Occurred()) {
9925 p->error_indicator = 1;
9926 D(p->level--);
9927 return NULL;
9928 }
9929 goto done;
9930 }
9931 p->mark = _mark;
9932 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
9934 }
9935 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
9936 if (p->error_indicator) {
9937 D(p->level--);
9938 return NULL;
9939 }
9940 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+ '/' &':'"));
9941 Token * _literal;
9942 asdl_seq * a;
9943 asdl_seq * b;
9944 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009945 (a = _loop0_100_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009946 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009947 (b = _loop1_101_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009948 &&
9949 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
9950 &&
9951 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
9952 )
9953 {
9954 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 +01009955 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009956 if (_res == NULL && PyErr_Occurred()) {
9957 p->error_indicator = 1;
9958 D(p->level--);
9959 return NULL;
9960 }
9961 goto done;
9962 }
9963 p->mark = _mark;
9964 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
9966 }
9967 _res = NULL;
9968 done:
9969 D(p->level--);
9970 return _res;
9971}
9972
9973// lambda_star_etc:
9974// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
9975// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
9976// | lambda_kwds
9977// | invalid_lambda_star_etc
9978static StarEtc*
9979lambda_star_etc_rule(Parser *p)
9980{
9981 D(p->level++);
9982 if (p->error_indicator) {
9983 D(p->level--);
9984 return NULL;
9985 }
9986 StarEtc* _res = NULL;
9987 int _mark = p->mark;
9988 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
9989 if (p->error_indicator) {
9990 D(p->level--);
9991 return NULL;
9992 }
9993 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?"));
9994 Token * _literal;
9995 arg_ty a;
9996 asdl_seq * b;
9997 void *c;
9998 if (
9999 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10000 &&
10001 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
10002 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010003 (b = _loop0_102_rule(p)) // lambda_param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010004 &&
10005 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
10006 )
10007 {
10008 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?"));
10009 _res = _PyPegen_star_etc ( p , a , b , c );
10010 if (_res == NULL && PyErr_Occurred()) {
10011 p->error_indicator = 1;
10012 D(p->level--);
10013 return NULL;
10014 }
10015 goto done;
10016 }
10017 p->mark = _mark;
10018 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10019 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
10020 }
10021 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
10022 if (p->error_indicator) {
10023 D(p->level--);
10024 return NULL;
10025 }
10026 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
10027 Token * _literal;
10028 Token * _literal_1;
10029 asdl_seq * b;
10030 void *c;
10031 if (
10032 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10033 &&
10034 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10035 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010036 (b = _loop1_103_rule(p)) // lambda_param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010037 &&
10038 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
10039 )
10040 {
10041 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
10042 _res = _PyPegen_star_etc ( p , NULL , b , c );
10043 if (_res == NULL && PyErr_Occurred()) {
10044 p->error_indicator = 1;
10045 D(p->level--);
10046 return NULL;
10047 }
10048 goto done;
10049 }
10050 p->mark = _mark;
10051 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10052 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
10053 }
10054 { // lambda_kwds
10055 if (p->error_indicator) {
10056 D(p->level--);
10057 return NULL;
10058 }
10059 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
10060 arg_ty a;
10061 if (
10062 (a = lambda_kwds_rule(p)) // lambda_kwds
10063 )
10064 {
10065 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
10066 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
10067 if (_res == NULL && PyErr_Occurred()) {
10068 p->error_indicator = 1;
10069 D(p->level--);
10070 return NULL;
10071 }
10072 goto done;
10073 }
10074 p->mark = _mark;
10075 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10076 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
10077 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020010078 if (p->call_invalid_rules) { // invalid_lambda_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010079 if (p->error_indicator) {
10080 D(p->level--);
10081 return NULL;
10082 }
10083 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
10084 void *invalid_lambda_star_etc_var;
10085 if (
10086 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
10087 )
10088 {
10089 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
10090 _res = invalid_lambda_star_etc_var;
10091 goto done;
10092 }
10093 p->mark = _mark;
10094 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
10095 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
10096 }
10097 _res = NULL;
10098 done:
10099 D(p->level--);
10100 return _res;
10101}
10102
10103// lambda_kwds: '**' lambda_param_no_default
10104static arg_ty
10105lambda_kwds_rule(Parser *p)
10106{
10107 D(p->level++);
10108 if (p->error_indicator) {
10109 D(p->level--);
10110 return NULL;
10111 }
10112 arg_ty _res = NULL;
10113 int _mark = p->mark;
10114 { // '**' lambda_param_no_default
10115 if (p->error_indicator) {
10116 D(p->level--);
10117 return NULL;
10118 }
10119 D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
10120 Token * _literal;
10121 arg_ty a;
10122 if (
10123 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
10124 &&
10125 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
10126 )
10127 {
10128 D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
10129 _res = a;
10130 if (_res == NULL && PyErr_Occurred()) {
10131 p->error_indicator = 1;
10132 D(p->level--);
10133 return NULL;
10134 }
10135 goto done;
10136 }
10137 p->mark = _mark;
10138 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
10139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
10140 }
10141 _res = NULL;
10142 done:
10143 D(p->level--);
10144 return _res;
10145}
10146
10147// lambda_param_no_default: lambda_param ',' | lambda_param &':'
10148static arg_ty
10149lambda_param_no_default_rule(Parser *p)
10150{
10151 D(p->level++);
10152 if (p->error_indicator) {
10153 D(p->level--);
10154 return NULL;
10155 }
10156 arg_ty _res = NULL;
10157 int _mark = p->mark;
10158 { // lambda_param ','
10159 if (p->error_indicator) {
10160 D(p->level--);
10161 return NULL;
10162 }
10163 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
10164 Token * _literal;
10165 arg_ty a;
10166 if (
10167 (a = lambda_param_rule(p)) // lambda_param
10168 &&
10169 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10170 )
10171 {
10172 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
10173 _res = a;
10174 if (_res == NULL && PyErr_Occurred()) {
10175 p->error_indicator = 1;
10176 D(p->level--);
10177 return NULL;
10178 }
10179 goto done;
10180 }
10181 p->mark = _mark;
10182 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10183 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
10184 }
10185 { // lambda_param &':'
10186 if (p->error_indicator) {
10187 D(p->level--);
10188 return NULL;
10189 }
10190 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
10191 arg_ty a;
10192 if (
10193 (a = lambda_param_rule(p)) // lambda_param
10194 &&
10195 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10196 )
10197 {
10198 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
10199 _res = a;
10200 if (_res == NULL && PyErr_Occurred()) {
10201 p->error_indicator = 1;
10202 D(p->level--);
10203 return NULL;
10204 }
10205 goto done;
10206 }
10207 p->mark = _mark;
10208 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10209 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
10210 }
10211 _res = NULL;
10212 done:
10213 D(p->level--);
10214 return _res;
10215}
10216
10217// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
10218static NameDefaultPair*
10219lambda_param_with_default_rule(Parser *p)
10220{
10221 D(p->level++);
10222 if (p->error_indicator) {
10223 D(p->level--);
10224 return NULL;
10225 }
10226 NameDefaultPair* _res = NULL;
10227 int _mark = p->mark;
10228 { // lambda_param default ','
10229 if (p->error_indicator) {
10230 D(p->level--);
10231 return NULL;
10232 }
10233 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
10234 Token * _literal;
10235 arg_ty a;
10236 expr_ty c;
10237 if (
10238 (a = lambda_param_rule(p)) // lambda_param
10239 &&
10240 (c = default_rule(p)) // default
10241 &&
10242 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10243 )
10244 {
10245 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
10246 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10247 if (_res == NULL && PyErr_Occurred()) {
10248 p->error_indicator = 1;
10249 D(p->level--);
10250 return NULL;
10251 }
10252 goto done;
10253 }
10254 p->mark = _mark;
10255 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
10256 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
10257 }
10258 { // lambda_param default &':'
10259 if (p->error_indicator) {
10260 D(p->level--);
10261 return NULL;
10262 }
10263 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
10264 arg_ty a;
10265 expr_ty c;
10266 if (
10267 (a = lambda_param_rule(p)) // lambda_param
10268 &&
10269 (c = default_rule(p)) // default
10270 &&
10271 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10272 )
10273 {
10274 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
10275 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10276 if (_res == NULL && PyErr_Occurred()) {
10277 p->error_indicator = 1;
10278 D(p->level--);
10279 return NULL;
10280 }
10281 goto done;
10282 }
10283 p->mark = _mark;
10284 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
10285 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
10286 }
10287 _res = NULL;
10288 done:
10289 D(p->level--);
10290 return _res;
10291}
10292
10293// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
10294static NameDefaultPair*
10295lambda_param_maybe_default_rule(Parser *p)
10296{
10297 D(p->level++);
10298 if (p->error_indicator) {
10299 D(p->level--);
10300 return NULL;
10301 }
10302 NameDefaultPair* _res = NULL;
10303 int _mark = p->mark;
10304 { // lambda_param default? ','
10305 if (p->error_indicator) {
10306 D(p->level--);
10307 return NULL;
10308 }
10309 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
10310 Token * _literal;
10311 arg_ty a;
10312 void *c;
10313 if (
10314 (a = lambda_param_rule(p)) // lambda_param
10315 &&
10316 (c = default_rule(p), 1) // default?
10317 &&
10318 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10319 )
10320 {
10321 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
10322 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10323 if (_res == NULL && PyErr_Occurred()) {
10324 p->error_indicator = 1;
10325 D(p->level--);
10326 return NULL;
10327 }
10328 goto done;
10329 }
10330 p->mark = _mark;
10331 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
10332 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
10333 }
10334 { // lambda_param default? &':'
10335 if (p->error_indicator) {
10336 D(p->level--);
10337 return NULL;
10338 }
10339 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
10340 arg_ty a;
10341 void *c;
10342 if (
10343 (a = lambda_param_rule(p)) // lambda_param
10344 &&
10345 (c = default_rule(p), 1) // default?
10346 &&
10347 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10348 )
10349 {
10350 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
10351 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
10352 if (_res == NULL && PyErr_Occurred()) {
10353 p->error_indicator = 1;
10354 D(p->level--);
10355 return NULL;
10356 }
10357 goto done;
10358 }
10359 p->mark = _mark;
10360 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
10361 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
10362 }
10363 _res = NULL;
10364 done:
10365 D(p->level--);
10366 return _res;
10367}
10368
10369// lambda_param: NAME
10370static arg_ty
10371lambda_param_rule(Parser *p)
10372{
10373 D(p->level++);
10374 if (p->error_indicator) {
10375 D(p->level--);
10376 return NULL;
10377 }
10378 arg_ty _res = NULL;
10379 int _mark = p->mark;
10380 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10381 p->error_indicator = 1;
10382 D(p->level--);
10383 return NULL;
10384 }
10385 int _start_lineno = p->tokens[_mark]->lineno;
10386 UNUSED(_start_lineno); // Only used by EXTRA macro
10387 int _start_col_offset = p->tokens[_mark]->col_offset;
10388 UNUSED(_start_col_offset); // Only used by EXTRA macro
10389 { // NAME
10390 if (p->error_indicator) {
10391 D(p->level--);
10392 return NULL;
10393 }
10394 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
10395 expr_ty a;
10396 if (
10397 (a = _PyPegen_name_token(p)) // NAME
10398 )
10399 {
10400 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
10401 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10402 if (_token == NULL) {
10403 D(p->level--);
10404 return NULL;
10405 }
10406 int _end_lineno = _token->end_lineno;
10407 UNUSED(_end_lineno); // Only used by EXTRA macro
10408 int _end_col_offset = _token->end_col_offset;
10409 UNUSED(_end_col_offset); // Only used by EXTRA macro
10410 _res = _Py_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
10411 if (_res == NULL && PyErr_Occurred()) {
10412 p->error_indicator = 1;
10413 D(p->level--);
10414 return NULL;
10415 }
10416 goto done;
10417 }
10418 p->mark = _mark;
10419 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
10420 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
10421 }
10422 _res = NULL;
10423 done:
10424 D(p->level--);
10425 return _res;
10426}
10427
10428// disjunction: conjunction (('or' conjunction))+ | conjunction
10429static expr_ty
10430disjunction_rule(Parser *p)
10431{
10432 D(p->level++);
10433 if (p->error_indicator) {
10434 D(p->level--);
10435 return NULL;
10436 }
10437 expr_ty _res = NULL;
10438 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
10439 D(p->level--);
10440 return _res;
10441 }
10442 int _mark = p->mark;
10443 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10444 p->error_indicator = 1;
10445 D(p->level--);
10446 return NULL;
10447 }
10448 int _start_lineno = p->tokens[_mark]->lineno;
10449 UNUSED(_start_lineno); // Only used by EXTRA macro
10450 int _start_col_offset = p->tokens[_mark]->col_offset;
10451 UNUSED(_start_col_offset); // Only used by EXTRA macro
10452 { // conjunction (('or' conjunction))+
10453 if (p->error_indicator) {
10454 D(p->level--);
10455 return NULL;
10456 }
10457 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
10458 expr_ty a;
10459 asdl_seq * b;
10460 if (
10461 (a = conjunction_rule(p)) // conjunction
10462 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010463 (b = _loop1_104_rule(p)) // (('or' conjunction))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010464 )
10465 {
10466 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
10467 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10468 if (_token == NULL) {
10469 D(p->level--);
10470 return NULL;
10471 }
10472 int _end_lineno = _token->end_lineno;
10473 UNUSED(_end_lineno); // Only used by EXTRA macro
10474 int _end_col_offset = _token->end_col_offset;
10475 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030010476 _res = _Py_BoolOp ( Or , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010477 if (_res == NULL && PyErr_Occurred()) {
10478 p->error_indicator = 1;
10479 D(p->level--);
10480 return NULL;
10481 }
10482 goto done;
10483 }
10484 p->mark = _mark;
10485 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
10486 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
10487 }
10488 { // conjunction
10489 if (p->error_indicator) {
10490 D(p->level--);
10491 return NULL;
10492 }
10493 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
10494 expr_ty conjunction_var;
10495 if (
10496 (conjunction_var = conjunction_rule(p)) // conjunction
10497 )
10498 {
10499 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
10500 _res = conjunction_var;
10501 goto done;
10502 }
10503 p->mark = _mark;
10504 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
10505 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
10506 }
10507 _res = NULL;
10508 done:
10509 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
10510 D(p->level--);
10511 return _res;
10512}
10513
10514// conjunction: inversion (('and' inversion))+ | inversion
10515static expr_ty
10516conjunction_rule(Parser *p)
10517{
10518 D(p->level++);
10519 if (p->error_indicator) {
10520 D(p->level--);
10521 return NULL;
10522 }
10523 expr_ty _res = NULL;
10524 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
10525 D(p->level--);
10526 return _res;
10527 }
10528 int _mark = p->mark;
10529 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10530 p->error_indicator = 1;
10531 D(p->level--);
10532 return NULL;
10533 }
10534 int _start_lineno = p->tokens[_mark]->lineno;
10535 UNUSED(_start_lineno); // Only used by EXTRA macro
10536 int _start_col_offset = p->tokens[_mark]->col_offset;
10537 UNUSED(_start_col_offset); // Only used by EXTRA macro
10538 { // inversion (('and' inversion))+
10539 if (p->error_indicator) {
10540 D(p->level--);
10541 return NULL;
10542 }
10543 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
10544 expr_ty a;
10545 asdl_seq * b;
10546 if (
10547 (a = inversion_rule(p)) // inversion
10548 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010549 (b = _loop1_105_rule(p)) // (('and' inversion))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010550 )
10551 {
10552 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
10553 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10554 if (_token == NULL) {
10555 D(p->level--);
10556 return NULL;
10557 }
10558 int _end_lineno = _token->end_lineno;
10559 UNUSED(_end_lineno); // Only used by EXTRA macro
10560 int _end_col_offset = _token->end_col_offset;
10561 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030010562 _res = _Py_BoolOp ( And , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010563 if (_res == NULL && PyErr_Occurred()) {
10564 p->error_indicator = 1;
10565 D(p->level--);
10566 return NULL;
10567 }
10568 goto done;
10569 }
10570 p->mark = _mark;
10571 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
10572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
10573 }
10574 { // inversion
10575 if (p->error_indicator) {
10576 D(p->level--);
10577 return NULL;
10578 }
10579 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
10580 expr_ty inversion_var;
10581 if (
10582 (inversion_var = inversion_rule(p)) // inversion
10583 )
10584 {
10585 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
10586 _res = inversion_var;
10587 goto done;
10588 }
10589 p->mark = _mark;
10590 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
10591 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
10592 }
10593 _res = NULL;
10594 done:
10595 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
10596 D(p->level--);
10597 return _res;
10598}
10599
10600// inversion: 'not' inversion | comparison
10601static expr_ty
10602inversion_rule(Parser *p)
10603{
10604 D(p->level++);
10605 if (p->error_indicator) {
10606 D(p->level--);
10607 return NULL;
10608 }
10609 expr_ty _res = NULL;
10610 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
10611 D(p->level--);
10612 return _res;
10613 }
10614 int _mark = p->mark;
10615 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10616 p->error_indicator = 1;
10617 D(p->level--);
10618 return NULL;
10619 }
10620 int _start_lineno = p->tokens[_mark]->lineno;
10621 UNUSED(_start_lineno); // Only used by EXTRA macro
10622 int _start_col_offset = p->tokens[_mark]->col_offset;
10623 UNUSED(_start_col_offset); // Only used by EXTRA macro
10624 { // 'not' inversion
10625 if (p->error_indicator) {
10626 D(p->level--);
10627 return NULL;
10628 }
10629 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
10630 Token * _keyword;
10631 expr_ty a;
10632 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010633 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010634 &&
10635 (a = inversion_rule(p)) // inversion
10636 )
10637 {
10638 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
10639 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10640 if (_token == NULL) {
10641 D(p->level--);
10642 return NULL;
10643 }
10644 int _end_lineno = _token->end_lineno;
10645 UNUSED(_end_lineno); // Only used by EXTRA macro
10646 int _end_col_offset = _token->end_col_offset;
10647 UNUSED(_end_col_offset); // Only used by EXTRA macro
10648 _res = _Py_UnaryOp ( Not , a , EXTRA );
10649 if (_res == NULL && PyErr_Occurred()) {
10650 p->error_indicator = 1;
10651 D(p->level--);
10652 return NULL;
10653 }
10654 goto done;
10655 }
10656 p->mark = _mark;
10657 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
10658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
10659 }
10660 { // comparison
10661 if (p->error_indicator) {
10662 D(p->level--);
10663 return NULL;
10664 }
10665 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
10666 expr_ty comparison_var;
10667 if (
10668 (comparison_var = comparison_rule(p)) // comparison
10669 )
10670 {
10671 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
10672 _res = comparison_var;
10673 goto done;
10674 }
10675 p->mark = _mark;
10676 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
10677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
10678 }
10679 _res = NULL;
10680 done:
10681 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
10682 D(p->level--);
10683 return _res;
10684}
10685
10686// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
10687static expr_ty
10688comparison_rule(Parser *p)
10689{
10690 D(p->level++);
10691 if (p->error_indicator) {
10692 D(p->level--);
10693 return NULL;
10694 }
10695 expr_ty _res = NULL;
10696 int _mark = p->mark;
10697 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10698 p->error_indicator = 1;
10699 D(p->level--);
10700 return NULL;
10701 }
10702 int _start_lineno = p->tokens[_mark]->lineno;
10703 UNUSED(_start_lineno); // Only used by EXTRA macro
10704 int _start_col_offset = p->tokens[_mark]->col_offset;
10705 UNUSED(_start_col_offset); // Only used by EXTRA macro
10706 { // bitwise_or compare_op_bitwise_or_pair+
10707 if (p->error_indicator) {
10708 D(p->level--);
10709 return NULL;
10710 }
10711 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
10712 expr_ty a;
10713 asdl_seq * b;
10714 if (
10715 (a = bitwise_or_rule(p)) // bitwise_or
10716 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010717 (b = _loop1_106_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010718 )
10719 {
10720 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
10721 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10722 if (_token == NULL) {
10723 D(p->level--);
10724 return NULL;
10725 }
10726 int _end_lineno = _token->end_lineno;
10727 UNUSED(_end_lineno); // Only used by EXTRA macro
10728 int _end_col_offset = _token->end_col_offset;
10729 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030010730 _res = _Py_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 +010010731 if (_res == NULL && PyErr_Occurred()) {
10732 p->error_indicator = 1;
10733 D(p->level--);
10734 return NULL;
10735 }
10736 goto done;
10737 }
10738 p->mark = _mark;
10739 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
10740 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
10741 }
10742 { // bitwise_or
10743 if (p->error_indicator) {
10744 D(p->level--);
10745 return NULL;
10746 }
10747 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
10748 expr_ty bitwise_or_var;
10749 if (
10750 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
10751 )
10752 {
10753 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
10754 _res = bitwise_or_var;
10755 goto done;
10756 }
10757 p->mark = _mark;
10758 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
10759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
10760 }
10761 _res = NULL;
10762 done:
10763 D(p->level--);
10764 return _res;
10765}
10766
10767// compare_op_bitwise_or_pair:
10768// | eq_bitwise_or
10769// | noteq_bitwise_or
10770// | lte_bitwise_or
10771// | lt_bitwise_or
10772// | gte_bitwise_or
10773// | gt_bitwise_or
10774// | notin_bitwise_or
10775// | in_bitwise_or
10776// | isnot_bitwise_or
10777// | is_bitwise_or
10778static CmpopExprPair*
10779compare_op_bitwise_or_pair_rule(Parser *p)
10780{
10781 D(p->level++);
10782 if (p->error_indicator) {
10783 D(p->level--);
10784 return NULL;
10785 }
10786 CmpopExprPair* _res = NULL;
10787 int _mark = p->mark;
10788 { // eq_bitwise_or
10789 if (p->error_indicator) {
10790 D(p->level--);
10791 return NULL;
10792 }
10793 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
10794 CmpopExprPair* eq_bitwise_or_var;
10795 if (
10796 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
10797 )
10798 {
10799 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
10800 _res = eq_bitwise_or_var;
10801 goto done;
10802 }
10803 p->mark = _mark;
10804 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
10805 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
10806 }
10807 { // noteq_bitwise_or
10808 if (p->error_indicator) {
10809 D(p->level--);
10810 return NULL;
10811 }
10812 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
10813 CmpopExprPair* noteq_bitwise_or_var;
10814 if (
10815 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
10816 )
10817 {
10818 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
10819 _res = noteq_bitwise_or_var;
10820 goto done;
10821 }
10822 p->mark = _mark;
10823 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
10824 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
10825 }
10826 { // lte_bitwise_or
10827 if (p->error_indicator) {
10828 D(p->level--);
10829 return NULL;
10830 }
10831 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
10832 CmpopExprPair* lte_bitwise_or_var;
10833 if (
10834 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
10835 )
10836 {
10837 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
10838 _res = lte_bitwise_or_var;
10839 goto done;
10840 }
10841 p->mark = _mark;
10842 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
10843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
10844 }
10845 { // lt_bitwise_or
10846 if (p->error_indicator) {
10847 D(p->level--);
10848 return NULL;
10849 }
10850 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
10851 CmpopExprPair* lt_bitwise_or_var;
10852 if (
10853 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
10854 )
10855 {
10856 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
10857 _res = lt_bitwise_or_var;
10858 goto done;
10859 }
10860 p->mark = _mark;
10861 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
10862 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
10863 }
10864 { // gte_bitwise_or
10865 if (p->error_indicator) {
10866 D(p->level--);
10867 return NULL;
10868 }
10869 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
10870 CmpopExprPair* gte_bitwise_or_var;
10871 if (
10872 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
10873 )
10874 {
10875 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
10876 _res = gte_bitwise_or_var;
10877 goto done;
10878 }
10879 p->mark = _mark;
10880 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
10881 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
10882 }
10883 { // gt_bitwise_or
10884 if (p->error_indicator) {
10885 D(p->level--);
10886 return NULL;
10887 }
10888 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
10889 CmpopExprPair* gt_bitwise_or_var;
10890 if (
10891 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
10892 )
10893 {
10894 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
10895 _res = gt_bitwise_or_var;
10896 goto done;
10897 }
10898 p->mark = _mark;
10899 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
10900 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
10901 }
10902 { // notin_bitwise_or
10903 if (p->error_indicator) {
10904 D(p->level--);
10905 return NULL;
10906 }
10907 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
10908 CmpopExprPair* notin_bitwise_or_var;
10909 if (
10910 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
10911 )
10912 {
10913 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
10914 _res = notin_bitwise_or_var;
10915 goto done;
10916 }
10917 p->mark = _mark;
10918 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
10919 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
10920 }
10921 { // in_bitwise_or
10922 if (p->error_indicator) {
10923 D(p->level--);
10924 return NULL;
10925 }
10926 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
10927 CmpopExprPair* in_bitwise_or_var;
10928 if (
10929 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
10930 )
10931 {
10932 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
10933 _res = in_bitwise_or_var;
10934 goto done;
10935 }
10936 p->mark = _mark;
10937 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
10938 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
10939 }
10940 { // isnot_bitwise_or
10941 if (p->error_indicator) {
10942 D(p->level--);
10943 return NULL;
10944 }
10945 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
10946 CmpopExprPair* isnot_bitwise_or_var;
10947 if (
10948 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
10949 )
10950 {
10951 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
10952 _res = isnot_bitwise_or_var;
10953 goto done;
10954 }
10955 p->mark = _mark;
10956 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
10957 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
10958 }
10959 { // is_bitwise_or
10960 if (p->error_indicator) {
10961 D(p->level--);
10962 return NULL;
10963 }
10964 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
10965 CmpopExprPair* is_bitwise_or_var;
10966 if (
10967 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
10968 )
10969 {
10970 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
10971 _res = is_bitwise_or_var;
10972 goto done;
10973 }
10974 p->mark = _mark;
10975 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
10976 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
10977 }
10978 _res = NULL;
10979 done:
10980 D(p->level--);
10981 return _res;
10982}
10983
10984// eq_bitwise_or: '==' bitwise_or
10985static CmpopExprPair*
10986eq_bitwise_or_rule(Parser *p)
10987{
10988 D(p->level++);
10989 if (p->error_indicator) {
10990 D(p->level--);
10991 return NULL;
10992 }
10993 CmpopExprPair* _res = NULL;
10994 int _mark = p->mark;
10995 { // '==' bitwise_or
10996 if (p->error_indicator) {
10997 D(p->level--);
10998 return NULL;
10999 }
11000 D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
11001 Token * _literal;
11002 expr_ty a;
11003 if (
11004 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
11005 &&
11006 (a = bitwise_or_rule(p)) // bitwise_or
11007 )
11008 {
11009 D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
11010 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
11011 if (_res == NULL && PyErr_Occurred()) {
11012 p->error_indicator = 1;
11013 D(p->level--);
11014 return NULL;
11015 }
11016 goto done;
11017 }
11018 p->mark = _mark;
11019 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11020 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
11021 }
11022 _res = NULL;
11023 done:
11024 D(p->level--);
11025 return _res;
11026}
11027
11028// noteq_bitwise_or: ('!=') bitwise_or
11029static CmpopExprPair*
11030noteq_bitwise_or_rule(Parser *p)
11031{
11032 D(p->level++);
11033 if (p->error_indicator) {
11034 D(p->level--);
11035 return NULL;
11036 }
11037 CmpopExprPair* _res = NULL;
11038 int _mark = p->mark;
11039 { // ('!=') bitwise_or
11040 if (p->error_indicator) {
11041 D(p->level--);
11042 return NULL;
11043 }
11044 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 -080011045 void *_tmp_107_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011046 expr_ty a;
11047 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011048 (_tmp_107_var = _tmp_107_rule(p)) // '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011049 &&
11050 (a = bitwise_or_rule(p)) // bitwise_or
11051 )
11052 {
11053 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
11054 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
11055 if (_res == NULL && PyErr_Occurred()) {
11056 p->error_indicator = 1;
11057 D(p->level--);
11058 return NULL;
11059 }
11060 goto done;
11061 }
11062 p->mark = _mark;
11063 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11064 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
11065 }
11066 _res = NULL;
11067 done:
11068 D(p->level--);
11069 return _res;
11070}
11071
11072// lte_bitwise_or: '<=' bitwise_or
11073static CmpopExprPair*
11074lte_bitwise_or_rule(Parser *p)
11075{
11076 D(p->level++);
11077 if (p->error_indicator) {
11078 D(p->level--);
11079 return NULL;
11080 }
11081 CmpopExprPair* _res = NULL;
11082 int _mark = p->mark;
11083 { // '<=' bitwise_or
11084 if (p->error_indicator) {
11085 D(p->level--);
11086 return NULL;
11087 }
11088 D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
11089 Token * _literal;
11090 expr_ty a;
11091 if (
11092 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
11093 &&
11094 (a = bitwise_or_rule(p)) // bitwise_or
11095 )
11096 {
11097 D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
11098 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
11099 if (_res == NULL && PyErr_Occurred()) {
11100 p->error_indicator = 1;
11101 D(p->level--);
11102 return NULL;
11103 }
11104 goto done;
11105 }
11106 p->mark = _mark;
11107 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11108 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
11109 }
11110 _res = NULL;
11111 done:
11112 D(p->level--);
11113 return _res;
11114}
11115
11116// lt_bitwise_or: '<' bitwise_or
11117static CmpopExprPair*
11118lt_bitwise_or_rule(Parser *p)
11119{
11120 D(p->level++);
11121 if (p->error_indicator) {
11122 D(p->level--);
11123 return NULL;
11124 }
11125 CmpopExprPair* _res = NULL;
11126 int _mark = p->mark;
11127 { // '<' bitwise_or
11128 if (p->error_indicator) {
11129 D(p->level--);
11130 return NULL;
11131 }
11132 D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
11133 Token * _literal;
11134 expr_ty a;
11135 if (
11136 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
11137 &&
11138 (a = bitwise_or_rule(p)) // bitwise_or
11139 )
11140 {
11141 D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
11142 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
11143 if (_res == NULL && PyErr_Occurred()) {
11144 p->error_indicator = 1;
11145 D(p->level--);
11146 return NULL;
11147 }
11148 goto done;
11149 }
11150 p->mark = _mark;
11151 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11152 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
11153 }
11154 _res = NULL;
11155 done:
11156 D(p->level--);
11157 return _res;
11158}
11159
11160// gte_bitwise_or: '>=' bitwise_or
11161static CmpopExprPair*
11162gte_bitwise_or_rule(Parser *p)
11163{
11164 D(p->level++);
11165 if (p->error_indicator) {
11166 D(p->level--);
11167 return NULL;
11168 }
11169 CmpopExprPair* _res = NULL;
11170 int _mark = p->mark;
11171 { // '>=' bitwise_or
11172 if (p->error_indicator) {
11173 D(p->level--);
11174 return NULL;
11175 }
11176 D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
11177 Token * _literal;
11178 expr_ty a;
11179 if (
11180 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
11181 &&
11182 (a = bitwise_or_rule(p)) // bitwise_or
11183 )
11184 {
11185 D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
11186 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
11187 if (_res == NULL && PyErr_Occurred()) {
11188 p->error_indicator = 1;
11189 D(p->level--);
11190 return NULL;
11191 }
11192 goto done;
11193 }
11194 p->mark = _mark;
11195 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11196 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
11197 }
11198 _res = NULL;
11199 done:
11200 D(p->level--);
11201 return _res;
11202}
11203
11204// gt_bitwise_or: '>' bitwise_or
11205static CmpopExprPair*
11206gt_bitwise_or_rule(Parser *p)
11207{
11208 D(p->level++);
11209 if (p->error_indicator) {
11210 D(p->level--);
11211 return NULL;
11212 }
11213 CmpopExprPair* _res = NULL;
11214 int _mark = p->mark;
11215 { // '>' bitwise_or
11216 if (p->error_indicator) {
11217 D(p->level--);
11218 return NULL;
11219 }
11220 D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
11221 Token * _literal;
11222 expr_ty a;
11223 if (
11224 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
11225 &&
11226 (a = bitwise_or_rule(p)) // bitwise_or
11227 )
11228 {
11229 D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
11230 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
11231 if (_res == NULL && PyErr_Occurred()) {
11232 p->error_indicator = 1;
11233 D(p->level--);
11234 return NULL;
11235 }
11236 goto done;
11237 }
11238 p->mark = _mark;
11239 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11240 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
11241 }
11242 _res = NULL;
11243 done:
11244 D(p->level--);
11245 return _res;
11246}
11247
11248// notin_bitwise_or: 'not' 'in' bitwise_or
11249static CmpopExprPair*
11250notin_bitwise_or_rule(Parser *p)
11251{
11252 D(p->level++);
11253 if (p->error_indicator) {
11254 D(p->level--);
11255 return NULL;
11256 }
11257 CmpopExprPair* _res = NULL;
11258 int _mark = p->mark;
11259 { // 'not' 'in' bitwise_or
11260 if (p->error_indicator) {
11261 D(p->level--);
11262 return NULL;
11263 }
11264 D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
11265 Token * _keyword;
11266 Token * _keyword_1;
11267 expr_ty a;
11268 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011269 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011270 &&
11271 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
11272 &&
11273 (a = bitwise_or_rule(p)) // bitwise_or
11274 )
11275 {
11276 D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
11277 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
11278 if (_res == NULL && PyErr_Occurred()) {
11279 p->error_indicator = 1;
11280 D(p->level--);
11281 return NULL;
11282 }
11283 goto done;
11284 }
11285 p->mark = _mark;
11286 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11287 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
11288 }
11289 _res = NULL;
11290 done:
11291 D(p->level--);
11292 return _res;
11293}
11294
11295// in_bitwise_or: 'in' bitwise_or
11296static CmpopExprPair*
11297in_bitwise_or_rule(Parser *p)
11298{
11299 D(p->level++);
11300 if (p->error_indicator) {
11301 D(p->level--);
11302 return NULL;
11303 }
11304 CmpopExprPair* _res = NULL;
11305 int _mark = p->mark;
11306 { // 'in' bitwise_or
11307 if (p->error_indicator) {
11308 D(p->level--);
11309 return NULL;
11310 }
11311 D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
11312 Token * _keyword;
11313 expr_ty a;
11314 if (
11315 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
11316 &&
11317 (a = bitwise_or_rule(p)) // bitwise_or
11318 )
11319 {
11320 D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
11321 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
11322 if (_res == NULL && PyErr_Occurred()) {
11323 p->error_indicator = 1;
11324 D(p->level--);
11325 return NULL;
11326 }
11327 goto done;
11328 }
11329 p->mark = _mark;
11330 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
11332 }
11333 _res = NULL;
11334 done:
11335 D(p->level--);
11336 return _res;
11337}
11338
11339// isnot_bitwise_or: 'is' 'not' bitwise_or
11340static CmpopExprPair*
11341isnot_bitwise_or_rule(Parser *p)
11342{
11343 D(p->level++);
11344 if (p->error_indicator) {
11345 D(p->level--);
11346 return NULL;
11347 }
11348 CmpopExprPair* _res = NULL;
11349 int _mark = p->mark;
11350 { // 'is' 'not' bitwise_or
11351 if (p->error_indicator) {
11352 D(p->level--);
11353 return NULL;
11354 }
11355 D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
11356 Token * _keyword;
11357 Token * _keyword_1;
11358 expr_ty a;
11359 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011360 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011361 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011362 (_keyword_1 = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011363 &&
11364 (a = bitwise_or_rule(p)) // bitwise_or
11365 )
11366 {
11367 D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
11368 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
11369 if (_res == NULL && PyErr_Occurred()) {
11370 p->error_indicator = 1;
11371 D(p->level--);
11372 return NULL;
11373 }
11374 goto done;
11375 }
11376 p->mark = _mark;
11377 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11378 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
11379 }
11380 _res = NULL;
11381 done:
11382 D(p->level--);
11383 return _res;
11384}
11385
11386// is_bitwise_or: 'is' bitwise_or
11387static CmpopExprPair*
11388is_bitwise_or_rule(Parser *p)
11389{
11390 D(p->level++);
11391 if (p->error_indicator) {
11392 D(p->level--);
11393 return NULL;
11394 }
11395 CmpopExprPair* _res = NULL;
11396 int _mark = p->mark;
11397 { // 'is' bitwise_or
11398 if (p->error_indicator) {
11399 D(p->level--);
11400 return NULL;
11401 }
11402 D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
11403 Token * _keyword;
11404 expr_ty a;
11405 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011406 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011407 &&
11408 (a = bitwise_or_rule(p)) // bitwise_or
11409 )
11410 {
11411 D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
11412 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
11413 if (_res == NULL && PyErr_Occurred()) {
11414 p->error_indicator = 1;
11415 D(p->level--);
11416 return NULL;
11417 }
11418 goto done;
11419 }
11420 p->mark = _mark;
11421 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11422 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
11423 }
11424 _res = NULL;
11425 done:
11426 D(p->level--);
11427 return _res;
11428}
11429
11430// Left-recursive
11431// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
11432static expr_ty bitwise_or_raw(Parser *);
11433static expr_ty
11434bitwise_or_rule(Parser *p)
11435{
11436 D(p->level++);
11437 expr_ty _res = NULL;
11438 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
11439 D(p->level--);
11440 return _res;
11441 }
11442 int _mark = p->mark;
11443 int _resmark = p->mark;
11444 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080011445 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
11446 if (tmpvar_2) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011447 D(p->level--);
11448 return _res;
11449 }
11450 p->mark = _mark;
11451 void *_raw = bitwise_or_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020011452 if (p->error_indicator)
11453 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011454 if (_raw == NULL || p->mark <= _resmark)
11455 break;
11456 _resmark = p->mark;
11457 _res = _raw;
11458 }
11459 p->mark = _resmark;
11460 D(p->level--);
11461 return _res;
11462}
11463static expr_ty
11464bitwise_or_raw(Parser *p)
11465{
11466 D(p->level++);
11467 if (p->error_indicator) {
11468 D(p->level--);
11469 return NULL;
11470 }
11471 expr_ty _res = NULL;
11472 int _mark = p->mark;
11473 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11474 p->error_indicator = 1;
11475 D(p->level--);
11476 return NULL;
11477 }
11478 int _start_lineno = p->tokens[_mark]->lineno;
11479 UNUSED(_start_lineno); // Only used by EXTRA macro
11480 int _start_col_offset = p->tokens[_mark]->col_offset;
11481 UNUSED(_start_col_offset); // Only used by EXTRA macro
11482 { // bitwise_or '|' bitwise_xor
11483 if (p->error_indicator) {
11484 D(p->level--);
11485 return NULL;
11486 }
11487 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
11488 Token * _literal;
11489 expr_ty a;
11490 expr_ty b;
11491 if (
11492 (a = bitwise_or_rule(p)) // bitwise_or
11493 &&
11494 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
11495 &&
11496 (b = bitwise_xor_rule(p)) // bitwise_xor
11497 )
11498 {
11499 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
11500 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11501 if (_token == NULL) {
11502 D(p->level--);
11503 return NULL;
11504 }
11505 int _end_lineno = _token->end_lineno;
11506 UNUSED(_end_lineno); // Only used by EXTRA macro
11507 int _end_col_offset = _token->end_col_offset;
11508 UNUSED(_end_col_offset); // Only used by EXTRA macro
11509 _res = _Py_BinOp ( a , BitOr , b , EXTRA );
11510 if (_res == NULL && PyErr_Occurred()) {
11511 p->error_indicator = 1;
11512 D(p->level--);
11513 return NULL;
11514 }
11515 goto done;
11516 }
11517 p->mark = _mark;
11518 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11519 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
11520 }
11521 { // bitwise_xor
11522 if (p->error_indicator) {
11523 D(p->level--);
11524 return NULL;
11525 }
11526 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
11527 expr_ty bitwise_xor_var;
11528 if (
11529 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
11530 )
11531 {
11532 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
11533 _res = bitwise_xor_var;
11534 goto done;
11535 }
11536 p->mark = _mark;
11537 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
11538 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
11539 }
11540 _res = NULL;
11541 done:
11542 D(p->level--);
11543 return _res;
11544}
11545
11546// Left-recursive
11547// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
11548static expr_ty bitwise_xor_raw(Parser *);
11549static expr_ty
11550bitwise_xor_rule(Parser *p)
11551{
11552 D(p->level++);
11553 expr_ty _res = NULL;
11554 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
11555 D(p->level--);
11556 return _res;
11557 }
11558 int _mark = p->mark;
11559 int _resmark = p->mark;
11560 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080011561 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
11562 if (tmpvar_3) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011563 D(p->level--);
11564 return _res;
11565 }
11566 p->mark = _mark;
11567 void *_raw = bitwise_xor_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020011568 if (p->error_indicator)
11569 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011570 if (_raw == NULL || p->mark <= _resmark)
11571 break;
11572 _resmark = p->mark;
11573 _res = _raw;
11574 }
11575 p->mark = _resmark;
11576 D(p->level--);
11577 return _res;
11578}
11579static expr_ty
11580bitwise_xor_raw(Parser *p)
11581{
11582 D(p->level++);
11583 if (p->error_indicator) {
11584 D(p->level--);
11585 return NULL;
11586 }
11587 expr_ty _res = NULL;
11588 int _mark = p->mark;
11589 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11590 p->error_indicator = 1;
11591 D(p->level--);
11592 return NULL;
11593 }
11594 int _start_lineno = p->tokens[_mark]->lineno;
11595 UNUSED(_start_lineno); // Only used by EXTRA macro
11596 int _start_col_offset = p->tokens[_mark]->col_offset;
11597 UNUSED(_start_col_offset); // Only used by EXTRA macro
11598 { // bitwise_xor '^' bitwise_and
11599 if (p->error_indicator) {
11600 D(p->level--);
11601 return NULL;
11602 }
11603 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
11604 Token * _literal;
11605 expr_ty a;
11606 expr_ty b;
11607 if (
11608 (a = bitwise_xor_rule(p)) // bitwise_xor
11609 &&
11610 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
11611 &&
11612 (b = bitwise_and_rule(p)) // bitwise_and
11613 )
11614 {
11615 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
11616 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11617 if (_token == NULL) {
11618 D(p->level--);
11619 return NULL;
11620 }
11621 int _end_lineno = _token->end_lineno;
11622 UNUSED(_end_lineno); // Only used by EXTRA macro
11623 int _end_col_offset = _token->end_col_offset;
11624 UNUSED(_end_col_offset); // Only used by EXTRA macro
11625 _res = _Py_BinOp ( a , BitXor , b , EXTRA );
11626 if (_res == NULL && PyErr_Occurred()) {
11627 p->error_indicator = 1;
11628 D(p->level--);
11629 return NULL;
11630 }
11631 goto done;
11632 }
11633 p->mark = _mark;
11634 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
11635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
11636 }
11637 { // bitwise_and
11638 if (p->error_indicator) {
11639 D(p->level--);
11640 return NULL;
11641 }
11642 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
11643 expr_ty bitwise_and_var;
11644 if (
11645 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
11646 )
11647 {
11648 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
11649 _res = bitwise_and_var;
11650 goto done;
11651 }
11652 p->mark = _mark;
11653 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
11654 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
11655 }
11656 _res = NULL;
11657 done:
11658 D(p->level--);
11659 return _res;
11660}
11661
11662// Left-recursive
11663// bitwise_and: bitwise_and '&' shift_expr | shift_expr
11664static expr_ty bitwise_and_raw(Parser *);
11665static expr_ty
11666bitwise_and_rule(Parser *p)
11667{
11668 D(p->level++);
11669 expr_ty _res = NULL;
11670 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
11671 D(p->level--);
11672 return _res;
11673 }
11674 int _mark = p->mark;
11675 int _resmark = p->mark;
11676 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080011677 int tmpvar_4 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
11678 if (tmpvar_4) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011679 D(p->level--);
11680 return _res;
11681 }
11682 p->mark = _mark;
11683 void *_raw = bitwise_and_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020011684 if (p->error_indicator)
11685 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011686 if (_raw == NULL || p->mark <= _resmark)
11687 break;
11688 _resmark = p->mark;
11689 _res = _raw;
11690 }
11691 p->mark = _resmark;
11692 D(p->level--);
11693 return _res;
11694}
11695static expr_ty
11696bitwise_and_raw(Parser *p)
11697{
11698 D(p->level++);
11699 if (p->error_indicator) {
11700 D(p->level--);
11701 return NULL;
11702 }
11703 expr_ty _res = NULL;
11704 int _mark = p->mark;
11705 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11706 p->error_indicator = 1;
11707 D(p->level--);
11708 return NULL;
11709 }
11710 int _start_lineno = p->tokens[_mark]->lineno;
11711 UNUSED(_start_lineno); // Only used by EXTRA macro
11712 int _start_col_offset = p->tokens[_mark]->col_offset;
11713 UNUSED(_start_col_offset); // Only used by EXTRA macro
11714 { // bitwise_and '&' shift_expr
11715 if (p->error_indicator) {
11716 D(p->level--);
11717 return NULL;
11718 }
11719 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
11720 Token * _literal;
11721 expr_ty a;
11722 expr_ty b;
11723 if (
11724 (a = bitwise_and_rule(p)) // bitwise_and
11725 &&
11726 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
11727 &&
11728 (b = shift_expr_rule(p)) // shift_expr
11729 )
11730 {
11731 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
11732 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11733 if (_token == NULL) {
11734 D(p->level--);
11735 return NULL;
11736 }
11737 int _end_lineno = _token->end_lineno;
11738 UNUSED(_end_lineno); // Only used by EXTRA macro
11739 int _end_col_offset = _token->end_col_offset;
11740 UNUSED(_end_col_offset); // Only used by EXTRA macro
11741 _res = _Py_BinOp ( a , BitAnd , b , EXTRA );
11742 if (_res == NULL && PyErr_Occurred()) {
11743 p->error_indicator = 1;
11744 D(p->level--);
11745 return NULL;
11746 }
11747 goto done;
11748 }
11749 p->mark = _mark;
11750 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
11751 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
11752 }
11753 { // shift_expr
11754 if (p->error_indicator) {
11755 D(p->level--);
11756 return NULL;
11757 }
11758 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
11759 expr_ty shift_expr_var;
11760 if (
11761 (shift_expr_var = shift_expr_rule(p)) // shift_expr
11762 )
11763 {
11764 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
11765 _res = shift_expr_var;
11766 goto done;
11767 }
11768 p->mark = _mark;
11769 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
11770 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
11771 }
11772 _res = NULL;
11773 done:
11774 D(p->level--);
11775 return _res;
11776}
11777
11778// Left-recursive
11779// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
11780static expr_ty shift_expr_raw(Parser *);
11781static expr_ty
11782shift_expr_rule(Parser *p)
11783{
11784 D(p->level++);
11785 expr_ty _res = NULL;
11786 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
11787 D(p->level--);
11788 return _res;
11789 }
11790 int _mark = p->mark;
11791 int _resmark = p->mark;
11792 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080011793 int tmpvar_5 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
11794 if (tmpvar_5) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011795 D(p->level--);
11796 return _res;
11797 }
11798 p->mark = _mark;
11799 void *_raw = shift_expr_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020011800 if (p->error_indicator)
11801 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011802 if (_raw == NULL || p->mark <= _resmark)
11803 break;
11804 _resmark = p->mark;
11805 _res = _raw;
11806 }
11807 p->mark = _resmark;
11808 D(p->level--);
11809 return _res;
11810}
11811static expr_ty
11812shift_expr_raw(Parser *p)
11813{
11814 D(p->level++);
11815 if (p->error_indicator) {
11816 D(p->level--);
11817 return NULL;
11818 }
11819 expr_ty _res = NULL;
11820 int _mark = p->mark;
11821 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11822 p->error_indicator = 1;
11823 D(p->level--);
11824 return NULL;
11825 }
11826 int _start_lineno = p->tokens[_mark]->lineno;
11827 UNUSED(_start_lineno); // Only used by EXTRA macro
11828 int _start_col_offset = p->tokens[_mark]->col_offset;
11829 UNUSED(_start_col_offset); // Only used by EXTRA macro
11830 { // shift_expr '<<' sum
11831 if (p->error_indicator) {
11832 D(p->level--);
11833 return NULL;
11834 }
11835 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
11836 Token * _literal;
11837 expr_ty a;
11838 expr_ty b;
11839 if (
11840 (a = shift_expr_rule(p)) // shift_expr
11841 &&
11842 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
11843 &&
11844 (b = sum_rule(p)) // sum
11845 )
11846 {
11847 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
11848 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11849 if (_token == NULL) {
11850 D(p->level--);
11851 return NULL;
11852 }
11853 int _end_lineno = _token->end_lineno;
11854 UNUSED(_end_lineno); // Only used by EXTRA macro
11855 int _end_col_offset = _token->end_col_offset;
11856 UNUSED(_end_col_offset); // Only used by EXTRA macro
11857 _res = _Py_BinOp ( a , LShift , b , EXTRA );
11858 if (_res == NULL && PyErr_Occurred()) {
11859 p->error_indicator = 1;
11860 D(p->level--);
11861 return NULL;
11862 }
11863 goto done;
11864 }
11865 p->mark = _mark;
11866 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
11867 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
11868 }
11869 { // shift_expr '>>' sum
11870 if (p->error_indicator) {
11871 D(p->level--);
11872 return NULL;
11873 }
11874 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
11875 Token * _literal;
11876 expr_ty a;
11877 expr_ty b;
11878 if (
11879 (a = shift_expr_rule(p)) // shift_expr
11880 &&
11881 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
11882 &&
11883 (b = sum_rule(p)) // sum
11884 )
11885 {
11886 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
11887 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11888 if (_token == NULL) {
11889 D(p->level--);
11890 return NULL;
11891 }
11892 int _end_lineno = _token->end_lineno;
11893 UNUSED(_end_lineno); // Only used by EXTRA macro
11894 int _end_col_offset = _token->end_col_offset;
11895 UNUSED(_end_col_offset); // Only used by EXTRA macro
11896 _res = _Py_BinOp ( a , RShift , b , EXTRA );
11897 if (_res == NULL && PyErr_Occurred()) {
11898 p->error_indicator = 1;
11899 D(p->level--);
11900 return NULL;
11901 }
11902 goto done;
11903 }
11904 p->mark = _mark;
11905 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
11906 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
11907 }
11908 { // sum
11909 if (p->error_indicator) {
11910 D(p->level--);
11911 return NULL;
11912 }
11913 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
11914 expr_ty sum_var;
11915 if (
11916 (sum_var = sum_rule(p)) // sum
11917 )
11918 {
11919 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
11920 _res = sum_var;
11921 goto done;
11922 }
11923 p->mark = _mark;
11924 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
11925 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
11926 }
11927 _res = NULL;
11928 done:
11929 D(p->level--);
11930 return _res;
11931}
11932
11933// Left-recursive
11934// sum: sum '+' term | sum '-' term | term
11935static expr_ty sum_raw(Parser *);
11936static expr_ty
11937sum_rule(Parser *p)
11938{
11939 D(p->level++);
11940 expr_ty _res = NULL;
11941 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
11942 D(p->level--);
11943 return _res;
11944 }
11945 int _mark = p->mark;
11946 int _resmark = p->mark;
11947 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080011948 int tmpvar_6 = _PyPegen_update_memo(p, _mark, sum_type, _res);
11949 if (tmpvar_6) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011950 D(p->level--);
11951 return _res;
11952 }
11953 p->mark = _mark;
11954 void *_raw = sum_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020011955 if (p->error_indicator)
11956 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011957 if (_raw == NULL || p->mark <= _resmark)
11958 break;
11959 _resmark = p->mark;
11960 _res = _raw;
11961 }
11962 p->mark = _resmark;
11963 D(p->level--);
11964 return _res;
11965}
11966static expr_ty
11967sum_raw(Parser *p)
11968{
11969 D(p->level++);
11970 if (p->error_indicator) {
11971 D(p->level--);
11972 return NULL;
11973 }
11974 expr_ty _res = NULL;
11975 int _mark = p->mark;
11976 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11977 p->error_indicator = 1;
11978 D(p->level--);
11979 return NULL;
11980 }
11981 int _start_lineno = p->tokens[_mark]->lineno;
11982 UNUSED(_start_lineno); // Only used by EXTRA macro
11983 int _start_col_offset = p->tokens[_mark]->col_offset;
11984 UNUSED(_start_col_offset); // Only used by EXTRA macro
11985 { // sum '+' term
11986 if (p->error_indicator) {
11987 D(p->level--);
11988 return NULL;
11989 }
11990 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
11991 Token * _literal;
11992 expr_ty a;
11993 expr_ty b;
11994 if (
11995 (a = sum_rule(p)) // sum
11996 &&
11997 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
11998 &&
11999 (b = term_rule(p)) // term
12000 )
12001 {
12002 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
12003 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12004 if (_token == NULL) {
12005 D(p->level--);
12006 return NULL;
12007 }
12008 int _end_lineno = _token->end_lineno;
12009 UNUSED(_end_lineno); // Only used by EXTRA macro
12010 int _end_col_offset = _token->end_col_offset;
12011 UNUSED(_end_col_offset); // Only used by EXTRA macro
12012 _res = _Py_BinOp ( a , Add , b , EXTRA );
12013 if (_res == NULL && PyErr_Occurred()) {
12014 p->error_indicator = 1;
12015 D(p->level--);
12016 return NULL;
12017 }
12018 goto done;
12019 }
12020 p->mark = _mark;
12021 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
12022 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
12023 }
12024 { // sum '-' term
12025 if (p->error_indicator) {
12026 D(p->level--);
12027 return NULL;
12028 }
12029 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
12030 Token * _literal;
12031 expr_ty a;
12032 expr_ty b;
12033 if (
12034 (a = sum_rule(p)) // sum
12035 &&
12036 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
12037 &&
12038 (b = term_rule(p)) // term
12039 )
12040 {
12041 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
12042 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12043 if (_token == NULL) {
12044 D(p->level--);
12045 return NULL;
12046 }
12047 int _end_lineno = _token->end_lineno;
12048 UNUSED(_end_lineno); // Only used by EXTRA macro
12049 int _end_col_offset = _token->end_col_offset;
12050 UNUSED(_end_col_offset); // Only used by EXTRA macro
12051 _res = _Py_BinOp ( a , Sub , b , EXTRA );
12052 if (_res == NULL && PyErr_Occurred()) {
12053 p->error_indicator = 1;
12054 D(p->level--);
12055 return NULL;
12056 }
12057 goto done;
12058 }
12059 p->mark = _mark;
12060 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
12061 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
12062 }
12063 { // term
12064 if (p->error_indicator) {
12065 D(p->level--);
12066 return NULL;
12067 }
12068 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
12069 expr_ty term_var;
12070 if (
12071 (term_var = term_rule(p)) // term
12072 )
12073 {
12074 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
12075 _res = term_var;
12076 goto done;
12077 }
12078 p->mark = _mark;
12079 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
12080 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
12081 }
12082 _res = NULL;
12083 done:
12084 D(p->level--);
12085 return _res;
12086}
12087
12088// Left-recursive
12089// term:
12090// | term '*' factor
12091// | term '/' factor
12092// | term '//' factor
12093// | term '%' factor
12094// | term '@' factor
12095// | factor
12096static expr_ty term_raw(Parser *);
12097static expr_ty
12098term_rule(Parser *p)
12099{
12100 D(p->level++);
12101 expr_ty _res = NULL;
12102 if (_PyPegen_is_memoized(p, term_type, &_res)) {
12103 D(p->level--);
12104 return _res;
12105 }
12106 int _mark = p->mark;
12107 int _resmark = p->mark;
12108 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012109 int tmpvar_7 = _PyPegen_update_memo(p, _mark, term_type, _res);
12110 if (tmpvar_7) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012111 D(p->level--);
12112 return _res;
12113 }
12114 p->mark = _mark;
12115 void *_raw = term_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012116 if (p->error_indicator)
12117 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012118 if (_raw == NULL || p->mark <= _resmark)
12119 break;
12120 _resmark = p->mark;
12121 _res = _raw;
12122 }
12123 p->mark = _resmark;
12124 D(p->level--);
12125 return _res;
12126}
12127static expr_ty
12128term_raw(Parser *p)
12129{
12130 D(p->level++);
12131 if (p->error_indicator) {
12132 D(p->level--);
12133 return NULL;
12134 }
12135 expr_ty _res = NULL;
12136 int _mark = p->mark;
12137 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12138 p->error_indicator = 1;
12139 D(p->level--);
12140 return NULL;
12141 }
12142 int _start_lineno = p->tokens[_mark]->lineno;
12143 UNUSED(_start_lineno); // Only used by EXTRA macro
12144 int _start_col_offset = p->tokens[_mark]->col_offset;
12145 UNUSED(_start_col_offset); // Only used by EXTRA macro
12146 { // term '*' factor
12147 if (p->error_indicator) {
12148 D(p->level--);
12149 return NULL;
12150 }
12151 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
12152 Token * _literal;
12153 expr_ty a;
12154 expr_ty b;
12155 if (
12156 (a = term_rule(p)) // term
12157 &&
12158 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
12159 &&
12160 (b = factor_rule(p)) // factor
12161 )
12162 {
12163 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
12164 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12165 if (_token == NULL) {
12166 D(p->level--);
12167 return NULL;
12168 }
12169 int _end_lineno = _token->end_lineno;
12170 UNUSED(_end_lineno); // Only used by EXTRA macro
12171 int _end_col_offset = _token->end_col_offset;
12172 UNUSED(_end_col_offset); // Only used by EXTRA macro
12173 _res = _Py_BinOp ( a , Mult , b , EXTRA );
12174 if (_res == NULL && PyErr_Occurred()) {
12175 p->error_indicator = 1;
12176 D(p->level--);
12177 return NULL;
12178 }
12179 goto done;
12180 }
12181 p->mark = _mark;
12182 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12183 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
12184 }
12185 { // term '/' factor
12186 if (p->error_indicator) {
12187 D(p->level--);
12188 return NULL;
12189 }
12190 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
12191 Token * _literal;
12192 expr_ty a;
12193 expr_ty b;
12194 if (
12195 (a = term_rule(p)) // term
12196 &&
12197 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
12198 &&
12199 (b = factor_rule(p)) // factor
12200 )
12201 {
12202 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
12203 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12204 if (_token == NULL) {
12205 D(p->level--);
12206 return NULL;
12207 }
12208 int _end_lineno = _token->end_lineno;
12209 UNUSED(_end_lineno); // Only used by EXTRA macro
12210 int _end_col_offset = _token->end_col_offset;
12211 UNUSED(_end_col_offset); // Only used by EXTRA macro
12212 _res = _Py_BinOp ( a , Div , b , EXTRA );
12213 if (_res == NULL && PyErr_Occurred()) {
12214 p->error_indicator = 1;
12215 D(p->level--);
12216 return NULL;
12217 }
12218 goto done;
12219 }
12220 p->mark = _mark;
12221 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12222 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
12223 }
12224 { // term '//' factor
12225 if (p->error_indicator) {
12226 D(p->level--);
12227 return NULL;
12228 }
12229 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
12230 Token * _literal;
12231 expr_ty a;
12232 expr_ty b;
12233 if (
12234 (a = term_rule(p)) // term
12235 &&
12236 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
12237 &&
12238 (b = factor_rule(p)) // factor
12239 )
12240 {
12241 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
12242 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12243 if (_token == NULL) {
12244 D(p->level--);
12245 return NULL;
12246 }
12247 int _end_lineno = _token->end_lineno;
12248 UNUSED(_end_lineno); // Only used by EXTRA macro
12249 int _end_col_offset = _token->end_col_offset;
12250 UNUSED(_end_col_offset); // Only used by EXTRA macro
12251 _res = _Py_BinOp ( a , FloorDiv , b , EXTRA );
12252 if (_res == NULL && PyErr_Occurred()) {
12253 p->error_indicator = 1;
12254 D(p->level--);
12255 return NULL;
12256 }
12257 goto done;
12258 }
12259 p->mark = _mark;
12260 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12261 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
12262 }
12263 { // term '%' factor
12264 if (p->error_indicator) {
12265 D(p->level--);
12266 return NULL;
12267 }
12268 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
12269 Token * _literal;
12270 expr_ty a;
12271 expr_ty b;
12272 if (
12273 (a = term_rule(p)) // term
12274 &&
12275 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
12276 &&
12277 (b = factor_rule(p)) // factor
12278 )
12279 {
12280 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
12281 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12282 if (_token == NULL) {
12283 D(p->level--);
12284 return NULL;
12285 }
12286 int _end_lineno = _token->end_lineno;
12287 UNUSED(_end_lineno); // Only used by EXTRA macro
12288 int _end_col_offset = _token->end_col_offset;
12289 UNUSED(_end_col_offset); // Only used by EXTRA macro
12290 _res = _Py_BinOp ( a , Mod , b , EXTRA );
12291 if (_res == NULL && PyErr_Occurred()) {
12292 p->error_indicator = 1;
12293 D(p->level--);
12294 return NULL;
12295 }
12296 goto done;
12297 }
12298 p->mark = _mark;
12299 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12300 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
12301 }
12302 { // term '@' factor
12303 if (p->error_indicator) {
12304 D(p->level--);
12305 return NULL;
12306 }
12307 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
12308 Token * _literal;
12309 expr_ty a;
12310 expr_ty b;
12311 if (
12312 (a = term_rule(p)) // term
12313 &&
12314 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
12315 &&
12316 (b = factor_rule(p)) // factor
12317 )
12318 {
12319 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
12320 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12321 if (_token == NULL) {
12322 D(p->level--);
12323 return NULL;
12324 }
12325 int _end_lineno = _token->end_lineno;
12326 UNUSED(_end_lineno); // Only used by EXTRA macro
12327 int _end_col_offset = _token->end_col_offset;
12328 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012329 _res = CHECK_VERSION ( expr_ty , 5 , "The '@' operator is" , _Py_BinOp ( a , MatMult , b , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012330 if (_res == NULL && PyErr_Occurred()) {
12331 p->error_indicator = 1;
12332 D(p->level--);
12333 return NULL;
12334 }
12335 goto done;
12336 }
12337 p->mark = _mark;
12338 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12339 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
12340 }
12341 { // factor
12342 if (p->error_indicator) {
12343 D(p->level--);
12344 return NULL;
12345 }
12346 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
12347 expr_ty factor_var;
12348 if (
12349 (factor_var = factor_rule(p)) // factor
12350 )
12351 {
12352 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
12353 _res = factor_var;
12354 goto done;
12355 }
12356 p->mark = _mark;
12357 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
12358 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
12359 }
12360 _res = NULL;
12361 done:
12362 D(p->level--);
12363 return _res;
12364}
12365
12366// factor: '+' factor | '-' factor | '~' factor | power
12367static expr_ty
12368factor_rule(Parser *p)
12369{
12370 D(p->level++);
12371 if (p->error_indicator) {
12372 D(p->level--);
12373 return NULL;
12374 }
12375 expr_ty _res = NULL;
12376 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
12377 D(p->level--);
12378 return _res;
12379 }
12380 int _mark = p->mark;
12381 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12382 p->error_indicator = 1;
12383 D(p->level--);
12384 return NULL;
12385 }
12386 int _start_lineno = p->tokens[_mark]->lineno;
12387 UNUSED(_start_lineno); // Only used by EXTRA macro
12388 int _start_col_offset = p->tokens[_mark]->col_offset;
12389 UNUSED(_start_col_offset); // Only used by EXTRA macro
12390 { // '+' factor
12391 if (p->error_indicator) {
12392 D(p->level--);
12393 return NULL;
12394 }
12395 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
12396 Token * _literal;
12397 expr_ty a;
12398 if (
12399 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
12400 &&
12401 (a = factor_rule(p)) // factor
12402 )
12403 {
12404 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
12405 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12406 if (_token == NULL) {
12407 D(p->level--);
12408 return NULL;
12409 }
12410 int _end_lineno = _token->end_lineno;
12411 UNUSED(_end_lineno); // Only used by EXTRA macro
12412 int _end_col_offset = _token->end_col_offset;
12413 UNUSED(_end_col_offset); // Only used by EXTRA macro
12414 _res = _Py_UnaryOp ( UAdd , a , EXTRA );
12415 if (_res == NULL && PyErr_Occurred()) {
12416 p->error_indicator = 1;
12417 D(p->level--);
12418 return NULL;
12419 }
12420 goto done;
12421 }
12422 p->mark = _mark;
12423 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
12424 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
12425 }
12426 { // '-' factor
12427 if (p->error_indicator) {
12428 D(p->level--);
12429 return NULL;
12430 }
12431 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
12432 Token * _literal;
12433 expr_ty a;
12434 if (
12435 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
12436 &&
12437 (a = factor_rule(p)) // factor
12438 )
12439 {
12440 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
12441 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12442 if (_token == NULL) {
12443 D(p->level--);
12444 return NULL;
12445 }
12446 int _end_lineno = _token->end_lineno;
12447 UNUSED(_end_lineno); // Only used by EXTRA macro
12448 int _end_col_offset = _token->end_col_offset;
12449 UNUSED(_end_col_offset); // Only used by EXTRA macro
12450 _res = _Py_UnaryOp ( USub , a , EXTRA );
12451 if (_res == NULL && PyErr_Occurred()) {
12452 p->error_indicator = 1;
12453 D(p->level--);
12454 return NULL;
12455 }
12456 goto done;
12457 }
12458 p->mark = _mark;
12459 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
12460 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
12461 }
12462 { // '~' factor
12463 if (p->error_indicator) {
12464 D(p->level--);
12465 return NULL;
12466 }
12467 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
12468 Token * _literal;
12469 expr_ty a;
12470 if (
12471 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
12472 &&
12473 (a = factor_rule(p)) // factor
12474 )
12475 {
12476 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
12477 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12478 if (_token == NULL) {
12479 D(p->level--);
12480 return NULL;
12481 }
12482 int _end_lineno = _token->end_lineno;
12483 UNUSED(_end_lineno); // Only used by EXTRA macro
12484 int _end_col_offset = _token->end_col_offset;
12485 UNUSED(_end_col_offset); // Only used by EXTRA macro
12486 _res = _Py_UnaryOp ( Invert , a , EXTRA );
12487 if (_res == NULL && PyErr_Occurred()) {
12488 p->error_indicator = 1;
12489 D(p->level--);
12490 return NULL;
12491 }
12492 goto done;
12493 }
12494 p->mark = _mark;
12495 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
12496 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
12497 }
12498 { // power
12499 if (p->error_indicator) {
12500 D(p->level--);
12501 return NULL;
12502 }
12503 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
12504 expr_ty power_var;
12505 if (
12506 (power_var = power_rule(p)) // power
12507 )
12508 {
12509 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
12510 _res = power_var;
12511 goto done;
12512 }
12513 p->mark = _mark;
12514 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
12515 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
12516 }
12517 _res = NULL;
12518 done:
12519 _PyPegen_insert_memo(p, _mark, factor_type, _res);
12520 D(p->level--);
12521 return _res;
12522}
12523
12524// power: await_primary '**' factor | await_primary
12525static expr_ty
12526power_rule(Parser *p)
12527{
12528 D(p->level++);
12529 if (p->error_indicator) {
12530 D(p->level--);
12531 return NULL;
12532 }
12533 expr_ty _res = NULL;
12534 int _mark = p->mark;
12535 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12536 p->error_indicator = 1;
12537 D(p->level--);
12538 return NULL;
12539 }
12540 int _start_lineno = p->tokens[_mark]->lineno;
12541 UNUSED(_start_lineno); // Only used by EXTRA macro
12542 int _start_col_offset = p->tokens[_mark]->col_offset;
12543 UNUSED(_start_col_offset); // Only used by EXTRA macro
12544 { // await_primary '**' factor
12545 if (p->error_indicator) {
12546 D(p->level--);
12547 return NULL;
12548 }
12549 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
12550 Token * _literal;
12551 expr_ty a;
12552 expr_ty b;
12553 if (
12554 (a = await_primary_rule(p)) // await_primary
12555 &&
12556 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
12557 &&
12558 (b = factor_rule(p)) // factor
12559 )
12560 {
12561 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
12562 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12563 if (_token == NULL) {
12564 D(p->level--);
12565 return NULL;
12566 }
12567 int _end_lineno = _token->end_lineno;
12568 UNUSED(_end_lineno); // Only used by EXTRA macro
12569 int _end_col_offset = _token->end_col_offset;
12570 UNUSED(_end_col_offset); // Only used by EXTRA macro
12571 _res = _Py_BinOp ( a , Pow , b , EXTRA );
12572 if (_res == NULL && PyErr_Occurred()) {
12573 p->error_indicator = 1;
12574 D(p->level--);
12575 return NULL;
12576 }
12577 goto done;
12578 }
12579 p->mark = _mark;
12580 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
12581 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
12582 }
12583 { // await_primary
12584 if (p->error_indicator) {
12585 D(p->level--);
12586 return NULL;
12587 }
12588 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
12589 expr_ty await_primary_var;
12590 if (
12591 (await_primary_var = await_primary_rule(p)) // await_primary
12592 )
12593 {
12594 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
12595 _res = await_primary_var;
12596 goto done;
12597 }
12598 p->mark = _mark;
12599 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
12600 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
12601 }
12602 _res = NULL;
12603 done:
12604 D(p->level--);
12605 return _res;
12606}
12607
12608// await_primary: AWAIT primary | primary
12609static expr_ty
12610await_primary_rule(Parser *p)
12611{
12612 D(p->level++);
12613 if (p->error_indicator) {
12614 D(p->level--);
12615 return NULL;
12616 }
12617 expr_ty _res = NULL;
12618 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
12619 D(p->level--);
12620 return _res;
12621 }
12622 int _mark = p->mark;
12623 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12624 p->error_indicator = 1;
12625 D(p->level--);
12626 return NULL;
12627 }
12628 int _start_lineno = p->tokens[_mark]->lineno;
12629 UNUSED(_start_lineno); // Only used by EXTRA macro
12630 int _start_col_offset = p->tokens[_mark]->col_offset;
12631 UNUSED(_start_col_offset); // Only used by EXTRA macro
12632 { // AWAIT primary
12633 if (p->error_indicator) {
12634 D(p->level--);
12635 return NULL;
12636 }
12637 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
12638 expr_ty a;
12639 Token * await_var;
12640 if (
12641 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
12642 &&
12643 (a = primary_rule(p)) // primary
12644 )
12645 {
12646 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
12647 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12648 if (_token == NULL) {
12649 D(p->level--);
12650 return NULL;
12651 }
12652 int _end_lineno = _token->end_lineno;
12653 UNUSED(_end_lineno); // Only used by EXTRA macro
12654 int _end_col_offset = _token->end_col_offset;
12655 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012656 _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _Py_Await ( a , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012657 if (_res == NULL && PyErr_Occurred()) {
12658 p->error_indicator = 1;
12659 D(p->level--);
12660 return NULL;
12661 }
12662 goto done;
12663 }
12664 p->mark = _mark;
12665 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
12666 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
12667 }
12668 { // primary
12669 if (p->error_indicator) {
12670 D(p->level--);
12671 return NULL;
12672 }
12673 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
12674 expr_ty primary_var;
12675 if (
12676 (primary_var = primary_rule(p)) // primary
12677 )
12678 {
12679 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
12680 _res = primary_var;
12681 goto done;
12682 }
12683 p->mark = _mark;
12684 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
12685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
12686 }
12687 _res = NULL;
12688 done:
12689 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
12690 D(p->level--);
12691 return _res;
12692}
12693
12694// Left-recursive
12695// primary:
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020012696// | invalid_primary
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012697// | primary '.' NAME
12698// | primary genexp
12699// | primary '(' arguments? ')'
12700// | primary '[' slices ']'
12701// | atom
12702static expr_ty primary_raw(Parser *);
12703static expr_ty
12704primary_rule(Parser *p)
12705{
12706 D(p->level++);
12707 expr_ty _res = NULL;
12708 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
12709 D(p->level--);
12710 return _res;
12711 }
12712 int _mark = p->mark;
12713 int _resmark = p->mark;
12714 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012715 int tmpvar_8 = _PyPegen_update_memo(p, _mark, primary_type, _res);
12716 if (tmpvar_8) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012717 D(p->level--);
12718 return _res;
12719 }
12720 p->mark = _mark;
12721 void *_raw = primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012722 if (p->error_indicator)
12723 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012724 if (_raw == NULL || p->mark <= _resmark)
12725 break;
12726 _resmark = p->mark;
12727 _res = _raw;
12728 }
12729 p->mark = _resmark;
12730 D(p->level--);
12731 return _res;
12732}
12733static expr_ty
12734primary_raw(Parser *p)
12735{
12736 D(p->level++);
12737 if (p->error_indicator) {
12738 D(p->level--);
12739 return NULL;
12740 }
12741 expr_ty _res = NULL;
12742 int _mark = p->mark;
12743 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12744 p->error_indicator = 1;
12745 D(p->level--);
12746 return NULL;
12747 }
12748 int _start_lineno = p->tokens[_mark]->lineno;
12749 UNUSED(_start_lineno); // Only used by EXTRA macro
12750 int _start_col_offset = p->tokens[_mark]->col_offset;
12751 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020012752 if (p->call_invalid_rules) { // invalid_primary
12753 if (p->error_indicator) {
12754 D(p->level--);
12755 return NULL;
12756 }
12757 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
12758 void *invalid_primary_var;
12759 if (
12760 (invalid_primary_var = invalid_primary_rule(p)) // invalid_primary
12761 )
12762 {
12763 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
12764 _res = invalid_primary_var;
12765 goto done;
12766 }
12767 p->mark = _mark;
12768 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
12769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
12770 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012771 { // primary '.' NAME
12772 if (p->error_indicator) {
12773 D(p->level--);
12774 return NULL;
12775 }
12776 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
12777 Token * _literal;
12778 expr_ty a;
12779 expr_ty b;
12780 if (
12781 (a = primary_rule(p)) // primary
12782 &&
12783 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
12784 &&
12785 (b = _PyPegen_name_token(p)) // NAME
12786 )
12787 {
12788 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
12789 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12790 if (_token == NULL) {
12791 D(p->level--);
12792 return NULL;
12793 }
12794 int _end_lineno = _token->end_lineno;
12795 UNUSED(_end_lineno); // Only used by EXTRA macro
12796 int _end_col_offset = _token->end_col_offset;
12797 UNUSED(_end_col_offset); // Only used by EXTRA macro
12798 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
12799 if (_res == NULL && PyErr_Occurred()) {
12800 p->error_indicator = 1;
12801 D(p->level--);
12802 return NULL;
12803 }
12804 goto done;
12805 }
12806 p->mark = _mark;
12807 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
12808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
12809 }
12810 { // primary genexp
12811 if (p->error_indicator) {
12812 D(p->level--);
12813 return NULL;
12814 }
12815 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
12816 expr_ty a;
12817 expr_ty b;
12818 if (
12819 (a = primary_rule(p)) // primary
12820 &&
12821 (b = genexp_rule(p)) // genexp
12822 )
12823 {
12824 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
12825 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12826 if (_token == NULL) {
12827 D(p->level--);
12828 return NULL;
12829 }
12830 int _end_lineno = _token->end_lineno;
12831 UNUSED(_end_lineno); // Only used by EXTRA macro
12832 int _end_col_offset = _token->end_col_offset;
12833 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012834 _res = _Py_Call ( a , CHECK ( asdl_expr_seq * , ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012835 if (_res == NULL && PyErr_Occurred()) {
12836 p->error_indicator = 1;
12837 D(p->level--);
12838 return NULL;
12839 }
12840 goto done;
12841 }
12842 p->mark = _mark;
12843 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
12844 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
12845 }
12846 { // primary '(' arguments? ')'
12847 if (p->error_indicator) {
12848 D(p->level--);
12849 return NULL;
12850 }
12851 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
12852 Token * _literal;
12853 Token * _literal_1;
12854 expr_ty a;
12855 void *b;
12856 if (
12857 (a = primary_rule(p)) // primary
12858 &&
12859 (_literal = _PyPegen_expect_token(p, 7)) // token='('
12860 &&
12861 (b = arguments_rule(p), 1) // arguments?
12862 &&
12863 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
12864 )
12865 {
12866 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
12867 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12868 if (_token == NULL) {
12869 D(p->level--);
12870 return NULL;
12871 }
12872 int _end_lineno = _token->end_lineno;
12873 UNUSED(_end_lineno); // Only used by EXTRA macro
12874 int _end_col_offset = _token->end_col_offset;
12875 UNUSED(_end_col_offset); // Only used by EXTRA macro
12876 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
12877 if (_res == NULL && PyErr_Occurred()) {
12878 p->error_indicator = 1;
12879 D(p->level--);
12880 return NULL;
12881 }
12882 goto done;
12883 }
12884 p->mark = _mark;
12885 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
12886 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
12887 }
12888 { // primary '[' slices ']'
12889 if (p->error_indicator) {
12890 D(p->level--);
12891 return NULL;
12892 }
12893 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
12894 Token * _literal;
12895 Token * _literal_1;
12896 expr_ty a;
12897 expr_ty b;
12898 if (
12899 (a = primary_rule(p)) // primary
12900 &&
12901 (_literal = _PyPegen_expect_token(p, 9)) // token='['
12902 &&
12903 (b = slices_rule(p)) // slices
12904 &&
12905 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
12906 )
12907 {
12908 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
12909 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12910 if (_token == NULL) {
12911 D(p->level--);
12912 return NULL;
12913 }
12914 int _end_lineno = _token->end_lineno;
12915 UNUSED(_end_lineno); // Only used by EXTRA macro
12916 int _end_col_offset = _token->end_col_offset;
12917 UNUSED(_end_col_offset); // Only used by EXTRA macro
12918 _res = _Py_Subscript ( a , b , Load , EXTRA );
12919 if (_res == NULL && PyErr_Occurred()) {
12920 p->error_indicator = 1;
12921 D(p->level--);
12922 return NULL;
12923 }
12924 goto done;
12925 }
12926 p->mark = _mark;
12927 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
12928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
12929 }
12930 { // atom
12931 if (p->error_indicator) {
12932 D(p->level--);
12933 return NULL;
12934 }
12935 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
12936 expr_ty atom_var;
12937 if (
12938 (atom_var = atom_rule(p)) // atom
12939 )
12940 {
12941 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
12942 _res = atom_var;
12943 goto done;
12944 }
12945 p->mark = _mark;
12946 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
12947 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
12948 }
12949 _res = NULL;
12950 done:
12951 D(p->level--);
12952 return _res;
12953}
12954
12955// slices: slice !',' | ','.slice+ ','?
12956static expr_ty
12957slices_rule(Parser *p)
12958{
12959 D(p->level++);
12960 if (p->error_indicator) {
12961 D(p->level--);
12962 return NULL;
12963 }
12964 expr_ty _res = NULL;
12965 int _mark = p->mark;
12966 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12967 p->error_indicator = 1;
12968 D(p->level--);
12969 return NULL;
12970 }
12971 int _start_lineno = p->tokens[_mark]->lineno;
12972 UNUSED(_start_lineno); // Only used by EXTRA macro
12973 int _start_col_offset = p->tokens[_mark]->col_offset;
12974 UNUSED(_start_col_offset); // Only used by EXTRA macro
12975 { // slice !','
12976 if (p->error_indicator) {
12977 D(p->level--);
12978 return NULL;
12979 }
12980 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
12981 expr_ty a;
12982 if (
12983 (a = slice_rule(p)) // slice
12984 &&
12985 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
12986 )
12987 {
12988 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
12989 _res = a;
12990 if (_res == NULL && PyErr_Occurred()) {
12991 p->error_indicator = 1;
12992 D(p->level--);
12993 return NULL;
12994 }
12995 goto done;
12996 }
12997 p->mark = _mark;
12998 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
12999 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
13000 }
13001 { // ','.slice+ ','?
13002 if (p->error_indicator) {
13003 D(p->level--);
13004 return NULL;
13005 }
13006 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
13007 void *_opt_var;
13008 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010013009 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013010 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013011 (a = (asdl_expr_seq*)_gather_108_rule(p)) // ','.slice+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013012 &&
13013 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
13014 )
13015 {
13016 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
13017 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13018 if (_token == NULL) {
13019 D(p->level--);
13020 return NULL;
13021 }
13022 int _end_lineno = _token->end_lineno;
13023 UNUSED(_end_lineno); // Only used by EXTRA macro
13024 int _end_col_offset = _token->end_col_offset;
13025 UNUSED(_end_col_offset); // Only used by EXTRA macro
13026 _res = _Py_Tuple ( a , Load , EXTRA );
13027 if (_res == NULL && PyErr_Occurred()) {
13028 p->error_indicator = 1;
13029 D(p->level--);
13030 return NULL;
13031 }
13032 goto done;
13033 }
13034 p->mark = _mark;
13035 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
13036 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
13037 }
13038 _res = NULL;
13039 done:
13040 D(p->level--);
13041 return _res;
13042}
13043
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013044// slice: expression? ':' expression? [':' expression?] | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013045static expr_ty
13046slice_rule(Parser *p)
13047{
13048 D(p->level++);
13049 if (p->error_indicator) {
13050 D(p->level--);
13051 return NULL;
13052 }
13053 expr_ty _res = NULL;
13054 int _mark = p->mark;
13055 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13056 p->error_indicator = 1;
13057 D(p->level--);
13058 return NULL;
13059 }
13060 int _start_lineno = p->tokens[_mark]->lineno;
13061 UNUSED(_start_lineno); // Only used by EXTRA macro
13062 int _start_col_offset = p->tokens[_mark]->col_offset;
13063 UNUSED(_start_col_offset); // Only used by EXTRA macro
13064 { // expression? ':' expression? [':' expression?]
13065 if (p->error_indicator) {
13066 D(p->level--);
13067 return NULL;
13068 }
13069 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
13070 Token * _literal;
13071 void *a;
13072 void *b;
13073 void *c;
13074 if (
13075 (a = expression_rule(p), 1) // expression?
13076 &&
13077 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
13078 &&
13079 (b = expression_rule(p), 1) // expression?
13080 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013081 (c = _tmp_110_rule(p), 1) // [':' expression?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013082 )
13083 {
13084 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
13085 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13086 if (_token == NULL) {
13087 D(p->level--);
13088 return NULL;
13089 }
13090 int _end_lineno = _token->end_lineno;
13091 UNUSED(_end_lineno); // Only used by EXTRA macro
13092 int _end_col_offset = _token->end_col_offset;
13093 UNUSED(_end_col_offset); // Only used by EXTRA macro
13094 _res = _Py_Slice ( a , b , c , EXTRA );
13095 if (_res == NULL && PyErr_Occurred()) {
13096 p->error_indicator = 1;
13097 D(p->level--);
13098 return NULL;
13099 }
13100 goto done;
13101 }
13102 p->mark = _mark;
13103 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
13104 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
13105 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013106 { // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013107 if (p->error_indicator) {
13108 D(p->level--);
13109 return NULL;
13110 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013111 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013112 expr_ty a;
13113 if (
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013114 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013115 )
13116 {
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013117 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013118 _res = a;
13119 if (_res == NULL && PyErr_Occurred()) {
13120 p->error_indicator = 1;
13121 D(p->level--);
13122 return NULL;
13123 }
13124 goto done;
13125 }
13126 p->mark = _mark;
13127 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020013128 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013129 }
13130 _res = NULL;
13131 done:
13132 D(p->level--);
13133 return _res;
13134}
13135
13136// atom:
13137// | NAME
13138// | 'True'
13139// | 'False'
13140// | 'None'
13141// | &STRING strings
13142// | NUMBER
13143// | &'(' (tuple | group | genexp)
13144// | &'[' (list | listcomp)
13145// | &'{' (dict | set | dictcomp | setcomp)
13146// | '...'
13147static expr_ty
13148atom_rule(Parser *p)
13149{
13150 D(p->level++);
13151 if (p->error_indicator) {
13152 D(p->level--);
13153 return NULL;
13154 }
13155 expr_ty _res = NULL;
13156 int _mark = p->mark;
13157 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13158 p->error_indicator = 1;
13159 D(p->level--);
13160 return NULL;
13161 }
13162 int _start_lineno = p->tokens[_mark]->lineno;
13163 UNUSED(_start_lineno); // Only used by EXTRA macro
13164 int _start_col_offset = p->tokens[_mark]->col_offset;
13165 UNUSED(_start_col_offset); // Only used by EXTRA macro
13166 { // NAME
13167 if (p->error_indicator) {
13168 D(p->level--);
13169 return NULL;
13170 }
13171 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
13172 expr_ty name_var;
13173 if (
13174 (name_var = _PyPegen_name_token(p)) // NAME
13175 )
13176 {
13177 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
13178 _res = name_var;
13179 goto done;
13180 }
13181 p->mark = _mark;
13182 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13183 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
13184 }
13185 { // 'True'
13186 if (p->error_indicator) {
13187 D(p->level--);
13188 return NULL;
13189 }
13190 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
13191 Token * _keyword;
13192 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013193 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013194 )
13195 {
13196 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
13197 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13198 if (_token == NULL) {
13199 D(p->level--);
13200 return NULL;
13201 }
13202 int _end_lineno = _token->end_lineno;
13203 UNUSED(_end_lineno); // Only used by EXTRA macro
13204 int _end_col_offset = _token->end_col_offset;
13205 UNUSED(_end_col_offset); // Only used by EXTRA macro
13206 _res = _Py_Constant ( Py_True , NULL , EXTRA );
13207 if (_res == NULL && PyErr_Occurred()) {
13208 p->error_indicator = 1;
13209 D(p->level--);
13210 return NULL;
13211 }
13212 goto done;
13213 }
13214 p->mark = _mark;
13215 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13216 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
13217 }
13218 { // 'False'
13219 if (p->error_indicator) {
13220 D(p->level--);
13221 return NULL;
13222 }
13223 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
13224 Token * _keyword;
13225 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013226 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013227 )
13228 {
13229 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
13230 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13231 if (_token == NULL) {
13232 D(p->level--);
13233 return NULL;
13234 }
13235 int _end_lineno = _token->end_lineno;
13236 UNUSED(_end_lineno); // Only used by EXTRA macro
13237 int _end_col_offset = _token->end_col_offset;
13238 UNUSED(_end_col_offset); // Only used by EXTRA macro
13239 _res = _Py_Constant ( Py_False , NULL , EXTRA );
13240 if (_res == NULL && PyErr_Occurred()) {
13241 p->error_indicator = 1;
13242 D(p->level--);
13243 return NULL;
13244 }
13245 goto done;
13246 }
13247 p->mark = _mark;
13248 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13249 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
13250 }
13251 { // 'None'
13252 if (p->error_indicator) {
13253 D(p->level--);
13254 return NULL;
13255 }
13256 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
13257 Token * _keyword;
13258 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013259 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013260 )
13261 {
13262 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
13263 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13264 if (_token == NULL) {
13265 D(p->level--);
13266 return NULL;
13267 }
13268 int _end_lineno = _token->end_lineno;
13269 UNUSED(_end_lineno); // Only used by EXTRA macro
13270 int _end_col_offset = _token->end_col_offset;
13271 UNUSED(_end_col_offset); // Only used by EXTRA macro
13272 _res = _Py_Constant ( Py_None , NULL , EXTRA );
13273 if (_res == NULL && PyErr_Occurred()) {
13274 p->error_indicator = 1;
13275 D(p->level--);
13276 return NULL;
13277 }
13278 goto done;
13279 }
13280 p->mark = _mark;
13281 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
13283 }
13284 { // &STRING strings
13285 if (p->error_indicator) {
13286 D(p->level--);
13287 return NULL;
13288 }
13289 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
13290 expr_ty strings_var;
13291 if (
13292 _PyPegen_lookahead(1, _PyPegen_string_token, p)
13293 &&
13294 (strings_var = strings_rule(p)) // strings
13295 )
13296 {
13297 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
13298 _res = strings_var;
13299 goto done;
13300 }
13301 p->mark = _mark;
13302 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13303 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
13304 }
13305 { // NUMBER
13306 if (p->error_indicator) {
13307 D(p->level--);
13308 return NULL;
13309 }
13310 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
13311 expr_ty number_var;
13312 if (
13313 (number_var = _PyPegen_number_token(p)) // NUMBER
13314 )
13315 {
13316 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
13317 _res = number_var;
13318 goto done;
13319 }
13320 p->mark = _mark;
13321 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13322 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
13323 }
13324 { // &'(' (tuple | group | genexp)
13325 if (p->error_indicator) {
13326 D(p->level--);
13327 return NULL;
13328 }
13329 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080013330 void *_tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013331 if (
13332 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
13333 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013334 (_tmp_111_var = _tmp_111_rule(p)) // tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013335 )
13336 {
13337 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 -080013338 _res = _tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013339 goto done;
13340 }
13341 p->mark = _mark;
13342 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13343 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
13344 }
13345 { // &'[' (list | listcomp)
13346 if (p->error_indicator) {
13347 D(p->level--);
13348 return NULL;
13349 }
13350 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080013351 void *_tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013352 if (
13353 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
13354 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013355 (_tmp_112_var = _tmp_112_rule(p)) // list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013356 )
13357 {
13358 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080013359 _res = _tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013360 goto done;
13361 }
13362 p->mark = _mark;
13363 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13364 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
13365 }
13366 { // &'{' (dict | set | dictcomp | setcomp)
13367 if (p->error_indicator) {
13368 D(p->level--);
13369 return NULL;
13370 }
13371 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 -080013372 void *_tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013373 if (
13374 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
13375 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013376 (_tmp_113_var = _tmp_113_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013377 )
13378 {
13379 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 -080013380 _res = _tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013381 goto done;
13382 }
13383 p->mark = _mark;
13384 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13385 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
13386 }
13387 { // '...'
13388 if (p->error_indicator) {
13389 D(p->level--);
13390 return NULL;
13391 }
13392 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
13393 Token * _literal;
13394 if (
13395 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
13396 )
13397 {
13398 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
13399 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13400 if (_token == NULL) {
13401 D(p->level--);
13402 return NULL;
13403 }
13404 int _end_lineno = _token->end_lineno;
13405 UNUSED(_end_lineno); // Only used by EXTRA macro
13406 int _end_col_offset = _token->end_col_offset;
13407 UNUSED(_end_col_offset); // Only used by EXTRA macro
13408 _res = _Py_Constant ( Py_Ellipsis , NULL , EXTRA );
13409 if (_res == NULL && PyErr_Occurred()) {
13410 p->error_indicator = 1;
13411 D(p->level--);
13412 return NULL;
13413 }
13414 goto done;
13415 }
13416 p->mark = _mark;
13417 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
13418 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
13419 }
13420 _res = NULL;
13421 done:
13422 D(p->level--);
13423 return _res;
13424}
13425
13426// strings: STRING+
13427static expr_ty
13428strings_rule(Parser *p)
13429{
13430 D(p->level++);
13431 if (p->error_indicator) {
13432 D(p->level--);
13433 return NULL;
13434 }
13435 expr_ty _res = NULL;
13436 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
13437 D(p->level--);
13438 return _res;
13439 }
13440 int _mark = p->mark;
13441 { // STRING+
13442 if (p->error_indicator) {
13443 D(p->level--);
13444 return NULL;
13445 }
13446 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
13447 asdl_seq * a;
13448 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080013449 (a = _loop1_114_rule(p)) // STRING+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013450 )
13451 {
13452 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
13453 _res = _PyPegen_concatenate_strings ( p , a );
13454 if (_res == NULL && PyErr_Occurred()) {
13455 p->error_indicator = 1;
13456 D(p->level--);
13457 return NULL;
13458 }
13459 goto done;
13460 }
13461 p->mark = _mark;
13462 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
13463 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
13464 }
13465 _res = NULL;
13466 done:
13467 _PyPegen_insert_memo(p, _mark, strings_type, _res);
13468 D(p->level--);
13469 return _res;
13470}
13471
13472// list: '[' star_named_expressions? ']'
13473static expr_ty
13474list_rule(Parser *p)
13475{
13476 D(p->level++);
13477 if (p->error_indicator) {
13478 D(p->level--);
13479 return NULL;
13480 }
13481 expr_ty _res = NULL;
13482 int _mark = p->mark;
13483 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13484 p->error_indicator = 1;
13485 D(p->level--);
13486 return NULL;
13487 }
13488 int _start_lineno = p->tokens[_mark]->lineno;
13489 UNUSED(_start_lineno); // Only used by EXTRA macro
13490 int _start_col_offset = p->tokens[_mark]->col_offset;
13491 UNUSED(_start_col_offset); // Only used by EXTRA macro
13492 { // '[' star_named_expressions? ']'
13493 if (p->error_indicator) {
13494 D(p->level--);
13495 return NULL;
13496 }
13497 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
13498 Token * _literal;
13499 Token * _literal_1;
13500 void *a;
13501 if (
13502 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13503 &&
13504 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
13505 &&
13506 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13507 )
13508 {
13509 D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
13510 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13511 if (_token == NULL) {
13512 D(p->level--);
13513 return NULL;
13514 }
13515 int _end_lineno = _token->end_lineno;
13516 UNUSED(_end_lineno); // Only used by EXTRA macro
13517 int _end_col_offset = _token->end_col_offset;
13518 UNUSED(_end_col_offset); // Only used by EXTRA macro
13519 _res = _Py_List ( a , Load , EXTRA );
13520 if (_res == NULL && PyErr_Occurred()) {
13521 p->error_indicator = 1;
13522 D(p->level--);
13523 return NULL;
13524 }
13525 goto done;
13526 }
13527 p->mark = _mark;
13528 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
13529 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
13530 }
13531 _res = NULL;
13532 done:
13533 D(p->level--);
13534 return _res;
13535}
13536
Pablo Galindo835f14f2021-01-31 22:52:56 +000013537// listcomp: '[' named_expression for_if_clauses ']' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013538static expr_ty
13539listcomp_rule(Parser *p)
13540{
13541 D(p->level++);
13542 if (p->error_indicator) {
13543 D(p->level--);
13544 return NULL;
13545 }
13546 expr_ty _res = NULL;
13547 int _mark = p->mark;
13548 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13549 p->error_indicator = 1;
13550 D(p->level--);
13551 return NULL;
13552 }
13553 int _start_lineno = p->tokens[_mark]->lineno;
13554 UNUSED(_start_lineno); // Only used by EXTRA macro
13555 int _start_col_offset = p->tokens[_mark]->col_offset;
13556 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000013557 { // '[' named_expression for_if_clauses ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013558 if (p->error_indicator) {
13559 D(p->level--);
13560 return NULL;
13561 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000013562 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 +010013563 Token * _literal;
13564 Token * _literal_1;
13565 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010013566 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013567 if (
13568 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13569 &&
13570 (a = named_expression_rule(p)) // named_expression
13571 &&
13572 (b = for_if_clauses_rule(p)) // for_if_clauses
13573 &&
13574 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13575 )
13576 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000013577 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 +010013578 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13579 if (_token == NULL) {
13580 D(p->level--);
13581 return NULL;
13582 }
13583 int _end_lineno = _token->end_lineno;
13584 UNUSED(_end_lineno); // Only used by EXTRA macro
13585 int _end_col_offset = _token->end_col_offset;
13586 UNUSED(_end_col_offset); // Only used by EXTRA macro
13587 _res = _Py_ListComp ( a , b , EXTRA );
13588 if (_res == NULL && PyErr_Occurred()) {
13589 p->error_indicator = 1;
13590 D(p->level--);
13591 return NULL;
13592 }
13593 goto done;
13594 }
13595 p->mark = _mark;
13596 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000013597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013598 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020013599 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013600 if (p->error_indicator) {
13601 D(p->level--);
13602 return NULL;
13603 }
13604 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
13605 void *invalid_comprehension_var;
13606 if (
13607 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
13608 )
13609 {
13610 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
13611 _res = invalid_comprehension_var;
13612 goto done;
13613 }
13614 p->mark = _mark;
13615 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
13616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
13617 }
13618 _res = NULL;
13619 done:
13620 D(p->level--);
13621 return _res;
13622}
13623
13624// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
13625static expr_ty
13626tuple_rule(Parser *p)
13627{
13628 D(p->level++);
13629 if (p->error_indicator) {
13630 D(p->level--);
13631 return NULL;
13632 }
13633 expr_ty _res = NULL;
13634 int _mark = p->mark;
13635 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13636 p->error_indicator = 1;
13637 D(p->level--);
13638 return NULL;
13639 }
13640 int _start_lineno = p->tokens[_mark]->lineno;
13641 UNUSED(_start_lineno); // Only used by EXTRA macro
13642 int _start_col_offset = p->tokens[_mark]->col_offset;
13643 UNUSED(_start_col_offset); // Only used by EXTRA macro
13644 { // '(' [star_named_expression ',' star_named_expressions?] ')'
13645 if (p->error_indicator) {
13646 D(p->level--);
13647 return NULL;
13648 }
13649 D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
13650 Token * _literal;
13651 Token * _literal_1;
13652 void *a;
13653 if (
13654 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13655 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013656 (a = _tmp_115_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013657 &&
13658 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13659 )
13660 {
13661 D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
13662 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13663 if (_token == NULL) {
13664 D(p->level--);
13665 return NULL;
13666 }
13667 int _end_lineno = _token->end_lineno;
13668 UNUSED(_end_lineno); // Only used by EXTRA macro
13669 int _end_col_offset = _token->end_col_offset;
13670 UNUSED(_end_col_offset); // Only used by EXTRA macro
13671 _res = _Py_Tuple ( a , Load , EXTRA );
13672 if (_res == NULL && PyErr_Occurred()) {
13673 p->error_indicator = 1;
13674 D(p->level--);
13675 return NULL;
13676 }
13677 goto done;
13678 }
13679 p->mark = _mark;
13680 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
13681 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
13682 }
13683 _res = NULL;
13684 done:
13685 D(p->level--);
13686 return _res;
13687}
13688
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013689// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013690static expr_ty
13691group_rule(Parser *p)
13692{
13693 D(p->level++);
13694 if (p->error_indicator) {
13695 D(p->level--);
13696 return NULL;
13697 }
13698 expr_ty _res = NULL;
13699 int _mark = p->mark;
13700 { // '(' (yield_expr | named_expression) ')'
13701 if (p->error_indicator) {
13702 D(p->level--);
13703 return NULL;
13704 }
13705 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
13706 Token * _literal;
13707 Token * _literal_1;
13708 void *a;
13709 if (
13710 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13711 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080013712 (a = _tmp_116_rule(p)) // yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013713 &&
13714 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13715 )
13716 {
13717 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
13718 _res = a;
13719 if (_res == NULL && PyErr_Occurred()) {
13720 p->error_indicator = 1;
13721 D(p->level--);
13722 return NULL;
13723 }
13724 goto done;
13725 }
13726 p->mark = _mark;
13727 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
13728 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
13729 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020013730 if (p->call_invalid_rules) { // invalid_group
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013731 if (p->error_indicator) {
13732 D(p->level--);
13733 return NULL;
13734 }
13735 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
13736 void *invalid_group_var;
13737 if (
13738 (invalid_group_var = invalid_group_rule(p)) // invalid_group
13739 )
13740 {
13741 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
13742 _res = invalid_group_var;
13743 goto done;
13744 }
13745 p->mark = _mark;
13746 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
13747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
13748 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013749 _res = NULL;
13750 done:
13751 D(p->level--);
13752 return _res;
13753}
13754
Pablo Galindo835f14f2021-01-31 22:52:56 +000013755// genexp: '(' named_expression for_if_clauses ')' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013756static expr_ty
13757genexp_rule(Parser *p)
13758{
13759 D(p->level++);
13760 if (p->error_indicator) {
13761 D(p->level--);
13762 return NULL;
13763 }
13764 expr_ty _res = NULL;
13765 int _mark = p->mark;
13766 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13767 p->error_indicator = 1;
13768 D(p->level--);
13769 return NULL;
13770 }
13771 int _start_lineno = p->tokens[_mark]->lineno;
13772 UNUSED(_start_lineno); // Only used by EXTRA macro
13773 int _start_col_offset = p->tokens[_mark]->col_offset;
13774 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000013775 { // '(' named_expression for_if_clauses ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013776 if (p->error_indicator) {
13777 D(p->level--);
13778 return NULL;
13779 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000013780 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013781 Token * _literal;
13782 Token * _literal_1;
13783 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010013784 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013785 if (
13786 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13787 &&
Lysandros Nikolaoucb3e5ed2020-11-17 01:08:35 +020013788 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013789 &&
13790 (b = for_if_clauses_rule(p)) // for_if_clauses
13791 &&
13792 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13793 )
13794 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000013795 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013796 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13797 if (_token == NULL) {
13798 D(p->level--);
13799 return NULL;
13800 }
13801 int _end_lineno = _token->end_lineno;
13802 UNUSED(_end_lineno); // Only used by EXTRA macro
13803 int _end_col_offset = _token->end_col_offset;
13804 UNUSED(_end_col_offset); // Only used by EXTRA macro
13805 _res = _Py_GeneratorExp ( a , b , EXTRA );
13806 if (_res == NULL && PyErr_Occurred()) {
13807 p->error_indicator = 1;
13808 D(p->level--);
13809 return NULL;
13810 }
13811 goto done;
13812 }
13813 p->mark = _mark;
13814 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000013815 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013816 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020013817 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013818 if (p->error_indicator) {
13819 D(p->level--);
13820 return NULL;
13821 }
13822 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
13823 void *invalid_comprehension_var;
13824 if (
13825 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
13826 )
13827 {
13828 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
13829 _res = invalid_comprehension_var;
13830 goto done;
13831 }
13832 p->mark = _mark;
13833 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
13834 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
13835 }
13836 _res = NULL;
13837 done:
13838 D(p->level--);
13839 return _res;
13840}
13841
Pablo Galindob0aba1f2020-11-17 01:17:12 +000013842// set: '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013843static expr_ty
13844set_rule(Parser *p)
13845{
13846 D(p->level++);
13847 if (p->error_indicator) {
13848 D(p->level--);
13849 return NULL;
13850 }
13851 expr_ty _res = NULL;
13852 int _mark = p->mark;
13853 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13854 p->error_indicator = 1;
13855 D(p->level--);
13856 return NULL;
13857 }
13858 int _start_lineno = p->tokens[_mark]->lineno;
13859 UNUSED(_start_lineno); // Only used by EXTRA macro
13860 int _start_col_offset = p->tokens[_mark]->col_offset;
13861 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob0aba1f2020-11-17 01:17:12 +000013862 { // '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013863 if (p->error_indicator) {
13864 D(p->level--);
13865 return NULL;
13866 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000013867 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013868 Token * _literal;
13869 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010013870 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013871 if (
13872 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
13873 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000013874 (a = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013875 &&
13876 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
13877 )
13878 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000013879 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 +010013880 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13881 if (_token == NULL) {
13882 D(p->level--);
13883 return NULL;
13884 }
13885 int _end_lineno = _token->end_lineno;
13886 UNUSED(_end_lineno); // Only used by EXTRA macro
13887 int _end_col_offset = _token->end_col_offset;
13888 UNUSED(_end_col_offset); // Only used by EXTRA macro
13889 _res = _Py_Set ( a , EXTRA );
13890 if (_res == NULL && PyErr_Occurred()) {
13891 p->error_indicator = 1;
13892 D(p->level--);
13893 return NULL;
13894 }
13895 goto done;
13896 }
13897 p->mark = _mark;
13898 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000013899 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013900 }
13901 _res = NULL;
13902 done:
13903 D(p->level--);
13904 return _res;
13905}
13906
Pablo Galindo835f14f2021-01-31 22:52:56 +000013907// setcomp: '{' named_expression for_if_clauses '}' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013908static expr_ty
13909setcomp_rule(Parser *p)
13910{
13911 D(p->level++);
13912 if (p->error_indicator) {
13913 D(p->level--);
13914 return NULL;
13915 }
13916 expr_ty _res = NULL;
13917 int _mark = p->mark;
13918 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13919 p->error_indicator = 1;
13920 D(p->level--);
13921 return NULL;
13922 }
13923 int _start_lineno = p->tokens[_mark]->lineno;
13924 UNUSED(_start_lineno); // Only used by EXTRA macro
13925 int _start_col_offset = p->tokens[_mark]->col_offset;
13926 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000013927 { // '{' named_expression for_if_clauses '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013928 if (p->error_indicator) {
13929 D(p->level--);
13930 return NULL;
13931 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000013932 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 +010013933 Token * _literal;
13934 Token * _literal_1;
13935 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010013936 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013937 if (
13938 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
13939 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000013940 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013941 &&
13942 (b = for_if_clauses_rule(p)) // for_if_clauses
13943 &&
13944 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
13945 )
13946 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000013947 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 +010013948 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13949 if (_token == NULL) {
13950 D(p->level--);
13951 return NULL;
13952 }
13953 int _end_lineno = _token->end_lineno;
13954 UNUSED(_end_lineno); // Only used by EXTRA macro
13955 int _end_col_offset = _token->end_col_offset;
13956 UNUSED(_end_col_offset); // Only used by EXTRA macro
13957 _res = _Py_SetComp ( a , b , EXTRA );
13958 if (_res == NULL && PyErr_Occurred()) {
13959 p->error_indicator = 1;
13960 D(p->level--);
13961 return NULL;
13962 }
13963 goto done;
13964 }
13965 p->mark = _mark;
13966 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000013967 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013968 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020013969 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013970 if (p->error_indicator) {
13971 D(p->level--);
13972 return NULL;
13973 }
13974 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
13975 void *invalid_comprehension_var;
13976 if (
13977 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
13978 )
13979 {
13980 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
13981 _res = invalid_comprehension_var;
13982 goto done;
13983 }
13984 p->mark = _mark;
13985 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
13986 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
13987 }
13988 _res = NULL;
13989 done:
13990 D(p->level--);
13991 return _res;
13992}
13993
13994// dict: '{' double_starred_kvpairs? '}'
13995static expr_ty
13996dict_rule(Parser *p)
13997{
13998 D(p->level++);
13999 if (p->error_indicator) {
14000 D(p->level--);
14001 return NULL;
14002 }
14003 expr_ty _res = NULL;
14004 int _mark = p->mark;
14005 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14006 p->error_indicator = 1;
14007 D(p->level--);
14008 return NULL;
14009 }
14010 int _start_lineno = p->tokens[_mark]->lineno;
14011 UNUSED(_start_lineno); // Only used by EXTRA macro
14012 int _start_col_offset = p->tokens[_mark]->col_offset;
14013 UNUSED(_start_col_offset); // Only used by EXTRA macro
14014 { // '{' double_starred_kvpairs? '}'
14015 if (p->error_indicator) {
14016 D(p->level--);
14017 return NULL;
14018 }
14019 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
14020 Token * _literal;
14021 Token * _literal_1;
14022 void *a;
14023 if (
14024 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14025 &&
14026 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
14027 &&
14028 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14029 )
14030 {
14031 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
14032 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14033 if (_token == NULL) {
14034 D(p->level--);
14035 return NULL;
14036 }
14037 int _end_lineno = _token->end_lineno;
14038 UNUSED(_end_lineno); // Only used by EXTRA macro
14039 int _end_col_offset = _token->end_col_offset;
14040 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030014041 _res = _Py_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 +010014042 if (_res == NULL && PyErr_Occurred()) {
14043 p->error_indicator = 1;
14044 D(p->level--);
14045 return NULL;
14046 }
14047 goto done;
14048 }
14049 p->mark = _mark;
14050 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
14051 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
14052 }
14053 _res = NULL;
14054 done:
14055 D(p->level--);
14056 return _res;
14057}
14058
14059// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
14060static expr_ty
14061dictcomp_rule(Parser *p)
14062{
14063 D(p->level++);
14064 if (p->error_indicator) {
14065 D(p->level--);
14066 return NULL;
14067 }
14068 expr_ty _res = NULL;
14069 int _mark = p->mark;
14070 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14071 p->error_indicator = 1;
14072 D(p->level--);
14073 return NULL;
14074 }
14075 int _start_lineno = p->tokens[_mark]->lineno;
14076 UNUSED(_start_lineno); // Only used by EXTRA macro
14077 int _start_col_offset = p->tokens[_mark]->col_offset;
14078 UNUSED(_start_col_offset); // Only used by EXTRA macro
14079 { // '{' kvpair for_if_clauses '}'
14080 if (p->error_indicator) {
14081 D(p->level--);
14082 return NULL;
14083 }
14084 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
14085 Token * _literal;
14086 Token * _literal_1;
14087 KeyValuePair* a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014088 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014089 if (
14090 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14091 &&
14092 (a = kvpair_rule(p)) // kvpair
14093 &&
14094 (b = for_if_clauses_rule(p)) // for_if_clauses
14095 &&
14096 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14097 )
14098 {
14099 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
14100 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14101 if (_token == NULL) {
14102 D(p->level--);
14103 return NULL;
14104 }
14105 int _end_lineno = _token->end_lineno;
14106 UNUSED(_end_lineno); // Only used by EXTRA macro
14107 int _end_col_offset = _token->end_col_offset;
14108 UNUSED(_end_col_offset); // Only used by EXTRA macro
14109 _res = _Py_DictComp ( a -> key , a -> value , b , EXTRA );
14110 if (_res == NULL && PyErr_Occurred()) {
14111 p->error_indicator = 1;
14112 D(p->level--);
14113 return NULL;
14114 }
14115 goto done;
14116 }
14117 p->mark = _mark;
14118 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
14119 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
14120 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014121 if (p->call_invalid_rules) { // invalid_dict_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014122 if (p->error_indicator) {
14123 D(p->level--);
14124 return NULL;
14125 }
14126 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
14127 void *invalid_dict_comprehension_var;
14128 if (
14129 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
14130 )
14131 {
14132 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
14133 _res = invalid_dict_comprehension_var;
14134 goto done;
14135 }
14136 p->mark = _mark;
14137 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
14138 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
14139 }
14140 _res = NULL;
14141 done:
14142 D(p->level--);
14143 return _res;
14144}
14145
14146// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
14147static asdl_seq*
14148double_starred_kvpairs_rule(Parser *p)
14149{
14150 D(p->level++);
14151 if (p->error_indicator) {
14152 D(p->level--);
14153 return NULL;
14154 }
14155 asdl_seq* _res = NULL;
14156 int _mark = p->mark;
14157 { // ','.double_starred_kvpair+ ','?
14158 if (p->error_indicator) {
14159 D(p->level--);
14160 return NULL;
14161 }
14162 D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
14163 void *_opt_var;
14164 UNUSED(_opt_var); // Silence compiler warnings
14165 asdl_seq * a;
14166 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014167 (a = _gather_117_rule(p)) // ','.double_starred_kvpair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014168 &&
14169 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
14170 )
14171 {
14172 D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
14173 _res = a;
14174 if (_res == NULL && PyErr_Occurred()) {
14175 p->error_indicator = 1;
14176 D(p->level--);
14177 return NULL;
14178 }
14179 goto done;
14180 }
14181 p->mark = _mark;
14182 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
14183 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
14184 }
14185 _res = NULL;
14186 done:
14187 D(p->level--);
14188 return _res;
14189}
14190
14191// double_starred_kvpair: '**' bitwise_or | kvpair
14192static KeyValuePair*
14193double_starred_kvpair_rule(Parser *p)
14194{
14195 D(p->level++);
14196 if (p->error_indicator) {
14197 D(p->level--);
14198 return NULL;
14199 }
14200 KeyValuePair* _res = NULL;
14201 int _mark = p->mark;
14202 { // '**' bitwise_or
14203 if (p->error_indicator) {
14204 D(p->level--);
14205 return NULL;
14206 }
14207 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
14208 Token * _literal;
14209 expr_ty a;
14210 if (
14211 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
14212 &&
14213 (a = bitwise_or_rule(p)) // bitwise_or
14214 )
14215 {
14216 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
14217 _res = _PyPegen_key_value_pair ( p , NULL , a );
14218 if (_res == NULL && PyErr_Occurred()) {
14219 p->error_indicator = 1;
14220 D(p->level--);
14221 return NULL;
14222 }
14223 goto done;
14224 }
14225 p->mark = _mark;
14226 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
14227 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
14228 }
14229 { // kvpair
14230 if (p->error_indicator) {
14231 D(p->level--);
14232 return NULL;
14233 }
14234 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
14235 KeyValuePair* kvpair_var;
14236 if (
14237 (kvpair_var = kvpair_rule(p)) // kvpair
14238 )
14239 {
14240 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
14241 _res = kvpair_var;
14242 goto done;
14243 }
14244 p->mark = _mark;
14245 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
14246 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
14247 }
14248 _res = NULL;
14249 done:
14250 D(p->level--);
14251 return _res;
14252}
14253
14254// kvpair: expression ':' expression
14255static KeyValuePair*
14256kvpair_rule(Parser *p)
14257{
14258 D(p->level++);
14259 if (p->error_indicator) {
14260 D(p->level--);
14261 return NULL;
14262 }
14263 KeyValuePair* _res = NULL;
14264 int _mark = p->mark;
14265 { // expression ':' expression
14266 if (p->error_indicator) {
14267 D(p->level--);
14268 return NULL;
14269 }
14270 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
14271 Token * _literal;
14272 expr_ty a;
14273 expr_ty b;
14274 if (
14275 (a = expression_rule(p)) // expression
14276 &&
14277 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
14278 &&
14279 (b = expression_rule(p)) // expression
14280 )
14281 {
14282 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
14283 _res = _PyPegen_key_value_pair ( p , a , b );
14284 if (_res == NULL && PyErr_Occurred()) {
14285 p->error_indicator = 1;
14286 D(p->level--);
14287 return NULL;
14288 }
14289 goto done;
14290 }
14291 p->mark = _mark;
14292 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
14293 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
14294 }
14295 _res = NULL;
14296 done:
14297 D(p->level--);
14298 return _res;
14299}
14300
14301// for_if_clauses: for_if_clause+
Pablo Galindoa5634c42020-09-16 19:42:00 +010014302static asdl_comprehension_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014303for_if_clauses_rule(Parser *p)
14304{
14305 D(p->level++);
14306 if (p->error_indicator) {
14307 D(p->level--);
14308 return NULL;
14309 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010014310 asdl_comprehension_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014311 int _mark = p->mark;
14312 { // for_if_clause+
14313 if (p->error_indicator) {
14314 D(p->level--);
14315 return NULL;
14316 }
14317 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 +010014318 asdl_comprehension_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014319 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014320 (a = (asdl_comprehension_seq*)_loop1_119_rule(p)) // for_if_clause+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014321 )
14322 {
14323 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 +010014324 _res = a;
14325 if (_res == NULL && PyErr_Occurred()) {
14326 p->error_indicator = 1;
14327 D(p->level--);
14328 return NULL;
14329 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014330 goto done;
14331 }
14332 p->mark = _mark;
14333 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
14334 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
14335 }
14336 _res = NULL;
14337 done:
14338 D(p->level--);
14339 return _res;
14340}
14341
14342// for_if_clause:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014343// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
14344// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
14345// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014346static comprehension_ty
14347for_if_clause_rule(Parser *p)
14348{
14349 D(p->level++);
14350 if (p->error_indicator) {
14351 D(p->level--);
14352 return NULL;
14353 }
14354 comprehension_ty _res = NULL;
14355 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014356 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014357 if (p->error_indicator) {
14358 D(p->level--);
14359 return NULL;
14360 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014361 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14362 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014363 Token * _keyword;
14364 Token * _keyword_1;
14365 expr_ty a;
14366 Token * async_var;
14367 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014368 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014369 if (
14370 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
14371 &&
14372 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
14373 &&
14374 (a = star_targets_rule(p)) // star_targets
14375 &&
14376 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
14377 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014378 (_cut_var = 1)
14379 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014380 (b = disjunction_rule(p)) // disjunction
14381 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014382 (c = (asdl_expr_seq*)_loop0_120_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014383 )
14384 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014385 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))*"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030014386 _res = CHECK_VERSION ( comprehension_ty , 6 , "Async comprehensions are" , _Py_comprehension ( a , b , c , 1 , p -> arena ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014387 if (_res == NULL && PyErr_Occurred()) {
14388 p->error_indicator = 1;
14389 D(p->level--);
14390 return NULL;
14391 }
14392 goto done;
14393 }
14394 p->mark = _mark;
14395 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14397 if (_cut_var) {
14398 D(p->level--);
14399 return NULL;
14400 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014401 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014402 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014403 if (p->error_indicator) {
14404 D(p->level--);
14405 return NULL;
14406 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014407 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14408 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014409 Token * _keyword;
14410 Token * _keyword_1;
14411 expr_ty a;
14412 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014413 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014414 if (
14415 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
14416 &&
14417 (a = star_targets_rule(p)) // star_targets
14418 &&
14419 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
14420 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014421 (_cut_var = 1)
14422 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014423 (b = disjunction_rule(p)) // disjunction
14424 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014425 (c = (asdl_expr_seq*)_loop0_121_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014426 )
14427 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014428 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014429 _res = _Py_comprehension ( a , b , c , 0 , p -> arena );
14430 if (_res == NULL && PyErr_Occurred()) {
14431 p->error_indicator = 1;
14432 D(p->level--);
14433 return NULL;
14434 }
14435 goto done;
14436 }
14437 p->mark = _mark;
14438 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
14440 if (_cut_var) {
14441 D(p->level--);
14442 return NULL;
14443 }
14444 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014445 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014446 if (p->error_indicator) {
14447 D(p->level--);
14448 return NULL;
14449 }
14450 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
14451 void *invalid_for_target_var;
14452 if (
14453 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
14454 )
14455 {
14456 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
14457 _res = invalid_for_target_var;
14458 goto done;
14459 }
14460 p->mark = _mark;
14461 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
14462 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014463 }
14464 _res = NULL;
14465 done:
14466 D(p->level--);
14467 return _res;
14468}
14469
14470// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
14471static expr_ty
14472yield_expr_rule(Parser *p)
14473{
14474 D(p->level++);
14475 if (p->error_indicator) {
14476 D(p->level--);
14477 return NULL;
14478 }
14479 expr_ty _res = NULL;
14480 int _mark = p->mark;
14481 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14482 p->error_indicator = 1;
14483 D(p->level--);
14484 return NULL;
14485 }
14486 int _start_lineno = p->tokens[_mark]->lineno;
14487 UNUSED(_start_lineno); // Only used by EXTRA macro
14488 int _start_col_offset = p->tokens[_mark]->col_offset;
14489 UNUSED(_start_col_offset); // Only used by EXTRA macro
14490 { // 'yield' 'from' expression
14491 if (p->error_indicator) {
14492 D(p->level--);
14493 return NULL;
14494 }
14495 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
14496 Token * _keyword;
14497 Token * _keyword_1;
14498 expr_ty a;
14499 if (
14500 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
14501 &&
14502 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
14503 &&
14504 (a = expression_rule(p)) // expression
14505 )
14506 {
14507 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
14508 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14509 if (_token == NULL) {
14510 D(p->level--);
14511 return NULL;
14512 }
14513 int _end_lineno = _token->end_lineno;
14514 UNUSED(_end_lineno); // Only used by EXTRA macro
14515 int _end_col_offset = _token->end_col_offset;
14516 UNUSED(_end_col_offset); // Only used by EXTRA macro
14517 _res = _Py_YieldFrom ( a , EXTRA );
14518 if (_res == NULL && PyErr_Occurred()) {
14519 p->error_indicator = 1;
14520 D(p->level--);
14521 return NULL;
14522 }
14523 goto done;
14524 }
14525 p->mark = _mark;
14526 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
14527 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
14528 }
14529 { // 'yield' star_expressions?
14530 if (p->error_indicator) {
14531 D(p->level--);
14532 return NULL;
14533 }
14534 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
14535 Token * _keyword;
14536 void *a;
14537 if (
14538 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
14539 &&
14540 (a = star_expressions_rule(p), 1) // star_expressions?
14541 )
14542 {
14543 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
14544 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14545 if (_token == NULL) {
14546 D(p->level--);
14547 return NULL;
14548 }
14549 int _end_lineno = _token->end_lineno;
14550 UNUSED(_end_lineno); // Only used by EXTRA macro
14551 int _end_col_offset = _token->end_col_offset;
14552 UNUSED(_end_col_offset); // Only used by EXTRA macro
14553 _res = _Py_Yield ( a , EXTRA );
14554 if (_res == NULL && PyErr_Occurred()) {
14555 p->error_indicator = 1;
14556 D(p->level--);
14557 return NULL;
14558 }
14559 goto done;
14560 }
14561 p->mark = _mark;
14562 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
14563 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
14564 }
14565 _res = NULL;
14566 done:
14567 D(p->level--);
14568 return _res;
14569}
14570
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014571// arguments: args ','? &')' | invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014572static expr_ty
14573arguments_rule(Parser *p)
14574{
14575 D(p->level++);
14576 if (p->error_indicator) {
14577 D(p->level--);
14578 return NULL;
14579 }
14580 expr_ty _res = NULL;
14581 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
14582 D(p->level--);
14583 return _res;
14584 }
14585 int _mark = p->mark;
14586 { // args ','? &')'
14587 if (p->error_indicator) {
14588 D(p->level--);
14589 return NULL;
14590 }
14591 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
14592 void *_opt_var;
14593 UNUSED(_opt_var); // Silence compiler warnings
14594 expr_ty a;
14595 if (
14596 (a = args_rule(p)) // args
14597 &&
14598 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
14599 &&
14600 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
14601 )
14602 {
14603 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
14604 _res = a;
14605 if (_res == NULL && PyErr_Occurred()) {
14606 p->error_indicator = 1;
14607 D(p->level--);
14608 return NULL;
14609 }
14610 goto done;
14611 }
14612 p->mark = _mark;
14613 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
14614 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
14615 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014616 if (p->call_invalid_rules) { // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014617 if (p->error_indicator) {
14618 D(p->level--);
14619 return NULL;
14620 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014621 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
14622 void *invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014623 if (
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014624 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014625 )
14626 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014627 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
14628 _res = invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014629 goto done;
14630 }
14631 p->mark = _mark;
14632 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014633 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014634 }
14635 _res = NULL;
14636 done:
14637 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
14638 D(p->level--);
14639 return _res;
14640}
14641
Pablo Galindo4a97b152020-09-02 17:44:19 +010014642// args: ','.(starred_expression | named_expression !'=')+ [',' kwargs] | kwargs
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014643static expr_ty
14644args_rule(Parser *p)
14645{
14646 D(p->level++);
14647 if (p->error_indicator) {
14648 D(p->level--);
14649 return NULL;
14650 }
14651 expr_ty _res = NULL;
14652 int _mark = p->mark;
14653 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14654 p->error_indicator = 1;
14655 D(p->level--);
14656 return NULL;
14657 }
14658 int _start_lineno = p->tokens[_mark]->lineno;
14659 UNUSED(_start_lineno); // Only used by EXTRA macro
14660 int _start_col_offset = p->tokens[_mark]->col_offset;
14661 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo4a97b152020-09-02 17:44:19 +010014662 { // ','.(starred_expression | named_expression !'=')+ [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014663 if (p->error_indicator) {
14664 D(p->level--);
14665 return NULL;
14666 }
Pablo Galindo4a97b152020-09-02 17:44:19 +010014667 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010014668 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014669 void *b;
14670 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014671 (a = (asdl_expr_seq*)_gather_122_rule(p)) // ','.(starred_expression | named_expression !'=')+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014672 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014673 (b = _tmp_124_rule(p), 1) // [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014674 )
14675 {
Pablo Galindo4a97b152020-09-02 17:44:19 +010014676 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
Pablo Galindo315a61f2020-09-03 15:29:32 +010014677 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14678 if (_token == NULL) {
14679 D(p->level--);
14680 return NULL;
14681 }
14682 int _end_lineno = _token->end_lineno;
14683 UNUSED(_end_lineno); // Only used by EXTRA macro
14684 int _end_col_offset = _token->end_col_offset;
14685 UNUSED(_end_col_offset); // Only used by EXTRA macro
14686 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014687 if (_res == NULL && PyErr_Occurred()) {
14688 p->error_indicator = 1;
14689 D(p->level--);
14690 return NULL;
14691 }
14692 goto done;
14693 }
14694 p->mark = _mark;
14695 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010014696 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014697 }
14698 { // kwargs
14699 if (p->error_indicator) {
14700 D(p->level--);
14701 return NULL;
14702 }
14703 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
14704 asdl_seq* a;
14705 if (
14706 (a = kwargs_rule(p)) // kwargs
14707 )
14708 {
14709 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
14710 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14711 if (_token == NULL) {
14712 D(p->level--);
14713 return NULL;
14714 }
14715 int _end_lineno = _token->end_lineno;
14716 UNUSED(_end_lineno); // Only used by EXTRA macro
14717 int _end_col_offset = _token->end_col_offset;
14718 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030014719 _res = _Py_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 +010014720 if (_res == NULL && PyErr_Occurred()) {
14721 p->error_indicator = 1;
14722 D(p->level--);
14723 return NULL;
14724 }
14725 goto done;
14726 }
14727 p->mark = _mark;
14728 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
14729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
14730 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014731 _res = NULL;
14732 done:
14733 D(p->level--);
14734 return _res;
14735}
14736
14737// kwargs:
14738// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
14739// | ','.kwarg_or_starred+
14740// | ','.kwarg_or_double_starred+
14741static asdl_seq*
14742kwargs_rule(Parser *p)
14743{
14744 D(p->level++);
14745 if (p->error_indicator) {
14746 D(p->level--);
14747 return NULL;
14748 }
14749 asdl_seq* _res = NULL;
14750 int _mark = p->mark;
14751 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
14752 if (p->error_indicator) {
14753 D(p->level--);
14754 return NULL;
14755 }
14756 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
14757 Token * _literal;
14758 asdl_seq * a;
14759 asdl_seq * b;
14760 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014761 (a = _gather_125_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014762 &&
14763 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14764 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014765 (b = _gather_127_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014766 )
14767 {
14768 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
14769 _res = _PyPegen_join_sequences ( p , a , b );
14770 if (_res == NULL && PyErr_Occurred()) {
14771 p->error_indicator = 1;
14772 D(p->level--);
14773 return NULL;
14774 }
14775 goto done;
14776 }
14777 p->mark = _mark;
14778 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
14779 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
14780 }
14781 { // ','.kwarg_or_starred+
14782 if (p->error_indicator) {
14783 D(p->level--);
14784 return NULL;
14785 }
14786 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014787 asdl_seq * _gather_129_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014788 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014789 (_gather_129_var = _gather_129_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014790 )
14791 {
14792 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014793 _res = _gather_129_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014794 goto done;
14795 }
14796 p->mark = _mark;
14797 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
14798 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
14799 }
14800 { // ','.kwarg_or_double_starred+
14801 if (p->error_indicator) {
14802 D(p->level--);
14803 return NULL;
14804 }
14805 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014806 asdl_seq * _gather_131_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014807 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014808 (_gather_131_var = _gather_131_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014809 )
14810 {
14811 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014812 _res = _gather_131_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014813 goto done;
14814 }
14815 p->mark = _mark;
14816 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
14817 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
14818 }
14819 _res = NULL;
14820 done:
14821 D(p->level--);
14822 return _res;
14823}
14824
14825// starred_expression: '*' expression
14826static expr_ty
14827starred_expression_rule(Parser *p)
14828{
14829 D(p->level++);
14830 if (p->error_indicator) {
14831 D(p->level--);
14832 return NULL;
14833 }
14834 expr_ty _res = NULL;
14835 int _mark = p->mark;
14836 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14837 p->error_indicator = 1;
14838 D(p->level--);
14839 return NULL;
14840 }
14841 int _start_lineno = p->tokens[_mark]->lineno;
14842 UNUSED(_start_lineno); // Only used by EXTRA macro
14843 int _start_col_offset = p->tokens[_mark]->col_offset;
14844 UNUSED(_start_col_offset); // Only used by EXTRA macro
14845 { // '*' expression
14846 if (p->error_indicator) {
14847 D(p->level--);
14848 return NULL;
14849 }
14850 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
14851 Token * _literal;
14852 expr_ty a;
14853 if (
14854 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
14855 &&
14856 (a = expression_rule(p)) // expression
14857 )
14858 {
14859 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
14860 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14861 if (_token == NULL) {
14862 D(p->level--);
14863 return NULL;
14864 }
14865 int _end_lineno = _token->end_lineno;
14866 UNUSED(_end_lineno); // Only used by EXTRA macro
14867 int _end_col_offset = _token->end_col_offset;
14868 UNUSED(_end_col_offset); // Only used by EXTRA macro
14869 _res = _Py_Starred ( a , Load , EXTRA );
14870 if (_res == NULL && PyErr_Occurred()) {
14871 p->error_indicator = 1;
14872 D(p->level--);
14873 return NULL;
14874 }
14875 goto done;
14876 }
14877 p->mark = _mark;
14878 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
14879 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
14880 }
14881 _res = NULL;
14882 done:
14883 D(p->level--);
14884 return _res;
14885}
14886
14887// kwarg_or_starred: NAME '=' expression | starred_expression | invalid_kwarg
14888static KeywordOrStarred*
14889kwarg_or_starred_rule(Parser *p)
14890{
14891 D(p->level++);
14892 if (p->error_indicator) {
14893 D(p->level--);
14894 return NULL;
14895 }
14896 KeywordOrStarred* _res = NULL;
14897 int _mark = p->mark;
14898 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14899 p->error_indicator = 1;
14900 D(p->level--);
14901 return NULL;
14902 }
14903 int _start_lineno = p->tokens[_mark]->lineno;
14904 UNUSED(_start_lineno); // Only used by EXTRA macro
14905 int _start_col_offset = p->tokens[_mark]->col_offset;
14906 UNUSED(_start_col_offset); // Only used by EXTRA macro
14907 { // NAME '=' expression
14908 if (p->error_indicator) {
14909 D(p->level--);
14910 return NULL;
14911 }
14912 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
14913 Token * _literal;
14914 expr_ty a;
14915 expr_ty b;
14916 if (
14917 (a = _PyPegen_name_token(p)) // NAME
14918 &&
14919 (_literal = _PyPegen_expect_token(p, 22)) // token='='
14920 &&
14921 (b = expression_rule(p)) // expression
14922 )
14923 {
14924 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
14925 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14926 if (_token == NULL) {
14927 D(p->level--);
14928 return NULL;
14929 }
14930 int _end_lineno = _token->end_lineno;
14931 UNUSED(_end_lineno); // Only used by EXTRA macro
14932 int _end_col_offset = _token->end_col_offset;
14933 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030014934 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _Py_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014935 if (_res == NULL && PyErr_Occurred()) {
14936 p->error_indicator = 1;
14937 D(p->level--);
14938 return NULL;
14939 }
14940 goto done;
14941 }
14942 p->mark = _mark;
14943 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
14944 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
14945 }
14946 { // starred_expression
14947 if (p->error_indicator) {
14948 D(p->level--);
14949 return NULL;
14950 }
14951 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
14952 expr_ty a;
14953 if (
14954 (a = starred_expression_rule(p)) // starred_expression
14955 )
14956 {
14957 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
14958 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
14959 if (_res == NULL && PyErr_Occurred()) {
14960 p->error_indicator = 1;
14961 D(p->level--);
14962 return NULL;
14963 }
14964 goto done;
14965 }
14966 p->mark = _mark;
14967 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
14968 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
14969 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014970 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014971 if (p->error_indicator) {
14972 D(p->level--);
14973 return NULL;
14974 }
14975 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
14976 void *invalid_kwarg_var;
14977 if (
14978 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
14979 )
14980 {
14981 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
14982 _res = invalid_kwarg_var;
14983 goto done;
14984 }
14985 p->mark = _mark;
14986 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
14987 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
14988 }
14989 _res = NULL;
14990 done:
14991 D(p->level--);
14992 return _res;
14993}
14994
14995// kwarg_or_double_starred: NAME '=' expression | '**' expression | invalid_kwarg
14996static KeywordOrStarred*
14997kwarg_or_double_starred_rule(Parser *p)
14998{
14999 D(p->level++);
15000 if (p->error_indicator) {
15001 D(p->level--);
15002 return NULL;
15003 }
15004 KeywordOrStarred* _res = NULL;
15005 int _mark = p->mark;
15006 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15007 p->error_indicator = 1;
15008 D(p->level--);
15009 return NULL;
15010 }
15011 int _start_lineno = p->tokens[_mark]->lineno;
15012 UNUSED(_start_lineno); // Only used by EXTRA macro
15013 int _start_col_offset = p->tokens[_mark]->col_offset;
15014 UNUSED(_start_col_offset); // Only used by EXTRA macro
15015 { // NAME '=' expression
15016 if (p->error_indicator) {
15017 D(p->level--);
15018 return NULL;
15019 }
15020 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
15021 Token * _literal;
15022 expr_ty a;
15023 expr_ty b;
15024 if (
15025 (a = _PyPegen_name_token(p)) // NAME
15026 &&
15027 (_literal = _PyPegen_expect_token(p, 22)) // token='='
15028 &&
15029 (b = expression_rule(p)) // expression
15030 )
15031 {
15032 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
15033 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15034 if (_token == NULL) {
15035 D(p->level--);
15036 return NULL;
15037 }
15038 int _end_lineno = _token->end_lineno;
15039 UNUSED(_end_lineno); // Only used by EXTRA macro
15040 int _end_col_offset = _token->end_col_offset;
15041 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030015042 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _Py_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015043 if (_res == NULL && PyErr_Occurred()) {
15044 p->error_indicator = 1;
15045 D(p->level--);
15046 return NULL;
15047 }
15048 goto done;
15049 }
15050 p->mark = _mark;
15051 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
15052 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
15053 }
15054 { // '**' expression
15055 if (p->error_indicator) {
15056 D(p->level--);
15057 return NULL;
15058 }
15059 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
15060 Token * _literal;
15061 expr_ty a;
15062 if (
15063 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
15064 &&
15065 (a = expression_rule(p)) // expression
15066 )
15067 {
15068 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
15069 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15070 if (_token == NULL) {
15071 D(p->level--);
15072 return NULL;
15073 }
15074 int _end_lineno = _token->end_lineno;
15075 UNUSED(_end_lineno); // Only used by EXTRA macro
15076 int _end_col_offset = _token->end_col_offset;
15077 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030015078 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _Py_keyword ( NULL , a , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015079 if (_res == NULL && PyErr_Occurred()) {
15080 p->error_indicator = 1;
15081 D(p->level--);
15082 return NULL;
15083 }
15084 goto done;
15085 }
15086 p->mark = _mark;
15087 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
15088 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
15089 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015090 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015091 if (p->error_indicator) {
15092 D(p->level--);
15093 return NULL;
15094 }
15095 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
15096 void *invalid_kwarg_var;
15097 if (
15098 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
15099 )
15100 {
15101 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
15102 _res = invalid_kwarg_var;
15103 goto done;
15104 }
15105 p->mark = _mark;
15106 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
15107 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
15108 }
15109 _res = NULL;
15110 done:
15111 D(p->level--);
15112 return _res;
15113}
15114
15115// star_targets: star_target !',' | star_target ((',' star_target))* ','?
15116static expr_ty
15117star_targets_rule(Parser *p)
15118{
15119 D(p->level++);
15120 if (p->error_indicator) {
15121 D(p->level--);
15122 return NULL;
15123 }
15124 expr_ty _res = NULL;
15125 int _mark = p->mark;
15126 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15127 p->error_indicator = 1;
15128 D(p->level--);
15129 return NULL;
15130 }
15131 int _start_lineno = p->tokens[_mark]->lineno;
15132 UNUSED(_start_lineno); // Only used by EXTRA macro
15133 int _start_col_offset = p->tokens[_mark]->col_offset;
15134 UNUSED(_start_col_offset); // Only used by EXTRA macro
15135 { // star_target !','
15136 if (p->error_indicator) {
15137 D(p->level--);
15138 return NULL;
15139 }
15140 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
15141 expr_ty a;
15142 if (
15143 (a = star_target_rule(p)) // star_target
15144 &&
15145 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
15146 )
15147 {
15148 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
15149 _res = a;
15150 if (_res == NULL && PyErr_Occurred()) {
15151 p->error_indicator = 1;
15152 D(p->level--);
15153 return NULL;
15154 }
15155 goto done;
15156 }
15157 p->mark = _mark;
15158 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
15159 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
15160 }
15161 { // star_target ((',' star_target))* ','?
15162 if (p->error_indicator) {
15163 D(p->level--);
15164 return NULL;
15165 }
15166 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
15167 void *_opt_var;
15168 UNUSED(_opt_var); // Silence compiler warnings
15169 expr_ty a;
15170 asdl_seq * b;
15171 if (
15172 (a = star_target_rule(p)) // star_target
15173 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015174 (b = _loop0_133_rule(p)) // ((',' star_target))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015175 &&
15176 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15177 )
15178 {
15179 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
15180 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15181 if (_token == NULL) {
15182 D(p->level--);
15183 return NULL;
15184 }
15185 int _end_lineno = _token->end_lineno;
15186 UNUSED(_end_lineno); // Only used by EXTRA macro
15187 int _end_col_offset = _token->end_col_offset;
15188 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030015189 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015190 if (_res == NULL && PyErr_Occurred()) {
15191 p->error_indicator = 1;
15192 D(p->level--);
15193 return NULL;
15194 }
15195 goto done;
15196 }
15197 p->mark = _mark;
15198 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
15199 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
15200 }
15201 _res = NULL;
15202 done:
15203 D(p->level--);
15204 return _res;
15205}
15206
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015207// star_targets_list_seq: ','.star_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010015208static asdl_expr_seq*
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015209star_targets_list_seq_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015210{
15211 D(p->level++);
15212 if (p->error_indicator) {
15213 D(p->level--);
15214 return NULL;
15215 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015216 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015217 int _mark = p->mark;
15218 { // ','.star_target+ ','?
15219 if (p->error_indicator) {
15220 D(p->level--);
15221 return NULL;
15222 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015223 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 +010015224 void *_opt_var;
15225 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010015226 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015227 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015228 (a = (asdl_expr_seq*)_gather_134_rule(p)) // ','.star_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015229 &&
15230 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15231 )
15232 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015233 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 +010015234 _res = a;
15235 if (_res == NULL && PyErr_Occurred()) {
15236 p->error_indicator = 1;
15237 D(p->level--);
15238 return NULL;
15239 }
15240 goto done;
15241 }
15242 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015243 D(fprintf(stderr, "%*c%s star_targets_list_seq[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015244 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
15245 }
15246 _res = NULL;
15247 done:
15248 D(p->level--);
15249 return _res;
15250}
15251
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015252// star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
15253static asdl_expr_seq*
15254star_targets_tuple_seq_rule(Parser *p)
15255{
15256 D(p->level++);
15257 if (p->error_indicator) {
15258 D(p->level--);
15259 return NULL;
15260 }
15261 asdl_expr_seq* _res = NULL;
15262 int _mark = p->mark;
15263 { // star_target ((',' star_target))+ ','?
15264 if (p->error_indicator) {
15265 D(p->level--);
15266 return NULL;
15267 }
15268 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
15269 void *_opt_var;
15270 UNUSED(_opt_var); // Silence compiler warnings
15271 expr_ty a;
15272 asdl_seq * b;
15273 if (
15274 (a = star_target_rule(p)) // star_target
15275 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015276 (b = _loop1_136_rule(p)) // ((',' star_target))+
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015277 &&
15278 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15279 )
15280 {
15281 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
15282 _res = ( asdl_expr_seq * ) _PyPegen_seq_insert_in_front ( p , a , b );
15283 if (_res == NULL && PyErr_Occurred()) {
15284 p->error_indicator = 1;
15285 D(p->level--);
15286 return NULL;
15287 }
15288 goto done;
15289 }
15290 p->mark = _mark;
15291 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
15292 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))+ ','?"));
15293 }
15294 { // star_target ','
15295 if (p->error_indicator) {
15296 D(p->level--);
15297 return NULL;
15298 }
15299 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ','"));
15300 Token * _literal;
15301 expr_ty a;
15302 if (
15303 (a = star_target_rule(p)) // star_target
15304 &&
15305 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15306 )
15307 {
15308 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
15309 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
15310 if (_res == NULL && PyErr_Occurred()) {
15311 p->error_indicator = 1;
15312 D(p->level--);
15313 return NULL;
15314 }
15315 goto done;
15316 }
15317 p->mark = _mark;
15318 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
15319 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ','"));
15320 }
15321 _res = NULL;
15322 done:
15323 D(p->level--);
15324 return _res;
15325}
15326
15327// star_target: '*' (!'*' star_target) | target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015328static expr_ty
15329star_target_rule(Parser *p)
15330{
15331 D(p->level++);
15332 if (p->error_indicator) {
15333 D(p->level--);
15334 return NULL;
15335 }
15336 expr_ty _res = NULL;
15337 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
15338 D(p->level--);
15339 return _res;
15340 }
15341 int _mark = p->mark;
15342 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15343 p->error_indicator = 1;
15344 D(p->level--);
15345 return NULL;
15346 }
15347 int _start_lineno = p->tokens[_mark]->lineno;
15348 UNUSED(_start_lineno); // Only used by EXTRA macro
15349 int _start_col_offset = p->tokens[_mark]->col_offset;
15350 UNUSED(_start_col_offset); // Only used by EXTRA macro
15351 { // '*' (!'*' star_target)
15352 if (p->error_indicator) {
15353 D(p->level--);
15354 return NULL;
15355 }
15356 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
15357 Token * _literal;
15358 void *a;
15359 if (
15360 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15361 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015362 (a = _tmp_137_rule(p)) // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015363 )
15364 {
15365 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
15366 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15367 if (_token == NULL) {
15368 D(p->level--);
15369 return NULL;
15370 }
15371 int _end_lineno = _token->end_lineno;
15372 UNUSED(_end_lineno); // Only used by EXTRA macro
15373 int _end_col_offset = _token->end_col_offset;
15374 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030015375 _res = _Py_Starred ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015376 if (_res == NULL && PyErr_Occurred()) {
15377 p->error_indicator = 1;
15378 D(p->level--);
15379 return NULL;
15380 }
15381 goto done;
15382 }
15383 p->mark = _mark;
15384 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
15385 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
15386 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015387 { // target_with_star_atom
15388 if (p->error_indicator) {
15389 D(p->level--);
15390 return NULL;
15391 }
15392 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
15393 expr_ty target_with_star_atom_var;
15394 if (
15395 (target_with_star_atom_var = target_with_star_atom_rule(p)) // target_with_star_atom
15396 )
15397 {
15398 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
15399 _res = target_with_star_atom_var;
15400 goto done;
15401 }
15402 p->mark = _mark;
15403 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
15404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_with_star_atom"));
15405 }
15406 _res = NULL;
15407 done:
15408 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
15409 D(p->level--);
15410 return _res;
15411}
15412
15413// target_with_star_atom:
15414// | t_primary '.' NAME !t_lookahead
15415// | t_primary '[' slices ']' !t_lookahead
15416// | star_atom
15417static expr_ty
15418target_with_star_atom_rule(Parser *p)
15419{
15420 D(p->level++);
15421 if (p->error_indicator) {
15422 D(p->level--);
15423 return NULL;
15424 }
15425 expr_ty _res = NULL;
15426 if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
15427 D(p->level--);
15428 return _res;
15429 }
15430 int _mark = p->mark;
15431 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15432 p->error_indicator = 1;
15433 D(p->level--);
15434 return NULL;
15435 }
15436 int _start_lineno = p->tokens[_mark]->lineno;
15437 UNUSED(_start_lineno); // Only used by EXTRA macro
15438 int _start_col_offset = p->tokens[_mark]->col_offset;
15439 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015440 { // t_primary '.' NAME !t_lookahead
15441 if (p->error_indicator) {
15442 D(p->level--);
15443 return NULL;
15444 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015445 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 +010015446 Token * _literal;
15447 expr_ty a;
15448 expr_ty b;
15449 if (
15450 (a = t_primary_rule(p)) // t_primary
15451 &&
15452 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
15453 &&
15454 (b = _PyPegen_name_token(p)) // NAME
15455 &&
15456 _PyPegen_lookahead(0, t_lookahead_rule, p)
15457 )
15458 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015459 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 +010015460 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15461 if (_token == NULL) {
15462 D(p->level--);
15463 return NULL;
15464 }
15465 int _end_lineno = _token->end_lineno;
15466 UNUSED(_end_lineno); // Only used by EXTRA macro
15467 int _end_col_offset = _token->end_col_offset;
15468 UNUSED(_end_col_offset); // Only used by EXTRA macro
15469 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
15470 if (_res == NULL && PyErr_Occurred()) {
15471 p->error_indicator = 1;
15472 D(p->level--);
15473 return NULL;
15474 }
15475 goto done;
15476 }
15477 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015478 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
15480 }
15481 { // t_primary '[' slices ']' !t_lookahead
15482 if (p->error_indicator) {
15483 D(p->level--);
15484 return NULL;
15485 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015486 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 +010015487 Token * _literal;
15488 Token * _literal_1;
15489 expr_ty a;
15490 expr_ty b;
15491 if (
15492 (a = t_primary_rule(p)) // t_primary
15493 &&
15494 (_literal = _PyPegen_expect_token(p, 9)) // token='['
15495 &&
15496 (b = slices_rule(p)) // slices
15497 &&
15498 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
15499 &&
15500 _PyPegen_lookahead(0, t_lookahead_rule, p)
15501 )
15502 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015503 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 +010015504 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15505 if (_token == NULL) {
15506 D(p->level--);
15507 return NULL;
15508 }
15509 int _end_lineno = _token->end_lineno;
15510 UNUSED(_end_lineno); // Only used by EXTRA macro
15511 int _end_col_offset = _token->end_col_offset;
15512 UNUSED(_end_col_offset); // Only used by EXTRA macro
15513 _res = _Py_Subscript ( a , b , Store , EXTRA );
15514 if (_res == NULL && PyErr_Occurred()) {
15515 p->error_indicator = 1;
15516 D(p->level--);
15517 return NULL;
15518 }
15519 goto done;
15520 }
15521 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015522 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015523 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
15524 }
15525 { // star_atom
15526 if (p->error_indicator) {
15527 D(p->level--);
15528 return NULL;
15529 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015530 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 +010015531 expr_ty star_atom_var;
15532 if (
15533 (star_atom_var = star_atom_rule(p)) // star_atom
15534 )
15535 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015536 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 +010015537 _res = star_atom_var;
15538 goto done;
15539 }
15540 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015541 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015542 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
15543 }
15544 _res = NULL;
15545 done:
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015546 _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015547 D(p->level--);
15548 return _res;
15549}
15550
15551// star_atom:
15552// | NAME
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015553// | '(' target_with_star_atom ')'
15554// | '(' star_targets_tuple_seq? ')'
15555// | '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015556static expr_ty
15557star_atom_rule(Parser *p)
15558{
15559 D(p->level++);
15560 if (p->error_indicator) {
15561 D(p->level--);
15562 return NULL;
15563 }
15564 expr_ty _res = NULL;
15565 int _mark = p->mark;
15566 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15567 p->error_indicator = 1;
15568 D(p->level--);
15569 return NULL;
15570 }
15571 int _start_lineno = p->tokens[_mark]->lineno;
15572 UNUSED(_start_lineno); // Only used by EXTRA macro
15573 int _start_col_offset = p->tokens[_mark]->col_offset;
15574 UNUSED(_start_col_offset); // Only used by EXTRA macro
15575 { // NAME
15576 if (p->error_indicator) {
15577 D(p->level--);
15578 return NULL;
15579 }
15580 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
15581 expr_ty a;
15582 if (
15583 (a = _PyPegen_name_token(p)) // NAME
15584 )
15585 {
15586 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
15587 _res = _PyPegen_set_expr_context ( p , a , Store );
15588 if (_res == NULL && PyErr_Occurred()) {
15589 p->error_indicator = 1;
15590 D(p->level--);
15591 return NULL;
15592 }
15593 goto done;
15594 }
15595 p->mark = _mark;
15596 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
15597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
15598 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015599 { // '(' target_with_star_atom ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015600 if (p->error_indicator) {
15601 D(p->level--);
15602 return NULL;
15603 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015604 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 +010015605 Token * _literal;
15606 Token * _literal_1;
15607 expr_ty a;
15608 if (
15609 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15610 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015611 (a = target_with_star_atom_rule(p)) // target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015612 &&
15613 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15614 )
15615 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015616 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 +010015617 _res = _PyPegen_set_expr_context ( p , a , Store );
15618 if (_res == NULL && PyErr_Occurred()) {
15619 p->error_indicator = 1;
15620 D(p->level--);
15621 return NULL;
15622 }
15623 goto done;
15624 }
15625 p->mark = _mark;
15626 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015627 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015628 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015629 { // '(' star_targets_tuple_seq? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015630 if (p->error_indicator) {
15631 D(p->level--);
15632 return NULL;
15633 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015634 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 +010015635 Token * _literal;
15636 Token * _literal_1;
15637 void *a;
15638 if (
15639 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15640 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015641 (a = star_targets_tuple_seq_rule(p), 1) // star_targets_tuple_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015642 &&
15643 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15644 )
15645 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015646 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 +010015647 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15648 if (_token == NULL) {
15649 D(p->level--);
15650 return NULL;
15651 }
15652 int _end_lineno = _token->end_lineno;
15653 UNUSED(_end_lineno); // Only used by EXTRA macro
15654 int _end_col_offset = _token->end_col_offset;
15655 UNUSED(_end_col_offset); // Only used by EXTRA macro
15656 _res = _Py_Tuple ( a , Store , EXTRA );
15657 if (_res == NULL && PyErr_Occurred()) {
15658 p->error_indicator = 1;
15659 D(p->level--);
15660 return NULL;
15661 }
15662 goto done;
15663 }
15664 p->mark = _mark;
15665 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015666 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015667 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015668 { // '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015669 if (p->error_indicator) {
15670 D(p->level--);
15671 return NULL;
15672 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015673 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 +010015674 Token * _literal;
15675 Token * _literal_1;
15676 void *a;
15677 if (
15678 (_literal = _PyPegen_expect_token(p, 9)) // token='['
15679 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015680 (a = star_targets_list_seq_rule(p), 1) // star_targets_list_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015681 &&
15682 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
15683 )
15684 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015685 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 +010015686 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15687 if (_token == NULL) {
15688 D(p->level--);
15689 return NULL;
15690 }
15691 int _end_lineno = _token->end_lineno;
15692 UNUSED(_end_lineno); // Only used by EXTRA macro
15693 int _end_col_offset = _token->end_col_offset;
15694 UNUSED(_end_col_offset); // Only used by EXTRA macro
15695 _res = _Py_List ( a , Store , EXTRA );
15696 if (_res == NULL && PyErr_Occurred()) {
15697 p->error_indicator = 1;
15698 D(p->level--);
15699 return NULL;
15700 }
15701 goto done;
15702 }
15703 p->mark = _mark;
15704 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015705 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015706 }
15707 _res = NULL;
15708 done:
15709 D(p->level--);
15710 return _res;
15711}
15712
15713// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
15714static expr_ty
15715single_target_rule(Parser *p)
15716{
15717 D(p->level++);
15718 if (p->error_indicator) {
15719 D(p->level--);
15720 return NULL;
15721 }
15722 expr_ty _res = NULL;
15723 int _mark = p->mark;
15724 { // single_subscript_attribute_target
15725 if (p->error_indicator) {
15726 D(p->level--);
15727 return NULL;
15728 }
15729 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
15730 expr_ty single_subscript_attribute_target_var;
15731 if (
15732 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
15733 )
15734 {
15735 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
15736 _res = single_subscript_attribute_target_var;
15737 goto done;
15738 }
15739 p->mark = _mark;
15740 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
15741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
15742 }
15743 { // NAME
15744 if (p->error_indicator) {
15745 D(p->level--);
15746 return NULL;
15747 }
15748 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
15749 expr_ty a;
15750 if (
15751 (a = _PyPegen_name_token(p)) // NAME
15752 )
15753 {
15754 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
15755 _res = _PyPegen_set_expr_context ( p , a , Store );
15756 if (_res == NULL && PyErr_Occurred()) {
15757 p->error_indicator = 1;
15758 D(p->level--);
15759 return NULL;
15760 }
15761 goto done;
15762 }
15763 p->mark = _mark;
15764 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
15765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
15766 }
15767 { // '(' single_target ')'
15768 if (p->error_indicator) {
15769 D(p->level--);
15770 return NULL;
15771 }
15772 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
15773 Token * _literal;
15774 Token * _literal_1;
15775 expr_ty a;
15776 if (
15777 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15778 &&
15779 (a = single_target_rule(p)) // single_target
15780 &&
15781 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15782 )
15783 {
15784 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
15785 _res = a;
15786 if (_res == NULL && PyErr_Occurred()) {
15787 p->error_indicator = 1;
15788 D(p->level--);
15789 return NULL;
15790 }
15791 goto done;
15792 }
15793 p->mark = _mark;
15794 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
15795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
15796 }
15797 _res = NULL;
15798 done:
15799 D(p->level--);
15800 return _res;
15801}
15802
15803// single_subscript_attribute_target:
15804// | t_primary '.' NAME !t_lookahead
15805// | t_primary '[' slices ']' !t_lookahead
15806static expr_ty
15807single_subscript_attribute_target_rule(Parser *p)
15808{
15809 D(p->level++);
15810 if (p->error_indicator) {
15811 D(p->level--);
15812 return NULL;
15813 }
15814 expr_ty _res = NULL;
15815 int _mark = p->mark;
15816 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15817 p->error_indicator = 1;
15818 D(p->level--);
15819 return NULL;
15820 }
15821 int _start_lineno = p->tokens[_mark]->lineno;
15822 UNUSED(_start_lineno); // Only used by EXTRA macro
15823 int _start_col_offset = p->tokens[_mark]->col_offset;
15824 UNUSED(_start_col_offset); // Only used by EXTRA macro
15825 { // t_primary '.' NAME !t_lookahead
15826 if (p->error_indicator) {
15827 D(p->level--);
15828 return NULL;
15829 }
15830 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
15831 Token * _literal;
15832 expr_ty a;
15833 expr_ty b;
15834 if (
15835 (a = t_primary_rule(p)) // t_primary
15836 &&
15837 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
15838 &&
15839 (b = _PyPegen_name_token(p)) // NAME
15840 &&
15841 _PyPegen_lookahead(0, t_lookahead_rule, p)
15842 )
15843 {
15844 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
15845 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15846 if (_token == NULL) {
15847 D(p->level--);
15848 return NULL;
15849 }
15850 int _end_lineno = _token->end_lineno;
15851 UNUSED(_end_lineno); // Only used by EXTRA macro
15852 int _end_col_offset = _token->end_col_offset;
15853 UNUSED(_end_col_offset); // Only used by EXTRA macro
15854 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
15855 if (_res == NULL && PyErr_Occurred()) {
15856 p->error_indicator = 1;
15857 D(p->level--);
15858 return NULL;
15859 }
15860 goto done;
15861 }
15862 p->mark = _mark;
15863 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
15864 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
15865 }
15866 { // t_primary '[' slices ']' !t_lookahead
15867 if (p->error_indicator) {
15868 D(p->level--);
15869 return NULL;
15870 }
15871 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
15872 Token * _literal;
15873 Token * _literal_1;
15874 expr_ty a;
15875 expr_ty b;
15876 if (
15877 (a = t_primary_rule(p)) // t_primary
15878 &&
15879 (_literal = _PyPegen_expect_token(p, 9)) // token='['
15880 &&
15881 (b = slices_rule(p)) // slices
15882 &&
15883 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
15884 &&
15885 _PyPegen_lookahead(0, t_lookahead_rule, p)
15886 )
15887 {
15888 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
15889 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15890 if (_token == NULL) {
15891 D(p->level--);
15892 return NULL;
15893 }
15894 int _end_lineno = _token->end_lineno;
15895 UNUSED(_end_lineno); // Only used by EXTRA macro
15896 int _end_col_offset = _token->end_col_offset;
15897 UNUSED(_end_col_offset); // Only used by EXTRA macro
15898 _res = _Py_Subscript ( a , b , Store , EXTRA );
15899 if (_res == NULL && PyErr_Occurred()) {
15900 p->error_indicator = 1;
15901 D(p->level--);
15902 return NULL;
15903 }
15904 goto done;
15905 }
15906 p->mark = _mark;
15907 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
15908 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
15909 }
15910 _res = NULL;
15911 done:
15912 D(p->level--);
15913 return _res;
15914}
15915
15916// del_targets: ','.del_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010015917static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015918del_targets_rule(Parser *p)
15919{
15920 D(p->level++);
15921 if (p->error_indicator) {
15922 D(p->level--);
15923 return NULL;
15924 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015925 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015926 int _mark = p->mark;
15927 { // ','.del_target+ ','?
15928 if (p->error_indicator) {
15929 D(p->level--);
15930 return NULL;
15931 }
15932 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
15933 void *_opt_var;
15934 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010015935 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015936 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015937 (a = (asdl_expr_seq*)_gather_138_rule(p)) // ','.del_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015938 &&
15939 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15940 )
15941 {
15942 D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
15943 _res = a;
15944 if (_res == NULL && PyErr_Occurred()) {
15945 p->error_indicator = 1;
15946 D(p->level--);
15947 return NULL;
15948 }
15949 goto done;
15950 }
15951 p->mark = _mark;
15952 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
15953 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
15954 }
15955 _res = NULL;
15956 done:
15957 D(p->level--);
15958 return _res;
15959}
15960
15961// del_target:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015962// | t_primary '.' NAME !t_lookahead
15963// | t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015964// | del_t_atom
15965static expr_ty
15966del_target_rule(Parser *p)
15967{
15968 D(p->level++);
15969 if (p->error_indicator) {
15970 D(p->level--);
15971 return NULL;
15972 }
15973 expr_ty _res = NULL;
15974 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
15975 D(p->level--);
15976 return _res;
15977 }
15978 int _mark = p->mark;
15979 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15980 p->error_indicator = 1;
15981 D(p->level--);
15982 return NULL;
15983 }
15984 int _start_lineno = p->tokens[_mark]->lineno;
15985 UNUSED(_start_lineno); // Only used by EXTRA macro
15986 int _start_col_offset = p->tokens[_mark]->col_offset;
15987 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015988 { // t_primary '.' NAME !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015989 if (p->error_indicator) {
15990 D(p->level--);
15991 return NULL;
15992 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015993 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 +010015994 Token * _literal;
15995 expr_ty a;
15996 expr_ty b;
15997 if (
15998 (a = t_primary_rule(p)) // t_primary
15999 &&
16000 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16001 &&
16002 (b = _PyPegen_name_token(p)) // NAME
16003 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016004 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016005 )
16006 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016007 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 +010016008 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16009 if (_token == NULL) {
16010 D(p->level--);
16011 return NULL;
16012 }
16013 int _end_lineno = _token->end_lineno;
16014 UNUSED(_end_lineno); // Only used by EXTRA macro
16015 int _end_col_offset = _token->end_col_offset;
16016 UNUSED(_end_col_offset); // Only used by EXTRA macro
16017 _res = _Py_Attribute ( a , b -> v . Name . id , Del , EXTRA );
16018 if (_res == NULL && PyErr_Occurred()) {
16019 p->error_indicator = 1;
16020 D(p->level--);
16021 return NULL;
16022 }
16023 goto done;
16024 }
16025 p->mark = _mark;
16026 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016027 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016028 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016029 { // t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016030 if (p->error_indicator) {
16031 D(p->level--);
16032 return NULL;
16033 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016034 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 +010016035 Token * _literal;
16036 Token * _literal_1;
16037 expr_ty a;
16038 expr_ty b;
16039 if (
16040 (a = t_primary_rule(p)) // t_primary
16041 &&
16042 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16043 &&
16044 (b = slices_rule(p)) // slices
16045 &&
16046 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16047 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016048 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016049 )
16050 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016051 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 +010016052 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16053 if (_token == NULL) {
16054 D(p->level--);
16055 return NULL;
16056 }
16057 int _end_lineno = _token->end_lineno;
16058 UNUSED(_end_lineno); // Only used by EXTRA macro
16059 int _end_col_offset = _token->end_col_offset;
16060 UNUSED(_end_col_offset); // Only used by EXTRA macro
16061 _res = _Py_Subscript ( a , b , Del , EXTRA );
16062 if (_res == NULL && PyErr_Occurred()) {
16063 p->error_indicator = 1;
16064 D(p->level--);
16065 return NULL;
16066 }
16067 goto done;
16068 }
16069 p->mark = _mark;
16070 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016071 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016072 }
16073 { // del_t_atom
16074 if (p->error_indicator) {
16075 D(p->level--);
16076 return NULL;
16077 }
16078 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
16079 expr_ty del_t_atom_var;
16080 if (
16081 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
16082 )
16083 {
16084 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
16085 _res = del_t_atom_var;
16086 goto done;
16087 }
16088 p->mark = _mark;
16089 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
16090 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
16091 }
16092 _res = NULL;
16093 done:
16094 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
16095 D(p->level--);
16096 return _res;
16097}
16098
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016099// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016100static expr_ty
16101del_t_atom_rule(Parser *p)
16102{
16103 D(p->level++);
16104 if (p->error_indicator) {
16105 D(p->level--);
16106 return NULL;
16107 }
16108 expr_ty _res = NULL;
16109 int _mark = p->mark;
16110 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16111 p->error_indicator = 1;
16112 D(p->level--);
16113 return NULL;
16114 }
16115 int _start_lineno = p->tokens[_mark]->lineno;
16116 UNUSED(_start_lineno); // Only used by EXTRA macro
16117 int _start_col_offset = p->tokens[_mark]->col_offset;
16118 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016119 { // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016120 if (p->error_indicator) {
16121 D(p->level--);
16122 return NULL;
16123 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016124 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016125 expr_ty a;
16126 if (
16127 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016128 )
16129 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016130 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 +010016131 _res = _PyPegen_set_expr_context ( p , a , Del );
16132 if (_res == NULL && PyErr_Occurred()) {
16133 p->error_indicator = 1;
16134 D(p->level--);
16135 return NULL;
16136 }
16137 goto done;
16138 }
16139 p->mark = _mark;
16140 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016141 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016142 }
16143 { // '(' del_target ')'
16144 if (p->error_indicator) {
16145 D(p->level--);
16146 return NULL;
16147 }
16148 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
16149 Token * _literal;
16150 Token * _literal_1;
16151 expr_ty a;
16152 if (
16153 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16154 &&
16155 (a = del_target_rule(p)) // del_target
16156 &&
16157 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16158 )
16159 {
16160 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
16161 _res = _PyPegen_set_expr_context ( p , a , Del );
16162 if (_res == NULL && PyErr_Occurred()) {
16163 p->error_indicator = 1;
16164 D(p->level--);
16165 return NULL;
16166 }
16167 goto done;
16168 }
16169 p->mark = _mark;
16170 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16171 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
16172 }
16173 { // '(' del_targets? ')'
16174 if (p->error_indicator) {
16175 D(p->level--);
16176 return NULL;
16177 }
16178 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
16179 Token * _literal;
16180 Token * _literal_1;
16181 void *a;
16182 if (
16183 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16184 &&
16185 (a = del_targets_rule(p), 1) // del_targets?
16186 &&
16187 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16188 )
16189 {
16190 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
16191 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16192 if (_token == NULL) {
16193 D(p->level--);
16194 return NULL;
16195 }
16196 int _end_lineno = _token->end_lineno;
16197 UNUSED(_end_lineno); // Only used by EXTRA macro
16198 int _end_col_offset = _token->end_col_offset;
16199 UNUSED(_end_col_offset); // Only used by EXTRA macro
16200 _res = _Py_Tuple ( a , Del , EXTRA );
16201 if (_res == NULL && PyErr_Occurred()) {
16202 p->error_indicator = 1;
16203 D(p->level--);
16204 return NULL;
16205 }
16206 goto done;
16207 }
16208 p->mark = _mark;
16209 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16210 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
16211 }
16212 { // '[' del_targets? ']'
16213 if (p->error_indicator) {
16214 D(p->level--);
16215 return NULL;
16216 }
16217 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
16218 Token * _literal;
16219 Token * _literal_1;
16220 void *a;
16221 if (
16222 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16223 &&
16224 (a = del_targets_rule(p), 1) // del_targets?
16225 &&
16226 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16227 )
16228 {
16229 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
16230 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16231 if (_token == NULL) {
16232 D(p->level--);
16233 return NULL;
16234 }
16235 int _end_lineno = _token->end_lineno;
16236 UNUSED(_end_lineno); // Only used by EXTRA macro
16237 int _end_col_offset = _token->end_col_offset;
16238 UNUSED(_end_col_offset); // Only used by EXTRA macro
16239 _res = _Py_List ( a , Del , EXTRA );
16240 if (_res == NULL && PyErr_Occurred()) {
16241 p->error_indicator = 1;
16242 D(p->level--);
16243 return NULL;
16244 }
16245 goto done;
16246 }
16247 p->mark = _mark;
16248 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16249 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
16250 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016251 _res = NULL;
16252 done:
16253 D(p->level--);
16254 return _res;
16255}
16256
16257// targets: ','.target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010016258static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016259targets_rule(Parser *p)
16260{
16261 D(p->level++);
16262 if (p->error_indicator) {
16263 D(p->level--);
16264 return NULL;
16265 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016266 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016267 int _mark = p->mark;
16268 { // ','.target+ ','?
16269 if (p->error_indicator) {
16270 D(p->level--);
16271 return NULL;
16272 }
16273 D(fprintf(stderr, "%*c> targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
16274 void *_opt_var;
16275 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010016276 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016277 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080016278 (a = (asdl_expr_seq*)_gather_140_rule(p)) // ','.target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016279 &&
16280 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16281 )
16282 {
16283 D(fprintf(stderr, "%*c+ targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
16284 _res = a;
16285 if (_res == NULL && PyErr_Occurred()) {
16286 p->error_indicator = 1;
16287 D(p->level--);
16288 return NULL;
16289 }
16290 goto done;
16291 }
16292 p->mark = _mark;
16293 D(fprintf(stderr, "%*c%s targets[%d-%d]: %s failed!\n", p->level, ' ',
16294 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.target+ ','?"));
16295 }
16296 _res = NULL;
16297 done:
16298 D(p->level--);
16299 return _res;
16300}
16301
16302// target:
16303// | t_primary '.' NAME !t_lookahead
16304// | t_primary '[' slices ']' !t_lookahead
16305// | t_atom
16306static expr_ty
16307target_rule(Parser *p)
16308{
16309 D(p->level++);
16310 if (p->error_indicator) {
16311 D(p->level--);
16312 return NULL;
16313 }
16314 expr_ty _res = NULL;
16315 if (_PyPegen_is_memoized(p, target_type, &_res)) {
16316 D(p->level--);
16317 return _res;
16318 }
16319 int _mark = p->mark;
16320 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16321 p->error_indicator = 1;
16322 D(p->level--);
16323 return NULL;
16324 }
16325 int _start_lineno = p->tokens[_mark]->lineno;
16326 UNUSED(_start_lineno); // Only used by EXTRA macro
16327 int _start_col_offset = p->tokens[_mark]->col_offset;
16328 UNUSED(_start_col_offset); // Only used by EXTRA macro
16329 { // t_primary '.' NAME !t_lookahead
16330 if (p->error_indicator) {
16331 D(p->level--);
16332 return NULL;
16333 }
16334 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16335 Token * _literal;
16336 expr_ty a;
16337 expr_ty b;
16338 if (
16339 (a = t_primary_rule(p)) // t_primary
16340 &&
16341 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16342 &&
16343 (b = _PyPegen_name_token(p)) // NAME
16344 &&
16345 _PyPegen_lookahead(0, t_lookahead_rule, p)
16346 )
16347 {
16348 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16349 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16350 if (_token == NULL) {
16351 D(p->level--);
16352 return NULL;
16353 }
16354 int _end_lineno = _token->end_lineno;
16355 UNUSED(_end_lineno); // Only used by EXTRA macro
16356 int _end_col_offset = _token->end_col_offset;
16357 UNUSED(_end_col_offset); // Only used by EXTRA macro
16358 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
16359 if (_res == NULL && PyErr_Occurred()) {
16360 p->error_indicator = 1;
16361 D(p->level--);
16362 return NULL;
16363 }
16364 goto done;
16365 }
16366 p->mark = _mark;
16367 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
16368 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16369 }
16370 { // t_primary '[' slices ']' !t_lookahead
16371 if (p->error_indicator) {
16372 D(p->level--);
16373 return NULL;
16374 }
16375 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16376 Token * _literal;
16377 Token * _literal_1;
16378 expr_ty a;
16379 expr_ty b;
16380 if (
16381 (a = t_primary_rule(p)) // t_primary
16382 &&
16383 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16384 &&
16385 (b = slices_rule(p)) // slices
16386 &&
16387 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16388 &&
16389 _PyPegen_lookahead(0, t_lookahead_rule, p)
16390 )
16391 {
16392 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16393 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16394 if (_token == NULL) {
16395 D(p->level--);
16396 return NULL;
16397 }
16398 int _end_lineno = _token->end_lineno;
16399 UNUSED(_end_lineno); // Only used by EXTRA macro
16400 int _end_col_offset = _token->end_col_offset;
16401 UNUSED(_end_col_offset); // Only used by EXTRA macro
16402 _res = _Py_Subscript ( a , b , Store , EXTRA );
16403 if (_res == NULL && PyErr_Occurred()) {
16404 p->error_indicator = 1;
16405 D(p->level--);
16406 return NULL;
16407 }
16408 goto done;
16409 }
16410 p->mark = _mark;
16411 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
16412 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16413 }
16414 { // t_atom
16415 if (p->error_indicator) {
16416 D(p->level--);
16417 return NULL;
16418 }
16419 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_atom"));
16420 expr_ty t_atom_var;
16421 if (
16422 (t_atom_var = t_atom_rule(p)) // t_atom
16423 )
16424 {
16425 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_atom"));
16426 _res = t_atom_var;
16427 goto done;
16428 }
16429 p->mark = _mark;
16430 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
16431 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_atom"));
16432 }
16433 _res = NULL;
16434 done:
16435 _PyPegen_insert_memo(p, _mark, target_type, _res);
16436 D(p->level--);
16437 return _res;
16438}
16439
16440// Left-recursive
16441// t_primary:
16442// | t_primary '.' NAME &t_lookahead
16443// | t_primary '[' slices ']' &t_lookahead
16444// | t_primary genexp &t_lookahead
16445// | t_primary '(' arguments? ')' &t_lookahead
16446// | atom &t_lookahead
16447static expr_ty t_primary_raw(Parser *);
16448static expr_ty
16449t_primary_rule(Parser *p)
16450{
16451 D(p->level++);
16452 expr_ty _res = NULL;
16453 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
16454 D(p->level--);
16455 return _res;
16456 }
16457 int _mark = p->mark;
16458 int _resmark = p->mark;
16459 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080016460 int tmpvar_9 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
16461 if (tmpvar_9) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016462 D(p->level--);
16463 return _res;
16464 }
16465 p->mark = _mark;
16466 void *_raw = t_primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020016467 if (p->error_indicator)
16468 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016469 if (_raw == NULL || p->mark <= _resmark)
16470 break;
16471 _resmark = p->mark;
16472 _res = _raw;
16473 }
16474 p->mark = _resmark;
16475 D(p->level--);
16476 return _res;
16477}
16478static expr_ty
16479t_primary_raw(Parser *p)
16480{
16481 D(p->level++);
16482 if (p->error_indicator) {
16483 D(p->level--);
16484 return NULL;
16485 }
16486 expr_ty _res = NULL;
16487 int _mark = p->mark;
16488 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16489 p->error_indicator = 1;
16490 D(p->level--);
16491 return NULL;
16492 }
16493 int _start_lineno = p->tokens[_mark]->lineno;
16494 UNUSED(_start_lineno); // Only used by EXTRA macro
16495 int _start_col_offset = p->tokens[_mark]->col_offset;
16496 UNUSED(_start_col_offset); // Only used by EXTRA macro
16497 { // t_primary '.' NAME &t_lookahead
16498 if (p->error_indicator) {
16499 D(p->level--);
16500 return NULL;
16501 }
16502 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
16503 Token * _literal;
16504 expr_ty a;
16505 expr_ty b;
16506 if (
16507 (a = t_primary_rule(p)) // t_primary
16508 &&
16509 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16510 &&
16511 (b = _PyPegen_name_token(p)) // NAME
16512 &&
16513 _PyPegen_lookahead(1, t_lookahead_rule, p)
16514 )
16515 {
16516 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
16517 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16518 if (_token == NULL) {
16519 D(p->level--);
16520 return NULL;
16521 }
16522 int _end_lineno = _token->end_lineno;
16523 UNUSED(_end_lineno); // Only used by EXTRA macro
16524 int _end_col_offset = _token->end_col_offset;
16525 UNUSED(_end_col_offset); // Only used by EXTRA macro
16526 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
16527 if (_res == NULL && PyErr_Occurred()) {
16528 p->error_indicator = 1;
16529 D(p->level--);
16530 return NULL;
16531 }
16532 goto done;
16533 }
16534 p->mark = _mark;
16535 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
16536 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
16537 }
16538 { // t_primary '[' slices ']' &t_lookahead
16539 if (p->error_indicator) {
16540 D(p->level--);
16541 return NULL;
16542 }
16543 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
16544 Token * _literal;
16545 Token * _literal_1;
16546 expr_ty a;
16547 expr_ty b;
16548 if (
16549 (a = t_primary_rule(p)) // t_primary
16550 &&
16551 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16552 &&
16553 (b = slices_rule(p)) // slices
16554 &&
16555 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16556 &&
16557 _PyPegen_lookahead(1, t_lookahead_rule, p)
16558 )
16559 {
16560 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
16561 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16562 if (_token == NULL) {
16563 D(p->level--);
16564 return NULL;
16565 }
16566 int _end_lineno = _token->end_lineno;
16567 UNUSED(_end_lineno); // Only used by EXTRA macro
16568 int _end_col_offset = _token->end_col_offset;
16569 UNUSED(_end_col_offset); // Only used by EXTRA macro
16570 _res = _Py_Subscript ( a , b , Load , EXTRA );
16571 if (_res == NULL && PyErr_Occurred()) {
16572 p->error_indicator = 1;
16573 D(p->level--);
16574 return NULL;
16575 }
16576 goto done;
16577 }
16578 p->mark = _mark;
16579 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
16580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
16581 }
16582 { // t_primary genexp &t_lookahead
16583 if (p->error_indicator) {
16584 D(p->level--);
16585 return NULL;
16586 }
16587 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
16588 expr_ty a;
16589 expr_ty b;
16590 if (
16591 (a = t_primary_rule(p)) // t_primary
16592 &&
16593 (b = genexp_rule(p)) // genexp
16594 &&
16595 _PyPegen_lookahead(1, t_lookahead_rule, p)
16596 )
16597 {
16598 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
16599 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16600 if (_token == NULL) {
16601 D(p->level--);
16602 return NULL;
16603 }
16604 int _end_lineno = _token->end_lineno;
16605 UNUSED(_end_lineno); // Only used by EXTRA macro
16606 int _end_col_offset = _token->end_col_offset;
16607 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030016608 _res = _Py_Call ( a , CHECK ( asdl_expr_seq * , ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016609 if (_res == NULL && PyErr_Occurred()) {
16610 p->error_indicator = 1;
16611 D(p->level--);
16612 return NULL;
16613 }
16614 goto done;
16615 }
16616 p->mark = _mark;
16617 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
16618 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
16619 }
16620 { // t_primary '(' arguments? ')' &t_lookahead
16621 if (p->error_indicator) {
16622 D(p->level--);
16623 return NULL;
16624 }
16625 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
16626 Token * _literal;
16627 Token * _literal_1;
16628 expr_ty a;
16629 void *b;
16630 if (
16631 (a = t_primary_rule(p)) // t_primary
16632 &&
16633 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16634 &&
16635 (b = arguments_rule(p), 1) // arguments?
16636 &&
16637 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16638 &&
16639 _PyPegen_lookahead(1, t_lookahead_rule, p)
16640 )
16641 {
16642 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
16643 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16644 if (_token == NULL) {
16645 D(p->level--);
16646 return NULL;
16647 }
16648 int _end_lineno = _token->end_lineno;
16649 UNUSED(_end_lineno); // Only used by EXTRA macro
16650 int _end_col_offset = _token->end_col_offset;
16651 UNUSED(_end_col_offset); // Only used by EXTRA macro
16652 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
16653 if (_res == NULL && PyErr_Occurred()) {
16654 p->error_indicator = 1;
16655 D(p->level--);
16656 return NULL;
16657 }
16658 goto done;
16659 }
16660 p->mark = _mark;
16661 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
16662 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
16663 }
16664 { // atom &t_lookahead
16665 if (p->error_indicator) {
16666 D(p->level--);
16667 return NULL;
16668 }
16669 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
16670 expr_ty a;
16671 if (
16672 (a = atom_rule(p)) // atom
16673 &&
16674 _PyPegen_lookahead(1, t_lookahead_rule, p)
16675 )
16676 {
16677 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
16678 _res = a;
16679 if (_res == NULL && PyErr_Occurred()) {
16680 p->error_indicator = 1;
16681 D(p->level--);
16682 return NULL;
16683 }
16684 goto done;
16685 }
16686 p->mark = _mark;
16687 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
16688 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
16689 }
16690 _res = NULL;
16691 done:
16692 D(p->level--);
16693 return _res;
16694}
16695
16696// t_lookahead: '(' | '[' | '.'
16697static void *
16698t_lookahead_rule(Parser *p)
16699{
16700 D(p->level++);
16701 if (p->error_indicator) {
16702 D(p->level--);
16703 return NULL;
16704 }
16705 void * _res = NULL;
16706 int _mark = p->mark;
16707 { // '('
16708 if (p->error_indicator) {
16709 D(p->level--);
16710 return NULL;
16711 }
16712 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
16713 Token * _literal;
16714 if (
16715 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16716 )
16717 {
16718 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
16719 _res = _literal;
16720 goto done;
16721 }
16722 p->mark = _mark;
16723 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
16724 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
16725 }
16726 { // '['
16727 if (p->error_indicator) {
16728 D(p->level--);
16729 return NULL;
16730 }
16731 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
16732 Token * _literal;
16733 if (
16734 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16735 )
16736 {
16737 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
16738 _res = _literal;
16739 goto done;
16740 }
16741 p->mark = _mark;
16742 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
16743 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
16744 }
16745 { // '.'
16746 if (p->error_indicator) {
16747 D(p->level--);
16748 return NULL;
16749 }
16750 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
16751 Token * _literal;
16752 if (
16753 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16754 )
16755 {
16756 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
16757 _res = _literal;
16758 goto done;
16759 }
16760 p->mark = _mark;
16761 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
16762 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
16763 }
16764 _res = NULL;
16765 done:
16766 D(p->level--);
16767 return _res;
16768}
16769
16770// t_atom: NAME | '(' target ')' | '(' targets? ')' | '[' targets? ']'
16771static expr_ty
16772t_atom_rule(Parser *p)
16773{
16774 D(p->level++);
16775 if (p->error_indicator) {
16776 D(p->level--);
16777 return NULL;
16778 }
16779 expr_ty _res = NULL;
16780 int _mark = p->mark;
16781 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16782 p->error_indicator = 1;
16783 D(p->level--);
16784 return NULL;
16785 }
16786 int _start_lineno = p->tokens[_mark]->lineno;
16787 UNUSED(_start_lineno); // Only used by EXTRA macro
16788 int _start_col_offset = p->tokens[_mark]->col_offset;
16789 UNUSED(_start_col_offset); // Only used by EXTRA macro
16790 { // NAME
16791 if (p->error_indicator) {
16792 D(p->level--);
16793 return NULL;
16794 }
16795 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16796 expr_ty a;
16797 if (
16798 (a = _PyPegen_name_token(p)) // NAME
16799 )
16800 {
16801 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16802 _res = _PyPegen_set_expr_context ( p , a , Store );
16803 if (_res == NULL && PyErr_Occurred()) {
16804 p->error_indicator = 1;
16805 D(p->level--);
16806 return NULL;
16807 }
16808 goto done;
16809 }
16810 p->mark = _mark;
16811 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16813 }
16814 { // '(' target ')'
16815 if (p->error_indicator) {
16816 D(p->level--);
16817 return NULL;
16818 }
16819 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
16820 Token * _literal;
16821 Token * _literal_1;
16822 expr_ty a;
16823 if (
16824 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16825 &&
16826 (a = target_rule(p)) // target
16827 &&
16828 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16829 )
16830 {
16831 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
16832 _res = _PyPegen_set_expr_context ( p , a , Store );
16833 if (_res == NULL && PyErr_Occurred()) {
16834 p->error_indicator = 1;
16835 D(p->level--);
16836 return NULL;
16837 }
16838 goto done;
16839 }
16840 p->mark = _mark;
16841 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16842 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target ')'"));
16843 }
16844 { // '(' targets? ')'
16845 if (p->error_indicator) {
16846 D(p->level--);
16847 return NULL;
16848 }
16849 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
16850 Token * _literal;
16851 Token * _literal_1;
16852 void *b;
16853 if (
16854 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16855 &&
16856 (b = targets_rule(p), 1) // targets?
16857 &&
16858 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16859 )
16860 {
16861 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
16862 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16863 if (_token == NULL) {
16864 D(p->level--);
16865 return NULL;
16866 }
16867 int _end_lineno = _token->end_lineno;
16868 UNUSED(_end_lineno); // Only used by EXTRA macro
16869 int _end_col_offset = _token->end_col_offset;
16870 UNUSED(_end_col_offset); // Only used by EXTRA macro
16871 _res = _Py_Tuple ( b , Store , EXTRA );
16872 if (_res == NULL && PyErr_Occurred()) {
16873 p->error_indicator = 1;
16874 D(p->level--);
16875 return NULL;
16876 }
16877 goto done;
16878 }
16879 p->mark = _mark;
16880 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16881 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' targets? ')'"));
16882 }
16883 { // '[' targets? ']'
16884 if (p->error_indicator) {
16885 D(p->level--);
16886 return NULL;
16887 }
16888 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
16889 Token * _literal;
16890 Token * _literal_1;
16891 void *b;
16892 if (
16893 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16894 &&
16895 (b = targets_rule(p), 1) // targets?
16896 &&
16897 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16898 )
16899 {
16900 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
16901 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16902 if (_token == NULL) {
16903 D(p->level--);
16904 return NULL;
16905 }
16906 int _end_lineno = _token->end_lineno;
16907 UNUSED(_end_lineno); // Only used by EXTRA macro
16908 int _end_col_offset = _token->end_col_offset;
16909 UNUSED(_end_col_offset); // Only used by EXTRA macro
16910 _res = _Py_List ( b , Store , EXTRA );
16911 if (_res == NULL && PyErr_Occurred()) {
16912 p->error_indicator = 1;
16913 D(p->level--);
16914 return NULL;
16915 }
16916 goto done;
16917 }
16918 p->mark = _mark;
16919 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
16920 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' targets? ']'"));
16921 }
16922 _res = NULL;
16923 done:
16924 D(p->level--);
16925 return _res;
16926}
16927
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020016928// invalid_arguments:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016929// | args ',' '*'
16930// | expression for_if_clauses ',' [args | expression for_if_clauses]
16931// | args for_if_clauses
16932// | args ',' expression for_if_clauses
16933// | args ',' args
16934static void *
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020016935invalid_arguments_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016936{
16937 D(p->level++);
16938 if (p->error_indicator) {
16939 D(p->level--);
16940 return NULL;
16941 }
16942 void * _res = NULL;
16943 int _mark = p->mark;
16944 { // args ',' '*'
16945 if (p->error_indicator) {
16946 D(p->level--);
16947 return NULL;
16948 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020016949 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016950 Token * _literal;
16951 Token * _literal_1;
16952 expr_ty args_var;
16953 if (
16954 (args_var = args_rule(p)) // args
16955 &&
16956 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16957 &&
16958 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
16959 )
16960 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020016961 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016962 _res = RAISE_SYNTAX_ERROR ( "iterable argument unpacking follows keyword argument unpacking" );
16963 if (_res == NULL && PyErr_Occurred()) {
16964 p->error_indicator = 1;
16965 D(p->level--);
16966 return NULL;
16967 }
16968 goto done;
16969 }
16970 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020016971 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016972 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
16973 }
16974 { // expression for_if_clauses ',' [args | expression for_if_clauses]
16975 if (p->error_indicator) {
16976 D(p->level--);
16977 return NULL;
16978 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020016979 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 +010016980 Token * _literal;
16981 void *_opt_var;
16982 UNUSED(_opt_var); // Silence compiler warnings
16983 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010016984 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016985 if (
16986 (a = expression_rule(p)) // expression
16987 &&
16988 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
16989 &&
16990 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16991 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080016992 (_opt_var = _tmp_142_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016993 )
16994 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020016995 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016996 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
16997 if (_res == NULL && PyErr_Occurred()) {
16998 p->error_indicator = 1;
16999 D(p->level--);
17000 return NULL;
17001 }
17002 goto done;
17003 }
17004 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017005 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017006 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
17007 }
17008 { // args for_if_clauses
17009 if (p->error_indicator) {
17010 D(p->level--);
17011 return NULL;
17012 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017013 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 +010017014 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017015 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017016 if (
17017 (a = args_rule(p)) // args
17018 &&
17019 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17020 )
17021 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017022 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args for_if_clauses"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017023 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
17024 if (_res == NULL && PyErr_Occurred()) {
17025 p->error_indicator = 1;
17026 D(p->level--);
17027 return NULL;
17028 }
17029 goto done;
17030 }
17031 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017032 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
17034 }
17035 { // args ',' expression for_if_clauses
17036 if (p->error_indicator) {
17037 D(p->level--);
17038 return NULL;
17039 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017040 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 +010017041 Token * _literal;
17042 expr_ty a;
17043 expr_ty args_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017044 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017045 if (
17046 (args_var = args_rule(p)) // args
17047 &&
17048 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17049 &&
17050 (a = expression_rule(p)) // expression
17051 &&
17052 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17053 )
17054 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017055 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' expression for_if_clauses"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017056 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
17057 if (_res == NULL && PyErr_Occurred()) {
17058 p->error_indicator = 1;
17059 D(p->level--);
17060 return NULL;
17061 }
17062 goto done;
17063 }
17064 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017065 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017066 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
17067 }
17068 { // args ',' args
17069 if (p->error_indicator) {
17070 D(p->level--);
17071 return NULL;
17072 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017073 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017074 Token * _literal;
17075 expr_ty a;
17076 expr_ty args_var;
17077 if (
17078 (a = args_rule(p)) // args
17079 &&
17080 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17081 &&
17082 (args_var = args_rule(p)) // args
17083 )
17084 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017085 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 +010017086 _res = _PyPegen_arguments_parsing_error ( p , a );
17087 if (_res == NULL && PyErr_Occurred()) {
17088 p->error_indicator = 1;
17089 D(p->level--);
17090 return NULL;
17091 }
17092 goto done;
17093 }
17094 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017095 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017096 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
17097 }
17098 _res = NULL;
17099 done:
17100 D(p->level--);
17101 return _res;
17102}
17103
17104// invalid_kwarg: expression '='
17105static void *
17106invalid_kwarg_rule(Parser *p)
17107{
17108 D(p->level++);
17109 if (p->error_indicator) {
17110 D(p->level--);
17111 return NULL;
17112 }
17113 void * _res = NULL;
17114 int _mark = p->mark;
17115 { // expression '='
17116 if (p->error_indicator) {
17117 D(p->level--);
17118 return NULL;
17119 }
17120 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression '='"));
Pablo Galindo43c4fb62020-12-13 16:46:48 +000017121 Token * a;
17122 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017123 if (
Pablo Galindo43c4fb62020-12-13 16:46:48 +000017124 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017125 &&
Pablo Galindo43c4fb62020-12-13 16:46:48 +000017126 (a = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017127 )
17128 {
17129 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression '='"));
17130 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression cannot contain assignment, perhaps you meant \"==\"?" );
17131 if (_res == NULL && PyErr_Occurred()) {
17132 p->error_indicator = 1;
17133 D(p->level--);
17134 return NULL;
17135 }
17136 goto done;
17137 }
17138 p->mark = _mark;
17139 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
17140 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression '='"));
17141 }
17142 _res = NULL;
17143 done:
17144 D(p->level--);
17145 return _res;
17146}
17147
17148// invalid_named_expression: expression ':=' expression
17149static void *
17150invalid_named_expression_rule(Parser *p)
17151{
17152 D(p->level++);
17153 if (p->error_indicator) {
17154 D(p->level--);
17155 return NULL;
17156 }
17157 void * _res = NULL;
17158 int _mark = p->mark;
17159 { // expression ':=' expression
17160 if (p->error_indicator) {
17161 D(p->level--);
17162 return NULL;
17163 }
17164 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
17165 Token * _literal;
17166 expr_ty a;
17167 expr_ty expression_var;
17168 if (
17169 (a = expression_rule(p)) // expression
17170 &&
17171 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
17172 &&
17173 (expression_var = expression_rule(p)) // expression
17174 )
17175 {
17176 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
17177 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
17178 if (_res == NULL && PyErr_Occurred()) {
17179 p->error_indicator = 1;
17180 D(p->level--);
17181 return NULL;
17182 }
17183 goto done;
17184 }
17185 p->mark = _mark;
17186 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
17187 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
17188 }
17189 _res = NULL;
17190 done:
17191 D(p->level--);
17192 return _res;
17193}
17194
17195// invalid_assignment:
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017196// | invalid_ann_assign_target ':' expression
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017197// | star_named_expression ',' star_named_expressions* ':' expression
17198// | expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017199// | ((star_targets '='))* star_expressions '='
17200// | ((star_targets '='))* yield_expr '='
17201// | star_expressions augassign (yield_expr | star_expressions)
17202static void *
17203invalid_assignment_rule(Parser *p)
17204{
17205 D(p->level++);
17206 if (p->error_indicator) {
17207 D(p->level--);
17208 return NULL;
17209 }
17210 void * _res = NULL;
17211 int _mark = p->mark;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017212 { // invalid_ann_assign_target ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017213 if (p->error_indicator) {
17214 D(p->level--);
17215 return NULL;
17216 }
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017217 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 +010017218 Token * _literal;
17219 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017220 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017221 if (
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017222 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017223 &&
17224 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017225 &&
17226 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017227 )
17228 {
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017229 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
17230 _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 +010017231 if (_res == NULL && PyErr_Occurred()) {
17232 p->error_indicator = 1;
17233 D(p->level--);
17234 return NULL;
17235 }
17236 goto done;
17237 }
17238 p->mark = _mark;
17239 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017240 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017241 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017242 { // star_named_expression ',' star_named_expressions* ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017243 if (p->error_indicator) {
17244 D(p->level--);
17245 return NULL;
17246 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017247 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 +010017248 Token * _literal;
17249 Token * _literal_1;
Brandt Bucher145bf262021-02-26 14:51:55 -080017250 asdl_seq * _loop0_143_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017251 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017252 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017253 if (
17254 (a = star_named_expression_rule(p)) // star_named_expression
17255 &&
17256 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17257 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080017258 (_loop0_143_var = _loop0_143_rule(p)) // star_named_expressions*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017259 &&
17260 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017261 &&
17262 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017263 )
17264 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017265 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 +010017266 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
17267 if (_res == NULL && PyErr_Occurred()) {
17268 p->error_indicator = 1;
17269 D(p->level--);
17270 return NULL;
17271 }
17272 goto done;
17273 }
17274 p->mark = _mark;
17275 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017276 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017277 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017278 { // expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017279 if (p->error_indicator) {
17280 D(p->level--);
17281 return NULL;
17282 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017283 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017284 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017285 expr_ty a;
17286 expr_ty expression_var;
17287 if (
17288 (a = expression_rule(p)) // expression
17289 &&
17290 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
17291 &&
17292 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017293 )
17294 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017295 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 +010017296 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
17297 if (_res == NULL && PyErr_Occurred()) {
17298 p->error_indicator = 1;
17299 D(p->level--);
17300 return NULL;
17301 }
17302 goto done;
17303 }
17304 p->mark = _mark;
17305 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030017306 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017307 }
17308 { // ((star_targets '='))* star_expressions '='
17309 if (p->error_indicator) {
17310 D(p->level--);
17311 return NULL;
17312 }
17313 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
17314 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080017315 asdl_seq * _loop0_144_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017316 expr_ty a;
17317 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080017318 (_loop0_144_var = _loop0_144_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017319 &&
17320 (a = star_expressions_rule(p)) // star_expressions
17321 &&
17322 (_literal = _PyPegen_expect_token(p, 22)) // token='='
17323 )
17324 {
17325 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 +030017326 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017327 if (_res == NULL && PyErr_Occurred()) {
17328 p->error_indicator = 1;
17329 D(p->level--);
17330 return NULL;
17331 }
17332 goto done;
17333 }
17334 p->mark = _mark;
17335 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
17336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
17337 }
17338 { // ((star_targets '='))* yield_expr '='
17339 if (p->error_indicator) {
17340 D(p->level--);
17341 return NULL;
17342 }
17343 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
17344 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080017345 asdl_seq * _loop0_145_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017346 expr_ty a;
17347 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080017348 (_loop0_145_var = _loop0_145_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017349 &&
17350 (a = yield_expr_rule(p)) // yield_expr
17351 &&
17352 (_literal = _PyPegen_expect_token(p, 22)) // token='='
17353 )
17354 {
17355 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
17356 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
17357 if (_res == NULL && PyErr_Occurred()) {
17358 p->error_indicator = 1;
17359 D(p->level--);
17360 return NULL;
17361 }
17362 goto done;
17363 }
17364 p->mark = _mark;
17365 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
17366 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
17367 }
17368 { // star_expressions augassign (yield_expr | star_expressions)
17369 if (p->error_indicator) {
17370 D(p->level--);
17371 return NULL;
17372 }
17373 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080017374 void *_tmp_146_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017375 expr_ty a;
17376 AugOperator* augassign_var;
17377 if (
17378 (a = star_expressions_rule(p)) // star_expressions
17379 &&
17380 (augassign_var = augassign_rule(p)) // augassign
17381 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080017382 (_tmp_146_var = _tmp_146_rule(p)) // yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017383 )
17384 {
17385 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
17386 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
17387 if (_res == NULL && PyErr_Occurred()) {
17388 p->error_indicator = 1;
17389 D(p->level--);
17390 return NULL;
17391 }
17392 goto done;
17393 }
17394 p->mark = _mark;
17395 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
17396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
17397 }
17398 _res = NULL;
17399 done:
17400 D(p->level--);
17401 return _res;
17402}
17403
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030017404// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
17405static expr_ty
17406invalid_ann_assign_target_rule(Parser *p)
17407{
17408 D(p->level++);
17409 if (p->error_indicator) {
17410 D(p->level--);
17411 return NULL;
17412 }
17413 expr_ty _res = NULL;
17414 int _mark = p->mark;
17415 { // list
17416 if (p->error_indicator) {
17417 D(p->level--);
17418 return NULL;
17419 }
17420 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
17421 expr_ty list_var;
17422 if (
17423 (list_var = list_rule(p)) // list
17424 )
17425 {
17426 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
17427 _res = list_var;
17428 goto done;
17429 }
17430 p->mark = _mark;
17431 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
17432 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
17433 }
17434 { // tuple
17435 if (p->error_indicator) {
17436 D(p->level--);
17437 return NULL;
17438 }
17439 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
17440 expr_ty tuple_var;
17441 if (
17442 (tuple_var = tuple_rule(p)) // tuple
17443 )
17444 {
17445 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
17446 _res = tuple_var;
17447 goto done;
17448 }
17449 p->mark = _mark;
17450 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
17451 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
17452 }
17453 { // '(' invalid_ann_assign_target ')'
17454 if (p->error_indicator) {
17455 D(p->level--);
17456 return NULL;
17457 }
17458 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
17459 Token * _literal;
17460 Token * _literal_1;
17461 expr_ty a;
17462 if (
17463 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17464 &&
17465 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
17466 &&
17467 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17468 )
17469 {
17470 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
17471 _res = a;
17472 if (_res == NULL && PyErr_Occurred()) {
17473 p->error_indicator = 1;
17474 D(p->level--);
17475 return NULL;
17476 }
17477 goto done;
17478 }
17479 p->mark = _mark;
17480 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
17481 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
17482 }
17483 _res = NULL;
17484 done:
17485 D(p->level--);
17486 return _res;
17487}
17488
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017489// invalid_del_stmt: 'del' star_expressions
17490static void *
17491invalid_del_stmt_rule(Parser *p)
17492{
17493 D(p->level++);
17494 if (p->error_indicator) {
17495 D(p->level--);
17496 return NULL;
17497 }
17498 void * _res = NULL;
17499 int _mark = p->mark;
17500 { // 'del' star_expressions
17501 if (p->error_indicator) {
17502 D(p->level--);
17503 return NULL;
17504 }
17505 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
17506 Token * _keyword;
17507 expr_ty a;
17508 if (
17509 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
17510 &&
17511 (a = star_expressions_rule(p)) // star_expressions
17512 )
17513 {
17514 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 +030017515 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017516 if (_res == NULL && PyErr_Occurred()) {
17517 p->error_indicator = 1;
17518 D(p->level--);
17519 return NULL;
17520 }
17521 goto done;
17522 }
17523 p->mark = _mark;
17524 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
17525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
17526 }
17527 _res = NULL;
17528 done:
17529 D(p->level--);
17530 return _res;
17531}
17532
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017533// invalid_block: NEWLINE !INDENT
17534static void *
17535invalid_block_rule(Parser *p)
17536{
17537 D(p->level++);
17538 if (p->error_indicator) {
17539 D(p->level--);
17540 return NULL;
17541 }
17542 void * _res = NULL;
17543 int _mark = p->mark;
17544 { // NEWLINE !INDENT
17545 if (p->error_indicator) {
17546 D(p->level--);
17547 return NULL;
17548 }
17549 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
17550 Token * newline_var;
17551 if (
17552 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
17553 &&
17554 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
17555 )
17556 {
17557 D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
17558 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
17559 if (_res == NULL && PyErr_Occurred()) {
17560 p->error_indicator = 1;
17561 D(p->level--);
17562 return NULL;
17563 }
17564 goto done;
17565 }
17566 p->mark = _mark;
17567 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
17568 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
17569 }
17570 _res = NULL;
17571 done:
17572 D(p->level--);
17573 return _res;
17574}
17575
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020017576// Left-recursive
17577// invalid_primary: primary '{'
17578static void *
17579invalid_primary_rule(Parser *p)
17580{
17581 D(p->level++);
17582 if (p->error_indicator) {
17583 D(p->level--);
17584 return NULL;
17585 }
17586 void * _res = NULL;
17587 int _mark = p->mark;
17588 { // primary '{'
17589 if (p->error_indicator) {
17590 D(p->level--);
17591 return NULL;
17592 }
17593 D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
17594 Token * a;
17595 expr_ty primary_var;
17596 if (
17597 (primary_var = primary_rule(p)) // primary
17598 &&
17599 (a = _PyPegen_expect_token(p, 25)) // token='{'
17600 )
17601 {
17602 D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
17603 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
17604 if (_res == NULL && PyErr_Occurred()) {
17605 p->error_indicator = 1;
17606 D(p->level--);
17607 return NULL;
17608 }
17609 goto done;
17610 }
17611 p->mark = _mark;
17612 D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
17613 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
17614 }
17615 _res = NULL;
17616 done:
17617 D(p->level--);
17618 return _res;
17619}
17620
Pablo Galindo835f14f2021-01-31 22:52:56 +000017621// invalid_comprehension:
17622// | ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindod4e6ed72021-02-03 23:29:26 +000017623// | ('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017624static void *
17625invalid_comprehension_rule(Parser *p)
17626{
17627 D(p->level++);
17628 if (p->error_indicator) {
17629 D(p->level--);
17630 return NULL;
17631 }
17632 void * _res = NULL;
17633 int _mark = p->mark;
17634 { // ('[' | '(' | '{') starred_expression for_if_clauses
17635 if (p->error_indicator) {
17636 D(p->level--);
17637 return NULL;
17638 }
17639 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Brandt Bucher145bf262021-02-26 14:51:55 -080017640 void *_tmp_147_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017641 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017642 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017643 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080017644 (_tmp_147_var = _tmp_147_rule(p)) // '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017645 &&
17646 (a = starred_expression_rule(p)) // starred_expression
17647 &&
17648 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17649 )
17650 {
17651 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
17652 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
17653 if (_res == NULL && PyErr_Occurred()) {
17654 p->error_indicator = 1;
17655 D(p->level--);
17656 return NULL;
17657 }
17658 goto done;
17659 }
17660 p->mark = _mark;
17661 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
17662 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
17663 }
Pablo Galindod4e6ed72021-02-03 23:29:26 +000017664 { // ('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000017665 if (p->error_indicator) {
17666 D(p->level--);
17667 return NULL;
17668 }
Pablo Galindod4e6ed72021-02-03 23:29:26 +000017669 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 +000017670 Token * _literal;
17671 void *_opt_var;
17672 UNUSED(_opt_var); // Silence compiler warnings
Brandt Bucher145bf262021-02-26 14:51:55 -080017673 void *_tmp_148_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000017674 expr_ty a;
Pablo Galindod4e6ed72021-02-03 23:29:26 +000017675 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000017676 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080017677 (_tmp_148_var = _tmp_148_rule(p)) // '[' | '{'
Pablo Galindo835f14f2021-01-31 22:52:56 +000017678 &&
17679 (a = star_named_expression_rule(p)) // star_named_expression
17680 &&
17681 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17682 &&
17683 (_opt_var = star_named_expressions_rule(p), 1) // star_named_expressions?
Pablo Galindod4e6ed72021-02-03 23:29:26 +000017684 &&
17685 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000017686 )
17687 {
Pablo Galindod4e6ed72021-02-03 23:29:26 +000017688 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000017689 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "did you forget parentheses around the comprehension target?" );
17690 if (_res == NULL && PyErr_Occurred()) {
17691 p->error_indicator = 1;
17692 D(p->level--);
17693 return NULL;
17694 }
17695 goto done;
17696 }
17697 p->mark = _mark;
17698 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod4e6ed72021-02-03 23:29:26 +000017699 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000017700 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017701 _res = NULL;
17702 done:
17703 D(p->level--);
17704 return _res;
17705}
17706
17707// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
17708static void *
17709invalid_dict_comprehension_rule(Parser *p)
17710{
17711 D(p->level++);
17712 if (p->error_indicator) {
17713 D(p->level--);
17714 return NULL;
17715 }
17716 void * _res = NULL;
17717 int _mark = p->mark;
17718 { // '{' '**' bitwise_or for_if_clauses '}'
17719 if (p->error_indicator) {
17720 D(p->level--);
17721 return NULL;
17722 }
17723 D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
17724 Token * _literal;
17725 Token * _literal_1;
17726 Token * a;
17727 expr_ty bitwise_or_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017728 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017729 if (
17730 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
17731 &&
17732 (a = _PyPegen_expect_token(p, 35)) // token='**'
17733 &&
17734 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
17735 &&
17736 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17737 &&
17738 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
17739 )
17740 {
17741 D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
17742 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
17743 if (_res == NULL && PyErr_Occurred()) {
17744 p->error_indicator = 1;
17745 D(p->level--);
17746 return NULL;
17747 }
17748 goto done;
17749 }
17750 p->mark = _mark;
17751 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
17752 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
17753 }
17754 _res = NULL;
17755 done:
17756 D(p->level--);
17757 return _res;
17758}
17759
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017760// invalid_parameters: param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017761static void *
17762invalid_parameters_rule(Parser *p)
17763{
17764 D(p->level++);
17765 if (p->error_indicator) {
17766 D(p->level--);
17767 return NULL;
17768 }
17769 void * _res = NULL;
17770 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017771 { // param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017772 if (p->error_indicator) {
17773 D(p->level--);
17774 return NULL;
17775 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017776 D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080017777 asdl_seq * _loop0_149_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017778 void *invalid_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017779 arg_ty param_no_default_var;
17780 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080017781 (_loop0_149_var = _loop0_149_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017782 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017783 (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017784 &&
17785 (param_no_default_var = param_no_default_rule(p)) // param_no_default
17786 )
17787 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017788 D(fprintf(stderr, "%*c+ invalid_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017789 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
17790 if (_res == NULL && PyErr_Occurred()) {
17791 p->error_indicator = 1;
17792 D(p->level--);
17793 return NULL;
17794 }
17795 goto done;
17796 }
17797 p->mark = _mark;
17798 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
17800 }
17801 _res = NULL;
17802 done:
17803 D(p->level--);
17804 return _res;
17805}
17806
17807// invalid_parameters_helper: slash_with_default | param_with_default+
17808static void *
17809invalid_parameters_helper_rule(Parser *p)
17810{
17811 D(p->level++);
17812 if (p->error_indicator) {
17813 D(p->level--);
17814 return NULL;
17815 }
17816 void * _res = NULL;
17817 int _mark = p->mark;
17818 { // slash_with_default
17819 if (p->error_indicator) {
17820 D(p->level--);
17821 return NULL;
17822 }
17823 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
17824 SlashWithDefault* a;
17825 if (
17826 (a = slash_with_default_rule(p)) // slash_with_default
17827 )
17828 {
17829 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
17830 _res = _PyPegen_singleton_seq ( p , a );
17831 if (_res == NULL && PyErr_Occurred()) {
17832 p->error_indicator = 1;
17833 D(p->level--);
17834 return NULL;
17835 }
17836 goto done;
17837 }
17838 p->mark = _mark;
17839 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
17840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
17841 }
17842 { // param_with_default+
17843 if (p->error_indicator) {
17844 D(p->level--);
17845 return NULL;
17846 }
17847 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080017848 asdl_seq * _loop1_150_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017849 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080017850 (_loop1_150_var = _loop1_150_rule(p)) // param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017851 )
17852 {
17853 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080017854 _res = _loop1_150_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017855 goto done;
17856 }
17857 p->mark = _mark;
17858 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
17859 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017860 }
17861 _res = NULL;
17862 done:
17863 D(p->level--);
17864 return _res;
17865}
17866
17867// invalid_lambda_parameters:
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017868// | lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017869static void *
17870invalid_lambda_parameters_rule(Parser *p)
17871{
17872 D(p->level++);
17873 if (p->error_indicator) {
17874 D(p->level--);
17875 return NULL;
17876 }
17877 void * _res = NULL;
17878 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017879 { // lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017880 if (p->error_indicator) {
17881 D(p->level--);
17882 return NULL;
17883 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017884 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"));
Brandt Bucher145bf262021-02-26 14:51:55 -080017885 asdl_seq * _loop0_151_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017886 void *invalid_lambda_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017887 arg_ty lambda_param_no_default_var;
17888 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080017889 (_loop0_151_var = _loop0_151_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017890 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017891 (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017892 &&
17893 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
17894 )
17895 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017896 D(fprintf(stderr, "%*c+ invalid_lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017897 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
17898 if (_res == NULL && PyErr_Occurred()) {
17899 p->error_indicator = 1;
17900 D(p->level--);
17901 return NULL;
17902 }
17903 goto done;
17904 }
17905 p->mark = _mark;
17906 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
17908 }
17909 _res = NULL;
17910 done:
17911 D(p->level--);
17912 return _res;
17913}
17914
17915// invalid_lambda_parameters_helper:
17916// | lambda_slash_with_default
17917// | lambda_param_with_default+
17918static void *
17919invalid_lambda_parameters_helper_rule(Parser *p)
17920{
17921 D(p->level++);
17922 if (p->error_indicator) {
17923 D(p->level--);
17924 return NULL;
17925 }
17926 void * _res = NULL;
17927 int _mark = p->mark;
17928 { // lambda_slash_with_default
17929 if (p->error_indicator) {
17930 D(p->level--);
17931 return NULL;
17932 }
17933 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
17934 SlashWithDefault* a;
17935 if (
17936 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
17937 )
17938 {
17939 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
17940 _res = _PyPegen_singleton_seq ( p , a );
17941 if (_res == NULL && PyErr_Occurred()) {
17942 p->error_indicator = 1;
17943 D(p->level--);
17944 return NULL;
17945 }
17946 goto done;
17947 }
17948 p->mark = _mark;
17949 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
17950 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
17951 }
17952 { // lambda_param_with_default+
17953 if (p->error_indicator) {
17954 D(p->level--);
17955 return NULL;
17956 }
17957 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080017958 asdl_seq * _loop1_152_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017959 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080017960 (_loop1_152_var = _loop1_152_rule(p)) // lambda_param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017961 )
17962 {
17963 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080017964 _res = _loop1_152_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020017965 goto done;
17966 }
17967 p->mark = _mark;
17968 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
17969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017970 }
17971 _res = NULL;
17972 done:
17973 D(p->level--);
17974 return _res;
17975}
17976
17977// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
17978static void *
17979invalid_star_etc_rule(Parser *p)
17980{
17981 D(p->level++);
17982 if (p->error_indicator) {
17983 D(p->level--);
17984 return NULL;
17985 }
17986 void * _res = NULL;
17987 int _mark = p->mark;
17988 { // '*' (')' | ',' (')' | '**'))
17989 if (p->error_indicator) {
17990 D(p->level--);
17991 return NULL;
17992 }
17993 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
17994 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080017995 void *_tmp_153_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017996 if (
17997 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
17998 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080017999 (_tmp_153_var = _tmp_153_rule(p)) // ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018000 )
18001 {
18002 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
18003 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
18004 if (_res == NULL && PyErr_Occurred()) {
18005 p->error_indicator = 1;
18006 D(p->level--);
18007 return NULL;
18008 }
18009 goto done;
18010 }
18011 p->mark = _mark;
18012 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
18013 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
18014 }
18015 { // '*' ',' TYPE_COMMENT
18016 if (p->error_indicator) {
18017 D(p->level--);
18018 return NULL;
18019 }
18020 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
18021 Token * _literal;
18022 Token * _literal_1;
18023 Token * type_comment_var;
18024 if (
18025 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
18026 &&
18027 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
18028 &&
18029 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
18030 )
18031 {
18032 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
18033 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
18034 if (_res == NULL && PyErr_Occurred()) {
18035 p->error_indicator = 1;
18036 D(p->level--);
18037 return NULL;
18038 }
18039 goto done;
18040 }
18041 p->mark = _mark;
18042 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
18043 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
18044 }
18045 _res = NULL;
18046 done:
18047 D(p->level--);
18048 return _res;
18049}
18050
18051// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
18052static void *
18053invalid_lambda_star_etc_rule(Parser *p)
18054{
18055 D(p->level++);
18056 if (p->error_indicator) {
18057 D(p->level--);
18058 return NULL;
18059 }
18060 void * _res = NULL;
18061 int _mark = p->mark;
18062 { // '*' (':' | ',' (':' | '**'))
18063 if (p->error_indicator) {
18064 D(p->level--);
18065 return NULL;
18066 }
18067 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
18068 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080018069 void *_tmp_154_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018070 if (
18071 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
18072 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080018073 (_tmp_154_var = _tmp_154_rule(p)) // ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018074 )
18075 {
18076 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
18077 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
18078 if (_res == NULL && PyErr_Occurred()) {
18079 p->error_indicator = 1;
18080 D(p->level--);
18081 return NULL;
18082 }
18083 goto done;
18084 }
18085 p->mark = _mark;
18086 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
18087 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
18088 }
18089 _res = NULL;
18090 done:
18091 D(p->level--);
18092 return _res;
18093}
18094
18095// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
18096static void *
18097invalid_double_type_comments_rule(Parser *p)
18098{
18099 D(p->level++);
18100 if (p->error_indicator) {
18101 D(p->level--);
18102 return NULL;
18103 }
18104 void * _res = NULL;
18105 int _mark = p->mark;
18106 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
18107 if (p->error_indicator) {
18108 D(p->level--);
18109 return NULL;
18110 }
18111 D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
18112 Token * indent_var;
18113 Token * newline_var;
18114 Token * newline_var_1;
18115 Token * type_comment_var;
18116 Token * type_comment_var_1;
18117 if (
18118 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
18119 &&
18120 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18121 &&
18122 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
18123 &&
18124 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18125 &&
18126 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
18127 )
18128 {
18129 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"));
18130 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
18131 if (_res == NULL && PyErr_Occurred()) {
18132 p->error_indicator = 1;
18133 D(p->level--);
18134 return NULL;
18135 }
18136 goto done;
18137 }
18138 p->mark = _mark;
18139 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
18140 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
18141 }
18142 _res = NULL;
18143 done:
18144 D(p->level--);
18145 return _res;
18146}
18147
Pablo Galindo58fb1562021-02-02 19:54:22 +000018148// invalid_with_item: expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018149static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018150invalid_with_item_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018151{
18152 D(p->level++);
18153 if (p->error_indicator) {
18154 D(p->level--);
18155 return NULL;
18156 }
18157 void * _res = NULL;
18158 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000018159 { // expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018160 if (p->error_indicator) {
18161 D(p->level--);
18162 return NULL;
18163 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000018164 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 +030018165 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018166 expr_ty a;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018167 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018168 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018169 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018170 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018171 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
18172 &&
18173 (a = expression_rule(p)) // expression
Pablo Galindo58fb1562021-02-02 19:54:22 +000018174 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080018175 _PyPegen_lookahead(1, _tmp_155_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018176 )
18177 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000018178 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 +030018179 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018180 if (_res == NULL && PyErr_Occurred()) {
18181 p->error_indicator = 1;
18182 D(p->level--);
18183 return NULL;
18184 }
18185 goto done;
18186 }
18187 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018188 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000018189 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018190 }
18191 _res = NULL;
18192 done:
18193 D(p->level--);
18194 return _res;
18195}
18196
18197// invalid_for_target: ASYNC? 'for' star_expressions
18198static void *
18199invalid_for_target_rule(Parser *p)
18200{
18201 D(p->level++);
18202 if (p->error_indicator) {
18203 D(p->level--);
18204 return NULL;
18205 }
18206 void * _res = NULL;
18207 int _mark = p->mark;
18208 { // ASYNC? 'for' star_expressions
18209 if (p->error_indicator) {
18210 D(p->level--);
18211 return NULL;
18212 }
18213 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
18214 Token * _keyword;
18215 void *_opt_var;
18216 UNUSED(_opt_var); // Silence compiler warnings
18217 expr_ty a;
18218 if (
18219 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
18220 &&
18221 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
18222 &&
18223 (a = star_expressions_rule(p)) // star_expressions
18224 )
18225 {
18226 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 +030018227 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018228 if (_res == NULL && PyErr_Occurred()) {
18229 p->error_indicator = 1;
18230 D(p->level--);
18231 return NULL;
18232 }
18233 goto done;
18234 }
18235 p->mark = _mark;
18236 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
18237 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
18238 }
18239 _res = NULL;
18240 done:
18241 D(p->level--);
18242 return _res;
18243}
18244
18245// invalid_group: '(' starred_expression ')'
18246static void *
18247invalid_group_rule(Parser *p)
18248{
18249 D(p->level++);
18250 if (p->error_indicator) {
18251 D(p->level--);
18252 return NULL;
18253 }
18254 void * _res = NULL;
18255 int _mark = p->mark;
18256 { // '(' starred_expression ')'
18257 if (p->error_indicator) {
18258 D(p->level--);
18259 return NULL;
18260 }
18261 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
18262 Token * _literal;
18263 Token * _literal_1;
18264 expr_ty a;
18265 if (
18266 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18267 &&
18268 (a = starred_expression_rule(p)) // starred_expression
18269 &&
18270 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18271 )
18272 {
18273 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
18274 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "can't use starred expression here" );
18275 if (_res == NULL && PyErr_Occurred()) {
18276 p->error_indicator = 1;
18277 D(p->level--);
18278 return NULL;
18279 }
18280 goto done;
18281 }
18282 p->mark = _mark;
18283 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
18284 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018285 }
18286 _res = NULL;
18287 done:
18288 D(p->level--);
18289 return _res;
18290}
18291
18292// invalid_import_from_targets: import_from_as_names ','
18293static void *
18294invalid_import_from_targets_rule(Parser *p)
18295{
18296 D(p->level++);
18297 if (p->error_indicator) {
18298 D(p->level--);
18299 return NULL;
18300 }
18301 void * _res = NULL;
18302 int _mark = p->mark;
18303 { // import_from_as_names ','
18304 if (p->error_indicator) {
18305 D(p->level--);
18306 return NULL;
18307 }
18308 D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
18309 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018310 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018311 if (
18312 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
18313 &&
18314 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18315 )
18316 {
18317 D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
18318 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
18319 if (_res == NULL && PyErr_Occurred()) {
18320 p->error_indicator = 1;
18321 D(p->level--);
18322 return NULL;
18323 }
18324 goto done;
18325 }
18326 p->mark = _mark;
18327 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
18328 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
18329 }
18330 _res = NULL;
18331 done:
18332 D(p->level--);
18333 return _res;
18334}
18335
Pablo Galindo58fb1562021-02-02 19:54:22 +000018336// invalid_with_stmt:
18337// | ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
18338// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
18339static void *
18340invalid_with_stmt_rule(Parser *p)
18341{
18342 D(p->level++);
18343 if (p->error_indicator) {
18344 D(p->level--);
18345 return NULL;
18346 }
18347 void * _res = NULL;
18348 int _mark = p->mark;
18349 { // ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
18350 if (p->error_indicator) {
18351 D(p->level--);
18352 return NULL;
18353 }
18354 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080018355 asdl_seq * _gather_156_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000018356 Token * _keyword;
18357 Token * _literal;
18358 void *_opt_var;
18359 UNUSED(_opt_var); // Silence compiler warnings
18360 if (
18361 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
18362 &&
18363 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
18364 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080018365 (_gather_156_var = _gather_156_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000018366 &&
18367 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
18368 )
18369 {
18370 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080018371 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_156_var, _literal);
Pablo Galindo58fb1562021-02-02 19:54:22 +000018372 goto done;
18373 }
18374 p->mark = _mark;
18375 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
18376 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
18377 }
18378 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
18379 if (p->error_indicator) {
18380 D(p->level--);
18381 return NULL;
18382 }
18383 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080018384 asdl_seq * _gather_158_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000018385 Token * _keyword;
18386 Token * _literal;
18387 Token * _literal_1;
18388 Token * _literal_2;
18389 void *_opt_var;
18390 UNUSED(_opt_var); // Silence compiler warnings
18391 void *_opt_var_1;
18392 UNUSED(_opt_var_1); // Silence compiler warnings
18393 if (
18394 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
18395 &&
18396 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
18397 &&
18398 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18399 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080018400 (_gather_158_var = _gather_158_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000018401 &&
18402 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
18403 &&
18404 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18405 &&
18406 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
18407 )
18408 {
18409 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080018410 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _literal, _gather_158_var, _opt_var_1, _literal_1, _literal_2);
Pablo Galindo58fb1562021-02-02 19:54:22 +000018411 goto done;
18412 }
18413 p->mark = _mark;
18414 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
18415 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
18416 }
18417 _res = NULL;
18418 done:
18419 D(p->level--);
18420 return _res;
18421}
18422
Pablo Galindo206cbda2021-02-07 18:42:21 +000018423// invalid_except_block:
18424// | 'except' expression ',' expressions ['as' NAME] ':'
18425// | 'except' expression ['as' NAME] &&':'
18426// | 'except' &&':'
18427static void *
18428invalid_except_block_rule(Parser *p)
18429{
18430 D(p->level++);
18431 if (p->error_indicator) {
18432 D(p->level--);
18433 return NULL;
18434 }
18435 void * _res = NULL;
18436 int _mark = p->mark;
18437 { // 'except' expression ',' expressions ['as' NAME] ':'
18438 if (p->error_indicator) {
18439 D(p->level--);
18440 return NULL;
18441 }
18442 D(fprintf(stderr, "%*c> invalid_except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
18443 Token * _keyword;
18444 Token * _literal;
18445 Token * _literal_1;
18446 void *_opt_var;
18447 UNUSED(_opt_var); // Silence compiler warnings
18448 expr_ty a;
18449 expr_ty expressions_var;
18450 if (
18451 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
18452 &&
18453 (a = expression_rule(p)) // expression
18454 &&
18455 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18456 &&
18457 (expressions_var = expressions_rule(p)) // expressions
18458 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080018459 (_opt_var = _tmp_160_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000018460 &&
18461 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
18462 )
18463 {
18464 D(fprintf(stderr, "%*c+ invalid_except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
18465 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "exception group must be parenthesized" );
18466 if (_res == NULL && PyErr_Occurred()) {
18467 p->error_indicator = 1;
18468 D(p->level--);
18469 return NULL;
18470 }
18471 goto done;
18472 }
18473 p->mark = _mark;
18474 D(fprintf(stderr, "%*c%s invalid_except_block[%d-%d]: %s failed!\n", p->level, ' ',
18475 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
18476 }
18477 { // 'except' expression ['as' NAME] &&':'
18478 if (p->error_indicator) {
18479 D(p->level--);
18480 return NULL;
18481 }
18482 D(fprintf(stderr, "%*c> invalid_except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] &&':'"));
18483 Token * _keyword;
18484 Token * _literal;
18485 void *_opt_var;
18486 UNUSED(_opt_var); // Silence compiler warnings
18487 expr_ty expression_var;
18488 if (
18489 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
18490 &&
18491 (expression_var = expression_rule(p)) // expression
18492 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080018493 (_opt_var = _tmp_161_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000018494 &&
18495 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
18496 )
18497 {
18498 D(fprintf(stderr, "%*c+ invalid_except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] &&':'"));
18499 _res = _PyPegen_dummy_name(p, _keyword, expression_var, _opt_var, _literal);
18500 goto done;
18501 }
18502 p->mark = _mark;
18503 D(fprintf(stderr, "%*c%s invalid_except_block[%d-%d]: %s failed!\n", p->level, ' ',
18504 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] &&':'"));
18505 }
18506 { // 'except' &&':'
18507 if (p->error_indicator) {
18508 D(p->level--);
18509 return NULL;
18510 }
18511 D(fprintf(stderr, "%*c> invalid_except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' &&':'"));
18512 Token * _keyword;
18513 Token * _literal;
18514 if (
18515 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
18516 &&
18517 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
18518 )
18519 {
18520 D(fprintf(stderr, "%*c+ invalid_except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' &&':'"));
18521 _res = _PyPegen_dummy_name(p, _keyword, _literal);
18522 goto done;
18523 }
18524 p->mark = _mark;
18525 D(fprintf(stderr, "%*c%s invalid_except_block[%d-%d]: %s failed!\n", p->level, ' ',
18526 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' &&':'"));
18527 }
18528 _res = NULL;
18529 done:
18530 D(p->level--);
18531 return _res;
18532}
18533
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018534// _loop0_1: NEWLINE
18535static asdl_seq *
18536_loop0_1_rule(Parser *p)
18537{
18538 D(p->level++);
18539 if (p->error_indicator) {
18540 D(p->level--);
18541 return NULL;
18542 }
18543 void *_res = NULL;
18544 int _mark = p->mark;
18545 int _start_mark = p->mark;
18546 void **_children = PyMem_Malloc(sizeof(void *));
18547 if (!_children) {
18548 p->error_indicator = 1;
18549 PyErr_NoMemory();
18550 D(p->level--);
18551 return NULL;
18552 }
18553 ssize_t _children_capacity = 1;
18554 ssize_t _n = 0;
18555 { // NEWLINE
18556 if (p->error_indicator) {
18557 D(p->level--);
18558 return NULL;
18559 }
18560 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
18561 Token * newline_var;
18562 while (
18563 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18564 )
18565 {
18566 _res = newline_var;
18567 if (_n == _children_capacity) {
18568 _children_capacity *= 2;
18569 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18570 if (!_new_children) {
18571 p->error_indicator = 1;
18572 PyErr_NoMemory();
18573 D(p->level--);
18574 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018575 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018576 _children = _new_children;
18577 }
18578 _children[_n++] = _res;
18579 _mark = p->mark;
18580 }
18581 p->mark = _mark;
18582 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
18583 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
18584 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018585 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018586 if (!_seq) {
18587 PyMem_Free(_children);
18588 p->error_indicator = 1;
18589 PyErr_NoMemory();
18590 D(p->level--);
18591 return NULL;
18592 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018593 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018594 PyMem_Free(_children);
18595 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
18596 D(p->level--);
18597 return _seq;
18598}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018599
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018600// _loop0_2: NEWLINE
18601static asdl_seq *
18602_loop0_2_rule(Parser *p)
18603{
18604 D(p->level++);
18605 if (p->error_indicator) {
18606 D(p->level--);
18607 return NULL;
18608 }
18609 void *_res = NULL;
18610 int _mark = p->mark;
18611 int _start_mark = p->mark;
18612 void **_children = PyMem_Malloc(sizeof(void *));
18613 if (!_children) {
18614 p->error_indicator = 1;
18615 PyErr_NoMemory();
18616 D(p->level--);
18617 return NULL;
18618 }
18619 ssize_t _children_capacity = 1;
18620 ssize_t _n = 0;
18621 { // NEWLINE
18622 if (p->error_indicator) {
18623 D(p->level--);
18624 return NULL;
18625 }
18626 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
18627 Token * newline_var;
18628 while (
18629 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18630 )
18631 {
18632 _res = newline_var;
18633 if (_n == _children_capacity) {
18634 _children_capacity *= 2;
18635 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18636 if (!_new_children) {
18637 p->error_indicator = 1;
18638 PyErr_NoMemory();
18639 D(p->level--);
18640 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018641 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018642 _children = _new_children;
18643 }
18644 _children[_n++] = _res;
18645 _mark = p->mark;
18646 }
18647 p->mark = _mark;
18648 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
18649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
18650 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018651 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018652 if (!_seq) {
18653 PyMem_Free(_children);
18654 p->error_indicator = 1;
18655 PyErr_NoMemory();
18656 D(p->level--);
18657 return NULL;
18658 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018659 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018660 PyMem_Free(_children);
18661 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
18662 D(p->level--);
18663 return _seq;
18664}
18665
18666// _loop0_4: ',' expression
18667static asdl_seq *
18668_loop0_4_rule(Parser *p)
18669{
18670 D(p->level++);
18671 if (p->error_indicator) {
18672 D(p->level--);
18673 return NULL;
18674 }
18675 void *_res = NULL;
18676 int _mark = p->mark;
18677 int _start_mark = p->mark;
18678 void **_children = PyMem_Malloc(sizeof(void *));
18679 if (!_children) {
18680 p->error_indicator = 1;
18681 PyErr_NoMemory();
18682 D(p->level--);
18683 return NULL;
18684 }
18685 ssize_t _children_capacity = 1;
18686 ssize_t _n = 0;
18687 { // ',' expression
18688 if (p->error_indicator) {
18689 D(p->level--);
18690 return NULL;
18691 }
18692 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
18693 Token * _literal;
18694 expr_ty elem;
18695 while (
18696 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18697 &&
18698 (elem = expression_rule(p)) // expression
18699 )
18700 {
18701 _res = elem;
18702 if (_res == NULL && PyErr_Occurred()) {
18703 p->error_indicator = 1;
18704 PyMem_Free(_children);
18705 D(p->level--);
18706 return NULL;
18707 }
18708 if (_n == _children_capacity) {
18709 _children_capacity *= 2;
18710 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18711 if (!_new_children) {
18712 p->error_indicator = 1;
18713 PyErr_NoMemory();
18714 D(p->level--);
18715 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018716 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018717 _children = _new_children;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018718 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018719 _children[_n++] = _res;
18720 _mark = p->mark;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018721 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018722 p->mark = _mark;
18723 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
18724 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018725 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018726 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018727 if (!_seq) {
18728 PyMem_Free(_children);
18729 p->error_indicator = 1;
18730 PyErr_NoMemory();
18731 D(p->level--);
18732 return NULL;
18733 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018734 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018735 PyMem_Free(_children);
18736 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
18737 D(p->level--);
18738 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000018739}
18740
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018741// _gather_3: expression _loop0_4
18742static asdl_seq *
18743_gather_3_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000018744{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018745 D(p->level++);
18746 if (p->error_indicator) {
18747 D(p->level--);
18748 return NULL;
18749 }
18750 asdl_seq * _res = NULL;
18751 int _mark = p->mark;
18752 { // expression _loop0_4
18753 if (p->error_indicator) {
18754 D(p->level--);
18755 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018756 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018757 D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
18758 expr_ty elem;
18759 asdl_seq * seq;
18760 if (
18761 (elem = expression_rule(p)) // expression
18762 &&
18763 (seq = _loop0_4_rule(p)) // _loop0_4
18764 )
18765 {
18766 D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
18767 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18768 goto done;
18769 }
18770 p->mark = _mark;
18771 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
18772 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018773 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018774 _res = NULL;
18775 done:
18776 D(p->level--);
18777 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000018778}
18779
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018780// _loop0_6: ',' expression
18781static asdl_seq *
18782_loop0_6_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000018783{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018784 D(p->level++);
18785 if (p->error_indicator) {
18786 D(p->level--);
18787 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018788 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018789 void *_res = NULL;
18790 int _mark = p->mark;
18791 int _start_mark = p->mark;
18792 void **_children = PyMem_Malloc(sizeof(void *));
18793 if (!_children) {
18794 p->error_indicator = 1;
18795 PyErr_NoMemory();
18796 D(p->level--);
18797 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018798 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018799 ssize_t _children_capacity = 1;
18800 ssize_t _n = 0;
18801 { // ',' expression
18802 if (p->error_indicator) {
18803 D(p->level--);
18804 return NULL;
18805 }
18806 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
18807 Token * _literal;
18808 expr_ty elem;
18809 while (
18810 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18811 &&
18812 (elem = expression_rule(p)) // expression
18813 )
18814 {
18815 _res = elem;
18816 if (_res == NULL && PyErr_Occurred()) {
18817 p->error_indicator = 1;
18818 PyMem_Free(_children);
18819 D(p->level--);
18820 return NULL;
18821 }
18822 if (_n == _children_capacity) {
18823 _children_capacity *= 2;
18824 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18825 if (!_new_children) {
18826 p->error_indicator = 1;
18827 PyErr_NoMemory();
18828 D(p->level--);
18829 return NULL;
18830 }
18831 _children = _new_children;
18832 }
18833 _children[_n++] = _res;
18834 _mark = p->mark;
18835 }
18836 p->mark = _mark;
18837 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
18838 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
18839 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018840 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018841 if (!_seq) {
18842 PyMem_Free(_children);
18843 p->error_indicator = 1;
18844 PyErr_NoMemory();
18845 D(p->level--);
18846 return NULL;
18847 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018848 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018849 PyMem_Free(_children);
18850 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
18851 D(p->level--);
18852 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000018853}
18854
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018855// _gather_5: expression _loop0_6
18856static asdl_seq *
18857_gather_5_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000018858{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018859 D(p->level++);
18860 if (p->error_indicator) {
18861 D(p->level--);
18862 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000018863 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018864 asdl_seq * _res = NULL;
18865 int _mark = p->mark;
18866 { // expression _loop0_6
18867 if (p->error_indicator) {
18868 D(p->level--);
18869 return NULL;
18870 }
18871 D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
18872 expr_ty elem;
18873 asdl_seq * seq;
18874 if (
18875 (elem = expression_rule(p)) // expression
18876 &&
18877 (seq = _loop0_6_rule(p)) // _loop0_6
18878 )
18879 {
18880 D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
18881 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18882 goto done;
18883 }
18884 p->mark = _mark;
18885 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
18886 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
18887 }
18888 _res = NULL;
18889 done:
18890 D(p->level--);
18891 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000018892}
18893
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018894// _loop0_8: ',' expression
18895static asdl_seq *
18896_loop0_8_rule(Parser *p)
18897{
18898 D(p->level++);
18899 if (p->error_indicator) {
18900 D(p->level--);
18901 return NULL;
18902 }
18903 void *_res = NULL;
18904 int _mark = p->mark;
18905 int _start_mark = p->mark;
18906 void **_children = PyMem_Malloc(sizeof(void *));
18907 if (!_children) {
18908 p->error_indicator = 1;
18909 PyErr_NoMemory();
18910 D(p->level--);
18911 return NULL;
18912 }
18913 ssize_t _children_capacity = 1;
18914 ssize_t _n = 0;
18915 { // ',' expression
18916 if (p->error_indicator) {
18917 D(p->level--);
18918 return NULL;
18919 }
18920 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
18921 Token * _literal;
18922 expr_ty elem;
18923 while (
18924 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18925 &&
18926 (elem = expression_rule(p)) // expression
18927 )
18928 {
18929 _res = elem;
18930 if (_res == NULL && PyErr_Occurred()) {
18931 p->error_indicator = 1;
18932 PyMem_Free(_children);
18933 D(p->level--);
18934 return NULL;
18935 }
18936 if (_n == _children_capacity) {
18937 _children_capacity *= 2;
18938 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18939 if (!_new_children) {
18940 p->error_indicator = 1;
18941 PyErr_NoMemory();
18942 D(p->level--);
18943 return NULL;
18944 }
18945 _children = _new_children;
18946 }
18947 _children[_n++] = _res;
18948 _mark = p->mark;
18949 }
18950 p->mark = _mark;
18951 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
18952 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
18953 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018954 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018955 if (!_seq) {
18956 PyMem_Free(_children);
18957 p->error_indicator = 1;
18958 PyErr_NoMemory();
18959 D(p->level--);
18960 return NULL;
18961 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018962 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018963 PyMem_Free(_children);
18964 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
18965 D(p->level--);
18966 return _seq;
18967}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000018968
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018969// _gather_7: expression _loop0_8
18970static asdl_seq *
18971_gather_7_rule(Parser *p)
18972{
18973 D(p->level++);
18974 if (p->error_indicator) {
18975 D(p->level--);
18976 return NULL;
18977 }
18978 asdl_seq * _res = NULL;
18979 int _mark = p->mark;
18980 { // expression _loop0_8
18981 if (p->error_indicator) {
18982 D(p->level--);
18983 return NULL;
18984 }
18985 D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
18986 expr_ty elem;
18987 asdl_seq * seq;
18988 if (
18989 (elem = expression_rule(p)) // expression
18990 &&
18991 (seq = _loop0_8_rule(p)) // _loop0_8
18992 )
18993 {
18994 D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
18995 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18996 goto done;
18997 }
18998 p->mark = _mark;
18999 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
19000 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
19001 }
19002 _res = NULL;
19003 done:
19004 D(p->level--);
19005 return _res;
19006}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019007
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019008// _loop0_10: ',' expression
19009static asdl_seq *
19010_loop0_10_rule(Parser *p)
19011{
19012 D(p->level++);
19013 if (p->error_indicator) {
19014 D(p->level--);
19015 return NULL;
19016 }
19017 void *_res = NULL;
19018 int _mark = p->mark;
19019 int _start_mark = p->mark;
19020 void **_children = PyMem_Malloc(sizeof(void *));
19021 if (!_children) {
19022 p->error_indicator = 1;
19023 PyErr_NoMemory();
19024 D(p->level--);
19025 return NULL;
19026 }
19027 ssize_t _children_capacity = 1;
19028 ssize_t _n = 0;
19029 { // ',' expression
19030 if (p->error_indicator) {
19031 D(p->level--);
19032 return NULL;
19033 }
19034 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
19035 Token * _literal;
19036 expr_ty elem;
19037 while (
19038 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19039 &&
19040 (elem = expression_rule(p)) // expression
19041 )
19042 {
19043 _res = elem;
19044 if (_res == NULL && PyErr_Occurred()) {
19045 p->error_indicator = 1;
19046 PyMem_Free(_children);
19047 D(p->level--);
19048 return NULL;
19049 }
19050 if (_n == _children_capacity) {
19051 _children_capacity *= 2;
19052 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19053 if (!_new_children) {
19054 p->error_indicator = 1;
19055 PyErr_NoMemory();
19056 D(p->level--);
19057 return NULL;
19058 }
19059 _children = _new_children;
19060 }
19061 _children[_n++] = _res;
19062 _mark = p->mark;
19063 }
19064 p->mark = _mark;
19065 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
19066 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
19067 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019068 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019069 if (!_seq) {
19070 PyMem_Free(_children);
19071 p->error_indicator = 1;
19072 PyErr_NoMemory();
19073 D(p->level--);
19074 return NULL;
19075 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019076 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019077 PyMem_Free(_children);
19078 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
19079 D(p->level--);
19080 return _seq;
19081}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019082
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019083// _gather_9: expression _loop0_10
19084static asdl_seq *
19085_gather_9_rule(Parser *p)
19086{
19087 D(p->level++);
19088 if (p->error_indicator) {
19089 D(p->level--);
19090 return NULL;
19091 }
19092 asdl_seq * _res = NULL;
19093 int _mark = p->mark;
19094 { // expression _loop0_10
19095 if (p->error_indicator) {
19096 D(p->level--);
19097 return NULL;
19098 }
19099 D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
19100 expr_ty elem;
19101 asdl_seq * seq;
19102 if (
19103 (elem = expression_rule(p)) // expression
19104 &&
19105 (seq = _loop0_10_rule(p)) // _loop0_10
19106 )
19107 {
19108 D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
19109 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
19110 goto done;
19111 }
19112 p->mark = _mark;
19113 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
19114 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
19115 }
19116 _res = NULL;
19117 done:
19118 D(p->level--);
19119 return _res;
19120}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019121
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019122// _loop1_11: statement
19123static asdl_seq *
19124_loop1_11_rule(Parser *p)
19125{
19126 D(p->level++);
19127 if (p->error_indicator) {
19128 D(p->level--);
19129 return NULL;
19130 }
19131 void *_res = NULL;
19132 int _mark = p->mark;
19133 int _start_mark = p->mark;
19134 void **_children = PyMem_Malloc(sizeof(void *));
19135 if (!_children) {
19136 p->error_indicator = 1;
19137 PyErr_NoMemory();
19138 D(p->level--);
19139 return NULL;
19140 }
19141 ssize_t _children_capacity = 1;
19142 ssize_t _n = 0;
19143 { // statement
19144 if (p->error_indicator) {
19145 D(p->level--);
19146 return NULL;
19147 }
19148 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010019149 asdl_stmt_seq* statement_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019150 while (
19151 (statement_var = statement_rule(p)) // statement
19152 )
19153 {
19154 _res = statement_var;
19155 if (_n == _children_capacity) {
19156 _children_capacity *= 2;
19157 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19158 if (!_new_children) {
19159 p->error_indicator = 1;
19160 PyErr_NoMemory();
19161 D(p->level--);
19162 return NULL;
19163 }
19164 _children = _new_children;
19165 }
19166 _children[_n++] = _res;
19167 _mark = p->mark;
19168 }
19169 p->mark = _mark;
19170 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
19171 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
19172 }
19173 if (_n == 0 || p->error_indicator) {
19174 PyMem_Free(_children);
19175 D(p->level--);
19176 return NULL;
19177 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019178 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019179 if (!_seq) {
19180 PyMem_Free(_children);
19181 p->error_indicator = 1;
19182 PyErr_NoMemory();
19183 D(p->level--);
19184 return NULL;
19185 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019186 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019187 PyMem_Free(_children);
19188 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
19189 D(p->level--);
19190 return _seq;
19191}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019192
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019193// _loop0_13: ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019194static asdl_seq *
19195_loop0_13_rule(Parser *p)
19196{
19197 D(p->level++);
19198 if (p->error_indicator) {
19199 D(p->level--);
19200 return NULL;
19201 }
19202 void *_res = NULL;
19203 int _mark = p->mark;
19204 int _start_mark = p->mark;
19205 void **_children = PyMem_Malloc(sizeof(void *));
19206 if (!_children) {
19207 p->error_indicator = 1;
19208 PyErr_NoMemory();
19209 D(p->level--);
19210 return NULL;
19211 }
19212 ssize_t _children_capacity = 1;
19213 ssize_t _n = 0;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019214 { // ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019215 if (p->error_indicator) {
19216 D(p->level--);
19217 return NULL;
19218 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019219 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019220 Token * _literal;
19221 stmt_ty elem;
19222 while (
19223 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
19224 &&
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019225 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019226 )
19227 {
19228 _res = elem;
19229 if (_res == NULL && PyErr_Occurred()) {
19230 p->error_indicator = 1;
19231 PyMem_Free(_children);
19232 D(p->level--);
19233 return NULL;
19234 }
19235 if (_n == _children_capacity) {
19236 _children_capacity *= 2;
19237 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19238 if (!_new_children) {
19239 p->error_indicator = 1;
19240 PyErr_NoMemory();
19241 D(p->level--);
19242 return NULL;
19243 }
19244 _children = _new_children;
19245 }
19246 _children[_n++] = _res;
19247 _mark = p->mark;
19248 }
19249 p->mark = _mark;
19250 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019251 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019252 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019253 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019254 if (!_seq) {
19255 PyMem_Free(_children);
19256 p->error_indicator = 1;
19257 PyErr_NoMemory();
19258 D(p->level--);
19259 return NULL;
19260 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019261 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019262 PyMem_Free(_children);
19263 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
19264 D(p->level--);
19265 return _seq;
19266}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019267
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019268// _gather_12: simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019269static asdl_seq *
19270_gather_12_rule(Parser *p)
19271{
19272 D(p->level++);
19273 if (p->error_indicator) {
19274 D(p->level--);
19275 return NULL;
19276 }
19277 asdl_seq * _res = NULL;
19278 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019279 { // simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019280 if (p->error_indicator) {
19281 D(p->level--);
19282 return NULL;
19283 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019284 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 +010019285 stmt_ty elem;
19286 asdl_seq * seq;
19287 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019288 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019289 &&
19290 (seq = _loop0_13_rule(p)) // _loop0_13
19291 )
19292 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019293 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 +010019294 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
19295 goto done;
19296 }
19297 p->mark = _mark;
19298 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000019299 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019300 }
19301 _res = NULL;
19302 done:
19303 D(p->level--);
19304 return _res;
19305}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019306
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019307// _tmp_14: 'import' | 'from'
19308static void *
19309_tmp_14_rule(Parser *p)
19310{
19311 D(p->level++);
19312 if (p->error_indicator) {
19313 D(p->level--);
19314 return NULL;
19315 }
19316 void * _res = NULL;
19317 int _mark = p->mark;
19318 { // 'import'
19319 if (p->error_indicator) {
19320 D(p->level--);
19321 return NULL;
19322 }
19323 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
19324 Token * _keyword;
19325 if (
19326 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
19327 )
19328 {
19329 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
19330 _res = _keyword;
19331 goto done;
19332 }
19333 p->mark = _mark;
19334 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
19335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
19336 }
19337 { // 'from'
19338 if (p->error_indicator) {
19339 D(p->level--);
19340 return NULL;
19341 }
19342 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
19343 Token * _keyword;
19344 if (
19345 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
19346 )
19347 {
19348 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
19349 _res = _keyword;
19350 goto done;
19351 }
19352 p->mark = _mark;
19353 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
19354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
19355 }
19356 _res = NULL;
19357 done:
19358 D(p->level--);
19359 return _res;
19360}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019361
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019362// _tmp_15: 'def' | '@' | ASYNC
19363static void *
19364_tmp_15_rule(Parser *p)
19365{
19366 D(p->level++);
19367 if (p->error_indicator) {
19368 D(p->level--);
19369 return NULL;
19370 }
19371 void * _res = NULL;
19372 int _mark = p->mark;
19373 { // 'def'
19374 if (p->error_indicator) {
19375 D(p->level--);
19376 return NULL;
19377 }
19378 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
19379 Token * _keyword;
19380 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080019381 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019382 )
19383 {
19384 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
19385 _res = _keyword;
19386 goto done;
19387 }
19388 p->mark = _mark;
19389 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
19390 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
19391 }
19392 { // '@'
19393 if (p->error_indicator) {
19394 D(p->level--);
19395 return NULL;
19396 }
19397 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
19398 Token * _literal;
19399 if (
19400 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
19401 )
19402 {
19403 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
19404 _res = _literal;
19405 goto done;
19406 }
19407 p->mark = _mark;
19408 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
19409 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
19410 }
19411 { // ASYNC
19412 if (p->error_indicator) {
19413 D(p->level--);
19414 return NULL;
19415 }
19416 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
19417 Token * async_var;
19418 if (
19419 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
19420 )
19421 {
19422 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
19423 _res = async_var;
19424 goto done;
19425 }
19426 p->mark = _mark;
19427 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
19428 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
19429 }
19430 _res = NULL;
19431 done:
19432 D(p->level--);
19433 return _res;
19434}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019435
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019436// _tmp_16: 'class' | '@'
19437static void *
19438_tmp_16_rule(Parser *p)
19439{
19440 D(p->level++);
19441 if (p->error_indicator) {
19442 D(p->level--);
19443 return NULL;
19444 }
19445 void * _res = NULL;
19446 int _mark = p->mark;
19447 { // 'class'
19448 if (p->error_indicator) {
19449 D(p->level--);
19450 return NULL;
19451 }
19452 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
19453 Token * _keyword;
19454 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080019455 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019456 )
19457 {
19458 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
19459 _res = _keyword;
19460 goto done;
19461 }
19462 p->mark = _mark;
19463 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
19464 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
19465 }
19466 { // '@'
19467 if (p->error_indicator) {
19468 D(p->level--);
19469 return NULL;
19470 }
19471 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
19472 Token * _literal;
19473 if (
19474 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
19475 )
19476 {
19477 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
19478 _res = _literal;
19479 goto done;
19480 }
19481 p->mark = _mark;
19482 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
19483 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
19484 }
19485 _res = NULL;
19486 done:
19487 D(p->level--);
19488 return _res;
19489}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019490
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019491// _tmp_17: 'with' | ASYNC
19492static void *
19493_tmp_17_rule(Parser *p)
19494{
19495 D(p->level++);
19496 if (p->error_indicator) {
19497 D(p->level--);
19498 return NULL;
19499 }
19500 void * _res = NULL;
19501 int _mark = p->mark;
19502 { // 'with'
19503 if (p->error_indicator) {
19504 D(p->level--);
19505 return NULL;
19506 }
19507 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
19508 Token * _keyword;
19509 if (
19510 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19511 )
19512 {
19513 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
19514 _res = _keyword;
19515 goto done;
19516 }
19517 p->mark = _mark;
19518 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
19519 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
19520 }
19521 { // ASYNC
19522 if (p->error_indicator) {
19523 D(p->level--);
19524 return NULL;
19525 }
19526 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
19527 Token * async_var;
19528 if (
19529 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
19530 )
19531 {
19532 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
19533 _res = async_var;
19534 goto done;
19535 }
19536 p->mark = _mark;
19537 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
19538 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
19539 }
19540 _res = NULL;
19541 done:
19542 D(p->level--);
19543 return _res;
19544}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019545
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019546// _tmp_18: 'for' | ASYNC
19547static void *
19548_tmp_18_rule(Parser *p)
19549{
19550 D(p->level++);
19551 if (p->error_indicator) {
19552 D(p->level--);
19553 return NULL;
19554 }
19555 void * _res = NULL;
19556 int _mark = p->mark;
19557 { // 'for'
19558 if (p->error_indicator) {
19559 D(p->level--);
19560 return NULL;
19561 }
19562 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
19563 Token * _keyword;
19564 if (
19565 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
19566 )
19567 {
19568 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
19569 _res = _keyword;
19570 goto done;
19571 }
19572 p->mark = _mark;
19573 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
19574 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
19575 }
19576 { // ASYNC
19577 if (p->error_indicator) {
19578 D(p->level--);
19579 return NULL;
19580 }
19581 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
19582 Token * async_var;
19583 if (
19584 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
19585 )
19586 {
19587 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
19588 _res = async_var;
19589 goto done;
19590 }
19591 p->mark = _mark;
19592 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
19593 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
19594 }
19595 _res = NULL;
19596 done:
19597 D(p->level--);
19598 return _res;
19599}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000019600
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019601// _tmp_19: '=' annotated_rhs
19602static void *
19603_tmp_19_rule(Parser *p)
19604{
19605 D(p->level++);
19606 if (p->error_indicator) {
19607 D(p->level--);
19608 return NULL;
19609 }
19610 void * _res = NULL;
19611 int _mark = p->mark;
19612 { // '=' annotated_rhs
19613 if (p->error_indicator) {
19614 D(p->level--);
19615 return NULL;
19616 }
19617 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
19618 Token * _literal;
19619 expr_ty d;
19620 if (
19621 (_literal = _PyPegen_expect_token(p, 22)) // token='='
19622 &&
19623 (d = annotated_rhs_rule(p)) // annotated_rhs
19624 )
19625 {
19626 D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
19627 _res = d;
19628 if (_res == NULL && PyErr_Occurred()) {
19629 p->error_indicator = 1;
19630 D(p->level--);
19631 return NULL;
19632 }
19633 goto done;
19634 }
19635 p->mark = _mark;
19636 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
19637 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
19638 }
19639 _res = NULL;
19640 done:
19641 D(p->level--);
19642 return _res;
19643}
19644
19645// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
19646static void *
19647_tmp_20_rule(Parser *p)
19648{
19649 D(p->level++);
19650 if (p->error_indicator) {
19651 D(p->level--);
19652 return NULL;
19653 }
19654 void * _res = NULL;
19655 int _mark = p->mark;
19656 { // '(' single_target ')'
19657 if (p->error_indicator) {
19658 D(p->level--);
19659 return NULL;
19660 }
19661 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
19662 Token * _literal;
19663 Token * _literal_1;
19664 expr_ty b;
19665 if (
19666 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19667 &&
19668 (b = single_target_rule(p)) // single_target
19669 &&
19670 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19671 )
19672 {
19673 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
19674 _res = b;
19675 if (_res == NULL && PyErr_Occurred()) {
19676 p->error_indicator = 1;
19677 D(p->level--);
19678 return NULL;
19679 }
19680 goto done;
19681 }
19682 p->mark = _mark;
19683 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
19684 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
19685 }
19686 { // single_subscript_attribute_target
19687 if (p->error_indicator) {
19688 D(p->level--);
19689 return NULL;
19690 }
19691 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
19692 expr_ty single_subscript_attribute_target_var;
19693 if (
19694 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
19695 )
19696 {
19697 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
19698 _res = single_subscript_attribute_target_var;
19699 goto done;
19700 }
19701 p->mark = _mark;
19702 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
19703 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
19704 }
19705 _res = NULL;
19706 done:
19707 D(p->level--);
19708 return _res;
19709}
19710
19711// _tmp_21: '=' annotated_rhs
19712static void *
19713_tmp_21_rule(Parser *p)
19714{
19715 D(p->level++);
19716 if (p->error_indicator) {
19717 D(p->level--);
19718 return NULL;
19719 }
19720 void * _res = NULL;
19721 int _mark = p->mark;
19722 { // '=' annotated_rhs
19723 if (p->error_indicator) {
19724 D(p->level--);
19725 return NULL;
19726 }
19727 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
19728 Token * _literal;
19729 expr_ty d;
19730 if (
19731 (_literal = _PyPegen_expect_token(p, 22)) // token='='
19732 &&
19733 (d = annotated_rhs_rule(p)) // annotated_rhs
19734 )
19735 {
19736 D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
19737 _res = d;
19738 if (_res == NULL && PyErr_Occurred()) {
19739 p->error_indicator = 1;
19740 D(p->level--);
19741 return NULL;
19742 }
19743 goto done;
19744 }
19745 p->mark = _mark;
19746 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
19747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
19748 }
19749 _res = NULL;
19750 done:
19751 D(p->level--);
19752 return _res;
19753}
19754
19755// _loop1_22: (star_targets '=')
19756static asdl_seq *
19757_loop1_22_rule(Parser *p)
19758{
19759 D(p->level++);
19760 if (p->error_indicator) {
19761 D(p->level--);
19762 return NULL;
19763 }
19764 void *_res = NULL;
19765 int _mark = p->mark;
19766 int _start_mark = p->mark;
19767 void **_children = PyMem_Malloc(sizeof(void *));
19768 if (!_children) {
19769 p->error_indicator = 1;
19770 PyErr_NoMemory();
19771 D(p->level--);
19772 return NULL;
19773 }
19774 ssize_t _children_capacity = 1;
19775 ssize_t _n = 0;
19776 { // (star_targets '=')
19777 if (p->error_indicator) {
19778 D(p->level--);
19779 return NULL;
19780 }
19781 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Brandt Bucher145bf262021-02-26 14:51:55 -080019782 void *_tmp_162_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019783 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080019784 (_tmp_162_var = _tmp_162_rule(p)) // star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019785 )
19786 {
Brandt Bucher145bf262021-02-26 14:51:55 -080019787 _res = _tmp_162_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019788 if (_n == _children_capacity) {
19789 _children_capacity *= 2;
19790 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19791 if (!_new_children) {
19792 p->error_indicator = 1;
19793 PyErr_NoMemory();
19794 D(p->level--);
19795 return NULL;
19796 }
19797 _children = _new_children;
19798 }
19799 _children[_n++] = _res;
19800 _mark = p->mark;
19801 }
19802 p->mark = _mark;
19803 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
19804 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
19805 }
19806 if (_n == 0 || p->error_indicator) {
19807 PyMem_Free(_children);
19808 D(p->level--);
19809 return NULL;
19810 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019811 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019812 if (!_seq) {
19813 PyMem_Free(_children);
19814 p->error_indicator = 1;
19815 PyErr_NoMemory();
19816 D(p->level--);
19817 return NULL;
19818 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019819 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019820 PyMem_Free(_children);
19821 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
19822 D(p->level--);
19823 return _seq;
19824}
19825
19826// _tmp_23: yield_expr | star_expressions
19827static void *
19828_tmp_23_rule(Parser *p)
19829{
19830 D(p->level++);
19831 if (p->error_indicator) {
19832 D(p->level--);
19833 return NULL;
19834 }
19835 void * _res = NULL;
19836 int _mark = p->mark;
19837 { // yield_expr
19838 if (p->error_indicator) {
19839 D(p->level--);
19840 return NULL;
19841 }
19842 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
19843 expr_ty yield_expr_var;
19844 if (
19845 (yield_expr_var = yield_expr_rule(p)) // yield_expr
19846 )
19847 {
19848 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
19849 _res = yield_expr_var;
19850 goto done;
19851 }
19852 p->mark = _mark;
19853 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
19854 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
19855 }
19856 { // star_expressions
19857 if (p->error_indicator) {
19858 D(p->level--);
19859 return NULL;
19860 }
19861 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
19862 expr_ty star_expressions_var;
19863 if (
19864 (star_expressions_var = star_expressions_rule(p)) // star_expressions
19865 )
19866 {
19867 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
19868 _res = star_expressions_var;
19869 goto done;
19870 }
19871 p->mark = _mark;
19872 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
19873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
19874 }
19875 _res = NULL;
19876 done:
19877 D(p->level--);
19878 return _res;
19879}
19880
19881// _tmp_24: yield_expr | star_expressions
19882static void *
19883_tmp_24_rule(Parser *p)
19884{
19885 D(p->level++);
19886 if (p->error_indicator) {
19887 D(p->level--);
19888 return NULL;
19889 }
19890 void * _res = NULL;
19891 int _mark = p->mark;
19892 { // yield_expr
19893 if (p->error_indicator) {
19894 D(p->level--);
19895 return NULL;
19896 }
19897 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
19898 expr_ty yield_expr_var;
19899 if (
19900 (yield_expr_var = yield_expr_rule(p)) // yield_expr
19901 )
19902 {
19903 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
19904 _res = yield_expr_var;
19905 goto done;
19906 }
19907 p->mark = _mark;
19908 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
19909 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
19910 }
19911 { // star_expressions
19912 if (p->error_indicator) {
19913 D(p->level--);
19914 return NULL;
19915 }
19916 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
19917 expr_ty star_expressions_var;
19918 if (
19919 (star_expressions_var = star_expressions_rule(p)) // star_expressions
19920 )
19921 {
19922 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
19923 _res = star_expressions_var;
19924 goto done;
19925 }
19926 p->mark = _mark;
19927 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
19928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
19929 }
19930 _res = NULL;
19931 done:
19932 D(p->level--);
19933 return _res;
19934}
19935
19936// _loop0_26: ',' NAME
19937static asdl_seq *
19938_loop0_26_rule(Parser *p)
19939{
19940 D(p->level++);
19941 if (p->error_indicator) {
19942 D(p->level--);
19943 return NULL;
19944 }
19945 void *_res = NULL;
19946 int _mark = p->mark;
19947 int _start_mark = p->mark;
19948 void **_children = PyMem_Malloc(sizeof(void *));
19949 if (!_children) {
19950 p->error_indicator = 1;
19951 PyErr_NoMemory();
19952 D(p->level--);
19953 return NULL;
19954 }
19955 ssize_t _children_capacity = 1;
19956 ssize_t _n = 0;
19957 { // ',' NAME
19958 if (p->error_indicator) {
19959 D(p->level--);
19960 return NULL;
19961 }
19962 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
19963 Token * _literal;
19964 expr_ty elem;
19965 while (
19966 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19967 &&
19968 (elem = _PyPegen_name_token(p)) // NAME
19969 )
19970 {
19971 _res = elem;
19972 if (_res == NULL && PyErr_Occurred()) {
19973 p->error_indicator = 1;
19974 PyMem_Free(_children);
19975 D(p->level--);
19976 return NULL;
19977 }
19978 if (_n == _children_capacity) {
19979 _children_capacity *= 2;
19980 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19981 if (!_new_children) {
19982 p->error_indicator = 1;
19983 PyErr_NoMemory();
19984 D(p->level--);
19985 return NULL;
19986 }
19987 _children = _new_children;
19988 }
19989 _children[_n++] = _res;
19990 _mark = p->mark;
19991 }
19992 p->mark = _mark;
19993 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
19994 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
19995 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019996 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019997 if (!_seq) {
19998 PyMem_Free(_children);
19999 p->error_indicator = 1;
20000 PyErr_NoMemory();
20001 D(p->level--);
20002 return NULL;
20003 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020004 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020005 PyMem_Free(_children);
20006 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
20007 D(p->level--);
20008 return _seq;
20009}
20010
20011// _gather_25: NAME _loop0_26
20012static asdl_seq *
20013_gather_25_rule(Parser *p)
20014{
20015 D(p->level++);
20016 if (p->error_indicator) {
20017 D(p->level--);
20018 return NULL;
20019 }
20020 asdl_seq * _res = NULL;
20021 int _mark = p->mark;
20022 { // NAME _loop0_26
20023 if (p->error_indicator) {
20024 D(p->level--);
20025 return NULL;
20026 }
20027 D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
20028 expr_ty elem;
20029 asdl_seq * seq;
20030 if (
20031 (elem = _PyPegen_name_token(p)) // NAME
20032 &&
20033 (seq = _loop0_26_rule(p)) // _loop0_26
20034 )
20035 {
20036 D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
20037 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20038 goto done;
20039 }
20040 p->mark = _mark;
20041 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
20042 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
20043 }
20044 _res = NULL;
20045 done:
20046 D(p->level--);
20047 return _res;
20048}
20049
20050// _loop0_28: ',' NAME
20051static asdl_seq *
20052_loop0_28_rule(Parser *p)
20053{
20054 D(p->level++);
20055 if (p->error_indicator) {
20056 D(p->level--);
20057 return NULL;
20058 }
20059 void *_res = NULL;
20060 int _mark = p->mark;
20061 int _start_mark = p->mark;
20062 void **_children = PyMem_Malloc(sizeof(void *));
20063 if (!_children) {
20064 p->error_indicator = 1;
20065 PyErr_NoMemory();
20066 D(p->level--);
20067 return NULL;
20068 }
20069 ssize_t _children_capacity = 1;
20070 ssize_t _n = 0;
20071 { // ',' NAME
20072 if (p->error_indicator) {
20073 D(p->level--);
20074 return NULL;
20075 }
20076 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
20077 Token * _literal;
20078 expr_ty elem;
20079 while (
20080 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20081 &&
20082 (elem = _PyPegen_name_token(p)) // NAME
20083 )
20084 {
20085 _res = elem;
20086 if (_res == NULL && PyErr_Occurred()) {
20087 p->error_indicator = 1;
20088 PyMem_Free(_children);
20089 D(p->level--);
20090 return NULL;
20091 }
20092 if (_n == _children_capacity) {
20093 _children_capacity *= 2;
20094 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20095 if (!_new_children) {
20096 p->error_indicator = 1;
20097 PyErr_NoMemory();
20098 D(p->level--);
20099 return NULL;
20100 }
20101 _children = _new_children;
20102 }
20103 _children[_n++] = _res;
20104 _mark = p->mark;
20105 }
20106 p->mark = _mark;
20107 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
20108 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
20109 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020110 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020111 if (!_seq) {
20112 PyMem_Free(_children);
20113 p->error_indicator = 1;
20114 PyErr_NoMemory();
20115 D(p->level--);
20116 return NULL;
20117 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020118 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020119 PyMem_Free(_children);
20120 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
20121 D(p->level--);
20122 return _seq;
20123}
20124
20125// _gather_27: NAME _loop0_28
20126static asdl_seq *
20127_gather_27_rule(Parser *p)
20128{
20129 D(p->level++);
20130 if (p->error_indicator) {
20131 D(p->level--);
20132 return NULL;
20133 }
20134 asdl_seq * _res = NULL;
20135 int _mark = p->mark;
20136 { // NAME _loop0_28
20137 if (p->error_indicator) {
20138 D(p->level--);
20139 return NULL;
20140 }
20141 D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
20142 expr_ty elem;
20143 asdl_seq * seq;
20144 if (
20145 (elem = _PyPegen_name_token(p)) // NAME
20146 &&
20147 (seq = _loop0_28_rule(p)) // _loop0_28
20148 )
20149 {
20150 D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
20151 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20152 goto done;
20153 }
20154 p->mark = _mark;
20155 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
20156 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
20157 }
20158 _res = NULL;
20159 done:
20160 D(p->level--);
20161 return _res;
20162}
20163
20164// _tmp_29: ',' expression
20165static void *
20166_tmp_29_rule(Parser *p)
20167{
20168 D(p->level++);
20169 if (p->error_indicator) {
20170 D(p->level--);
20171 return NULL;
20172 }
20173 void * _res = NULL;
20174 int _mark = p->mark;
20175 { // ',' expression
20176 if (p->error_indicator) {
20177 D(p->level--);
20178 return NULL;
20179 }
20180 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
20181 Token * _literal;
20182 expr_ty z;
20183 if (
20184 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20185 &&
20186 (z = expression_rule(p)) // expression
20187 )
20188 {
20189 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
20190 _res = z;
20191 if (_res == NULL && PyErr_Occurred()) {
20192 p->error_indicator = 1;
20193 D(p->level--);
20194 return NULL;
20195 }
20196 goto done;
20197 }
20198 p->mark = _mark;
20199 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
20200 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
20201 }
20202 _res = NULL;
20203 done:
20204 D(p->level--);
20205 return _res;
20206}
20207
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020208// _tmp_30: ';' | NEWLINE
20209static void *
20210_tmp_30_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020211{
20212 D(p->level++);
20213 if (p->error_indicator) {
20214 D(p->level--);
20215 return NULL;
20216 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020217 void * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020218 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020219 { // ';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020220 if (p->error_indicator) {
20221 D(p->level--);
20222 return NULL;
20223 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020224 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
20225 Token * _literal;
20226 if (
20227 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020228 )
20229 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020230 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
20231 _res = _literal;
20232 goto done;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020233 }
20234 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020235 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
20236 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020237 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020238 { // NEWLINE
20239 if (p->error_indicator) {
20240 D(p->level--);
20241 return NULL;
20242 }
20243 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
20244 Token * newline_var;
20245 if (
20246 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20247 )
20248 {
20249 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
20250 _res = newline_var;
20251 goto done;
20252 }
20253 p->mark = _mark;
20254 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
20255 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020256 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020257 _res = NULL;
20258 done:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020259 D(p->level--);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020260 return _res;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020261}
20262
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020263// _loop0_31: ('.' | '...')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020264static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020265_loop0_31_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020266{
20267 D(p->level++);
20268 if (p->error_indicator) {
20269 D(p->level--);
20270 return NULL;
20271 }
20272 void *_res = NULL;
20273 int _mark = p->mark;
20274 int _start_mark = p->mark;
20275 void **_children = PyMem_Malloc(sizeof(void *));
20276 if (!_children) {
20277 p->error_indicator = 1;
20278 PyErr_NoMemory();
20279 D(p->level--);
20280 return NULL;
20281 }
20282 ssize_t _children_capacity = 1;
20283 ssize_t _n = 0;
20284 { // ('.' | '...')
20285 if (p->error_indicator) {
20286 D(p->level--);
20287 return NULL;
20288 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020289 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Brandt Bucher145bf262021-02-26 14:51:55 -080020290 void *_tmp_163_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020291 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080020292 (_tmp_163_var = _tmp_163_rule(p)) // '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020293 )
20294 {
Brandt Bucher145bf262021-02-26 14:51:55 -080020295 _res = _tmp_163_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020296 if (_n == _children_capacity) {
20297 _children_capacity *= 2;
20298 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20299 if (!_new_children) {
20300 p->error_indicator = 1;
20301 PyErr_NoMemory();
20302 D(p->level--);
20303 return NULL;
20304 }
20305 _children = _new_children;
20306 }
20307 _children[_n++] = _res;
20308 _mark = p->mark;
20309 }
20310 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020311 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
20312 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
20313 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020314 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020315 if (!_seq) {
20316 PyMem_Free(_children);
20317 p->error_indicator = 1;
20318 PyErr_NoMemory();
20319 D(p->level--);
20320 return NULL;
20321 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020322 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020323 PyMem_Free(_children);
20324 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
20325 D(p->level--);
20326 return _seq;
20327}
20328
20329// _loop1_32: ('.' | '...')
20330static asdl_seq *
20331_loop1_32_rule(Parser *p)
20332{
20333 D(p->level++);
20334 if (p->error_indicator) {
20335 D(p->level--);
20336 return NULL;
20337 }
20338 void *_res = NULL;
20339 int _mark = p->mark;
20340 int _start_mark = p->mark;
20341 void **_children = PyMem_Malloc(sizeof(void *));
20342 if (!_children) {
20343 p->error_indicator = 1;
20344 PyErr_NoMemory();
20345 D(p->level--);
20346 return NULL;
20347 }
20348 ssize_t _children_capacity = 1;
20349 ssize_t _n = 0;
20350 { // ('.' | '...')
20351 if (p->error_indicator) {
20352 D(p->level--);
20353 return NULL;
20354 }
20355 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Brandt Bucher145bf262021-02-26 14:51:55 -080020356 void *_tmp_164_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020357 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080020358 (_tmp_164_var = _tmp_164_rule(p)) // '.' | '...'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020359 )
20360 {
Brandt Bucher145bf262021-02-26 14:51:55 -080020361 _res = _tmp_164_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020362 if (_n == _children_capacity) {
20363 _children_capacity *= 2;
20364 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20365 if (!_new_children) {
20366 p->error_indicator = 1;
20367 PyErr_NoMemory();
20368 D(p->level--);
20369 return NULL;
20370 }
20371 _children = _new_children;
20372 }
20373 _children[_n++] = _res;
20374 _mark = p->mark;
20375 }
20376 p->mark = _mark;
20377 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020378 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
20379 }
20380 if (_n == 0 || p->error_indicator) {
20381 PyMem_Free(_children);
20382 D(p->level--);
20383 return NULL;
20384 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020385 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020386 if (!_seq) {
20387 PyMem_Free(_children);
20388 p->error_indicator = 1;
20389 PyErr_NoMemory();
20390 D(p->level--);
20391 return NULL;
20392 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020393 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020394 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020395 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020396 D(p->level--);
20397 return _seq;
20398}
20399
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020400// _loop0_34: ',' import_from_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020401static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020402_loop0_34_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020403{
20404 D(p->level++);
20405 if (p->error_indicator) {
20406 D(p->level--);
20407 return NULL;
20408 }
20409 void *_res = NULL;
20410 int _mark = p->mark;
20411 int _start_mark = p->mark;
20412 void **_children = PyMem_Malloc(sizeof(void *));
20413 if (!_children) {
20414 p->error_indicator = 1;
20415 PyErr_NoMemory();
20416 D(p->level--);
20417 return NULL;
20418 }
20419 ssize_t _children_capacity = 1;
20420 ssize_t _n = 0;
20421 { // ',' import_from_as_name
20422 if (p->error_indicator) {
20423 D(p->level--);
20424 return NULL;
20425 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020426 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 +010020427 Token * _literal;
20428 alias_ty elem;
20429 while (
20430 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20431 &&
20432 (elem = import_from_as_name_rule(p)) // import_from_as_name
20433 )
20434 {
20435 _res = elem;
20436 if (_res == NULL && PyErr_Occurred()) {
20437 p->error_indicator = 1;
20438 PyMem_Free(_children);
20439 D(p->level--);
20440 return NULL;
20441 }
20442 if (_n == _children_capacity) {
20443 _children_capacity *= 2;
20444 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20445 if (!_new_children) {
20446 p->error_indicator = 1;
20447 PyErr_NoMemory();
20448 D(p->level--);
20449 return NULL;
20450 }
20451 _children = _new_children;
20452 }
20453 _children[_n++] = _res;
20454 _mark = p->mark;
20455 }
20456 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020457 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
20459 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020460 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020461 if (!_seq) {
20462 PyMem_Free(_children);
20463 p->error_indicator = 1;
20464 PyErr_NoMemory();
20465 D(p->level--);
20466 return NULL;
20467 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020468 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020469 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020470 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020471 D(p->level--);
20472 return _seq;
20473}
20474
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020475// _gather_33: import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020476static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020477_gather_33_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020478{
20479 D(p->level++);
20480 if (p->error_indicator) {
20481 D(p->level--);
20482 return NULL;
20483 }
20484 asdl_seq * _res = NULL;
20485 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020486 { // import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020487 if (p->error_indicator) {
20488 D(p->level--);
20489 return NULL;
20490 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020491 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 +010020492 alias_ty elem;
20493 asdl_seq * seq;
20494 if (
20495 (elem = import_from_as_name_rule(p)) // import_from_as_name
20496 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020497 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020498 )
20499 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020500 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 +010020501 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20502 goto done;
20503 }
20504 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020505 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
20506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020507 }
20508 _res = NULL;
20509 done:
20510 D(p->level--);
20511 return _res;
20512}
20513
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020514// _tmp_35: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020515static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020516_tmp_35_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020517{
20518 D(p->level++);
20519 if (p->error_indicator) {
20520 D(p->level--);
20521 return NULL;
20522 }
20523 void * _res = NULL;
20524 int _mark = p->mark;
20525 { // 'as' NAME
20526 if (p->error_indicator) {
20527 D(p->level--);
20528 return NULL;
20529 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020530 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020531 Token * _keyword;
20532 expr_ty z;
20533 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020534 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020535 &&
20536 (z = _PyPegen_name_token(p)) // NAME
20537 )
20538 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020539 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 +010020540 _res = z;
20541 if (_res == NULL && PyErr_Occurred()) {
20542 p->error_indicator = 1;
20543 D(p->level--);
20544 return NULL;
20545 }
20546 goto done;
20547 }
20548 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020549 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020550 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
20551 }
20552 _res = NULL;
20553 done:
20554 D(p->level--);
20555 return _res;
20556}
20557
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020558// _loop0_37: ',' dotted_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020559static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020560_loop0_37_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020561{
20562 D(p->level++);
20563 if (p->error_indicator) {
20564 D(p->level--);
20565 return NULL;
20566 }
20567 void *_res = NULL;
20568 int _mark = p->mark;
20569 int _start_mark = p->mark;
20570 void **_children = PyMem_Malloc(sizeof(void *));
20571 if (!_children) {
20572 p->error_indicator = 1;
20573 PyErr_NoMemory();
20574 D(p->level--);
20575 return NULL;
20576 }
20577 ssize_t _children_capacity = 1;
20578 ssize_t _n = 0;
20579 { // ',' dotted_as_name
20580 if (p->error_indicator) {
20581 D(p->level--);
20582 return NULL;
20583 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020584 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 +010020585 Token * _literal;
20586 alias_ty elem;
20587 while (
20588 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20589 &&
20590 (elem = dotted_as_name_rule(p)) // dotted_as_name
20591 )
20592 {
20593 _res = elem;
20594 if (_res == NULL && PyErr_Occurred()) {
20595 p->error_indicator = 1;
20596 PyMem_Free(_children);
20597 D(p->level--);
20598 return NULL;
20599 }
20600 if (_n == _children_capacity) {
20601 _children_capacity *= 2;
20602 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20603 if (!_new_children) {
20604 p->error_indicator = 1;
20605 PyErr_NoMemory();
20606 D(p->level--);
20607 return NULL;
20608 }
20609 _children = _new_children;
20610 }
20611 _children[_n++] = _res;
20612 _mark = p->mark;
20613 }
20614 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020615 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
20617 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020618 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020619 if (!_seq) {
20620 PyMem_Free(_children);
20621 p->error_indicator = 1;
20622 PyErr_NoMemory();
20623 D(p->level--);
20624 return NULL;
20625 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020626 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020627 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020628 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020629 D(p->level--);
20630 return _seq;
20631}
20632
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020633// _gather_36: dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020634static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020635_gather_36_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020636{
20637 D(p->level++);
20638 if (p->error_indicator) {
20639 D(p->level--);
20640 return NULL;
20641 }
20642 asdl_seq * _res = NULL;
20643 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020644 { // dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020645 if (p->error_indicator) {
20646 D(p->level--);
20647 return NULL;
20648 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020649 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 +010020650 alias_ty elem;
20651 asdl_seq * seq;
20652 if (
20653 (elem = dotted_as_name_rule(p)) // dotted_as_name
20654 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020655 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020656 )
20657 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020658 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 +010020659 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20660 goto done;
20661 }
20662 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020663 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
20664 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020665 }
20666 _res = NULL;
20667 done:
20668 D(p->level--);
20669 return _res;
20670}
20671
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020672// _tmp_38: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020673static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020674_tmp_38_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020675{
20676 D(p->level++);
20677 if (p->error_indicator) {
20678 D(p->level--);
20679 return NULL;
20680 }
20681 void * _res = NULL;
20682 int _mark = p->mark;
20683 { // 'as' NAME
20684 if (p->error_indicator) {
20685 D(p->level--);
20686 return NULL;
20687 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020688 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020689 Token * _keyword;
20690 expr_ty z;
20691 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020692 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020693 &&
20694 (z = _PyPegen_name_token(p)) // NAME
20695 )
20696 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020697 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 +010020698 _res = z;
20699 if (_res == NULL && PyErr_Occurred()) {
20700 p->error_indicator = 1;
20701 D(p->level--);
20702 return NULL;
20703 }
20704 goto done;
20705 }
20706 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020707 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020708 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
20709 }
20710 _res = NULL;
20711 done:
20712 D(p->level--);
20713 return _res;
20714}
20715
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020716// _loop0_40: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020717static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020718_loop0_40_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020719{
20720 D(p->level++);
20721 if (p->error_indicator) {
20722 D(p->level--);
20723 return NULL;
20724 }
20725 void *_res = NULL;
20726 int _mark = p->mark;
20727 int _start_mark = p->mark;
20728 void **_children = PyMem_Malloc(sizeof(void *));
20729 if (!_children) {
20730 p->error_indicator = 1;
20731 PyErr_NoMemory();
20732 D(p->level--);
20733 return NULL;
20734 }
20735 ssize_t _children_capacity = 1;
20736 ssize_t _n = 0;
20737 { // ',' with_item
20738 if (p->error_indicator) {
20739 D(p->level--);
20740 return NULL;
20741 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020742 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020743 Token * _literal;
20744 withitem_ty elem;
20745 while (
20746 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20747 &&
20748 (elem = with_item_rule(p)) // with_item
20749 )
20750 {
20751 _res = elem;
20752 if (_res == NULL && PyErr_Occurred()) {
20753 p->error_indicator = 1;
20754 PyMem_Free(_children);
20755 D(p->level--);
20756 return NULL;
20757 }
20758 if (_n == _children_capacity) {
20759 _children_capacity *= 2;
20760 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20761 if (!_new_children) {
20762 p->error_indicator = 1;
20763 PyErr_NoMemory();
20764 D(p->level--);
20765 return NULL;
20766 }
20767 _children = _new_children;
20768 }
20769 _children[_n++] = _res;
20770 _mark = p->mark;
20771 }
20772 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020773 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020774 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
20775 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020776 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020777 if (!_seq) {
20778 PyMem_Free(_children);
20779 p->error_indicator = 1;
20780 PyErr_NoMemory();
20781 D(p->level--);
20782 return NULL;
20783 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020784 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020785 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020786 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020787 D(p->level--);
20788 return _seq;
20789}
20790
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020791// _gather_39: with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020792static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020793_gather_39_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020794{
20795 D(p->level++);
20796 if (p->error_indicator) {
20797 D(p->level--);
20798 return NULL;
20799 }
20800 asdl_seq * _res = NULL;
20801 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020802 { // with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020803 if (p->error_indicator) {
20804 D(p->level--);
20805 return NULL;
20806 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020807 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 +010020808 withitem_ty elem;
20809 asdl_seq * seq;
20810 if (
20811 (elem = with_item_rule(p)) // with_item
20812 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020813 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020814 )
20815 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020816 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 +010020817 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20818 goto done;
20819 }
20820 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020821 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
20822 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020823 }
20824 _res = NULL;
20825 done:
20826 D(p->level--);
20827 return _res;
20828}
20829
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020830// _loop0_42: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020831static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020832_loop0_42_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020833{
20834 D(p->level++);
20835 if (p->error_indicator) {
20836 D(p->level--);
20837 return NULL;
20838 }
20839 void *_res = NULL;
20840 int _mark = p->mark;
20841 int _start_mark = p->mark;
20842 void **_children = PyMem_Malloc(sizeof(void *));
20843 if (!_children) {
20844 p->error_indicator = 1;
20845 PyErr_NoMemory();
20846 D(p->level--);
20847 return NULL;
20848 }
20849 ssize_t _children_capacity = 1;
20850 ssize_t _n = 0;
20851 { // ',' with_item
20852 if (p->error_indicator) {
20853 D(p->level--);
20854 return NULL;
20855 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020856 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020857 Token * _literal;
20858 withitem_ty elem;
20859 while (
20860 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20861 &&
20862 (elem = with_item_rule(p)) // with_item
20863 )
20864 {
20865 _res = elem;
20866 if (_res == NULL && PyErr_Occurred()) {
20867 p->error_indicator = 1;
20868 PyMem_Free(_children);
20869 D(p->level--);
20870 return NULL;
20871 }
20872 if (_n == _children_capacity) {
20873 _children_capacity *= 2;
20874 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20875 if (!_new_children) {
20876 p->error_indicator = 1;
20877 PyErr_NoMemory();
20878 D(p->level--);
20879 return NULL;
20880 }
20881 _children = _new_children;
20882 }
20883 _children[_n++] = _res;
20884 _mark = p->mark;
20885 }
20886 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020887 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020888 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
20889 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020890 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020891 if (!_seq) {
20892 PyMem_Free(_children);
20893 p->error_indicator = 1;
20894 PyErr_NoMemory();
20895 D(p->level--);
20896 return NULL;
20897 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020898 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020899 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020900 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020901 D(p->level--);
20902 return _seq;
20903}
20904
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020905// _gather_41: with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020906static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020907_gather_41_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020908{
20909 D(p->level++);
20910 if (p->error_indicator) {
20911 D(p->level--);
20912 return NULL;
20913 }
20914 asdl_seq * _res = NULL;
20915 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020916 { // with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020917 if (p->error_indicator) {
20918 D(p->level--);
20919 return NULL;
20920 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020921 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 +010020922 withitem_ty elem;
20923 asdl_seq * seq;
20924 if (
20925 (elem = with_item_rule(p)) // with_item
20926 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020927 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020928 )
20929 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020930 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 +010020931 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20932 goto done;
20933 }
20934 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020935 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
20936 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020937 }
20938 _res = NULL;
20939 done:
20940 D(p->level--);
20941 return _res;
20942}
20943
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020944// _loop0_44: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020945static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020946_loop0_44_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020947{
20948 D(p->level++);
20949 if (p->error_indicator) {
20950 D(p->level--);
20951 return NULL;
20952 }
20953 void *_res = NULL;
20954 int _mark = p->mark;
20955 int _start_mark = p->mark;
20956 void **_children = PyMem_Malloc(sizeof(void *));
20957 if (!_children) {
20958 p->error_indicator = 1;
20959 PyErr_NoMemory();
20960 D(p->level--);
20961 return NULL;
20962 }
20963 ssize_t _children_capacity = 1;
20964 ssize_t _n = 0;
20965 { // ',' with_item
20966 if (p->error_indicator) {
20967 D(p->level--);
20968 return NULL;
20969 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020970 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020971 Token * _literal;
20972 withitem_ty elem;
20973 while (
20974 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20975 &&
20976 (elem = with_item_rule(p)) // with_item
20977 )
20978 {
20979 _res = elem;
20980 if (_res == NULL && PyErr_Occurred()) {
20981 p->error_indicator = 1;
20982 PyMem_Free(_children);
20983 D(p->level--);
20984 return NULL;
20985 }
20986 if (_n == _children_capacity) {
20987 _children_capacity *= 2;
20988 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20989 if (!_new_children) {
20990 p->error_indicator = 1;
20991 PyErr_NoMemory();
20992 D(p->level--);
20993 return NULL;
20994 }
20995 _children = _new_children;
20996 }
20997 _children[_n++] = _res;
20998 _mark = p->mark;
20999 }
21000 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021001 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021002 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
21003 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021004 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021005 if (!_seq) {
21006 PyMem_Free(_children);
21007 p->error_indicator = 1;
21008 PyErr_NoMemory();
21009 D(p->level--);
21010 return NULL;
21011 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021012 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021013 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021014 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021015 D(p->level--);
21016 return _seq;
21017}
21018
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021019// _gather_43: with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021020static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021021_gather_43_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021022{
21023 D(p->level++);
21024 if (p->error_indicator) {
21025 D(p->level--);
21026 return NULL;
21027 }
21028 asdl_seq * _res = NULL;
21029 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021030 { // with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021031 if (p->error_indicator) {
21032 D(p->level--);
21033 return NULL;
21034 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021035 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 +010021036 withitem_ty elem;
21037 asdl_seq * seq;
21038 if (
21039 (elem = with_item_rule(p)) // with_item
21040 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021041 (seq = _loop0_44_rule(p)) // _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021042 )
21043 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021044 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 +010021045 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21046 goto done;
21047 }
21048 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021049 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
21050 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021051 }
21052 _res = NULL;
21053 done:
21054 D(p->level--);
21055 return _res;
21056}
21057
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021058// _loop0_46: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021059static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021060_loop0_46_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021061{
21062 D(p->level++);
21063 if (p->error_indicator) {
21064 D(p->level--);
21065 return NULL;
21066 }
21067 void *_res = NULL;
21068 int _mark = p->mark;
21069 int _start_mark = p->mark;
21070 void **_children = PyMem_Malloc(sizeof(void *));
21071 if (!_children) {
21072 p->error_indicator = 1;
21073 PyErr_NoMemory();
21074 D(p->level--);
21075 return NULL;
21076 }
21077 ssize_t _children_capacity = 1;
21078 ssize_t _n = 0;
21079 { // ',' with_item
21080 if (p->error_indicator) {
21081 D(p->level--);
21082 return NULL;
21083 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021084 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021085 Token * _literal;
21086 withitem_ty elem;
21087 while (
21088 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21089 &&
21090 (elem = with_item_rule(p)) // with_item
21091 )
21092 {
21093 _res = elem;
21094 if (_res == NULL && PyErr_Occurred()) {
21095 p->error_indicator = 1;
21096 PyMem_Free(_children);
21097 D(p->level--);
21098 return NULL;
21099 }
21100 if (_n == _children_capacity) {
21101 _children_capacity *= 2;
21102 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21103 if (!_new_children) {
21104 p->error_indicator = 1;
21105 PyErr_NoMemory();
21106 D(p->level--);
21107 return NULL;
21108 }
21109 _children = _new_children;
21110 }
21111 _children[_n++] = _res;
21112 _mark = p->mark;
21113 }
21114 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021115 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021116 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
21117 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021118 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021119 if (!_seq) {
21120 PyMem_Free(_children);
21121 p->error_indicator = 1;
21122 PyErr_NoMemory();
21123 D(p->level--);
21124 return NULL;
21125 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021126 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021127 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021128 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021129 D(p->level--);
21130 return _seq;
21131}
21132
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021133// _gather_45: with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021134static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021135_gather_45_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021136{
21137 D(p->level++);
21138 if (p->error_indicator) {
21139 D(p->level--);
21140 return NULL;
21141 }
21142 asdl_seq * _res = NULL;
21143 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021144 { // with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021145 if (p->error_indicator) {
21146 D(p->level--);
21147 return NULL;
21148 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021149 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 +010021150 withitem_ty elem;
21151 asdl_seq * seq;
21152 if (
21153 (elem = with_item_rule(p)) // with_item
21154 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021155 (seq = _loop0_46_rule(p)) // _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021156 )
21157 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021158 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 +010021159 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21160 goto done;
21161 }
21162 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021163 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
21164 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021165 }
21166 _res = NULL;
21167 done:
21168 D(p->level--);
21169 return _res;
21170}
21171
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021172// _tmp_47: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021173static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021174_tmp_47_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021175{
21176 D(p->level++);
21177 if (p->error_indicator) {
21178 D(p->level--);
21179 return NULL;
21180 }
21181 void * _res = NULL;
21182 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021183 { // ','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021184 if (p->error_indicator) {
21185 D(p->level--);
21186 return NULL;
21187 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021188 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
21189 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021190 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021191 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021192 )
21193 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021194 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
21195 _res = _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021196 goto done;
21197 }
21198 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021199 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
21200 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
21201 }
21202 { // ')'
21203 if (p->error_indicator) {
21204 D(p->level--);
21205 return NULL;
21206 }
21207 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
21208 Token * _literal;
21209 if (
21210 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
21211 )
21212 {
21213 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
21214 _res = _literal;
21215 goto done;
21216 }
21217 p->mark = _mark;
21218 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
21219 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
21220 }
21221 { // ':'
21222 if (p->error_indicator) {
21223 D(p->level--);
21224 return NULL;
21225 }
21226 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
21227 Token * _literal;
21228 if (
21229 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21230 )
21231 {
21232 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
21233 _res = _literal;
21234 goto done;
21235 }
21236 p->mark = _mark;
21237 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
21238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021239 }
21240 _res = NULL;
21241 done:
21242 D(p->level--);
21243 return _res;
21244}
21245
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021246// _loop1_48: except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021247static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021248_loop1_48_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021249{
21250 D(p->level++);
21251 if (p->error_indicator) {
21252 D(p->level--);
21253 return NULL;
21254 }
21255 void *_res = NULL;
21256 int _mark = p->mark;
21257 int _start_mark = p->mark;
21258 void **_children = PyMem_Malloc(sizeof(void *));
21259 if (!_children) {
21260 p->error_indicator = 1;
21261 PyErr_NoMemory();
21262 D(p->level--);
21263 return NULL;
21264 }
21265 ssize_t _children_capacity = 1;
21266 ssize_t _n = 0;
21267 { // except_block
21268 if (p->error_indicator) {
21269 D(p->level--);
21270 return NULL;
21271 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021272 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021273 excepthandler_ty except_block_var;
21274 while (
21275 (except_block_var = except_block_rule(p)) // except_block
21276 )
21277 {
21278 _res = except_block_var;
21279 if (_n == _children_capacity) {
21280 _children_capacity *= 2;
21281 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21282 if (!_new_children) {
21283 p->error_indicator = 1;
21284 PyErr_NoMemory();
21285 D(p->level--);
21286 return NULL;
21287 }
21288 _children = _new_children;
21289 }
21290 _children[_n++] = _res;
21291 _mark = p->mark;
21292 }
21293 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021294 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021295 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
21296 }
21297 if (_n == 0 || p->error_indicator) {
21298 PyMem_Free(_children);
21299 D(p->level--);
21300 return NULL;
21301 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021302 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021303 if (!_seq) {
21304 PyMem_Free(_children);
21305 p->error_indicator = 1;
21306 PyErr_NoMemory();
21307 D(p->level--);
21308 return NULL;
21309 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021310 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021311 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021312 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021313 D(p->level--);
21314 return _seq;
21315}
21316
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021317// _tmp_49: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021318static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021319_tmp_49_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021320{
21321 D(p->level++);
21322 if (p->error_indicator) {
21323 D(p->level--);
21324 return NULL;
21325 }
21326 void * _res = NULL;
21327 int _mark = p->mark;
21328 { // 'as' NAME
21329 if (p->error_indicator) {
21330 D(p->level--);
21331 return NULL;
21332 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021333 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021334 Token * _keyword;
21335 expr_ty z;
21336 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021337 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021338 &&
21339 (z = _PyPegen_name_token(p)) // NAME
21340 )
21341 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021342 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 +010021343 _res = z;
21344 if (_res == NULL && PyErr_Occurred()) {
21345 p->error_indicator = 1;
21346 D(p->level--);
21347 return NULL;
21348 }
21349 goto done;
21350 }
21351 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021352 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
21354 }
21355 _res = NULL;
21356 done:
21357 D(p->level--);
21358 return _res;
21359}
21360
Brandt Bucher145bf262021-02-26 14:51:55 -080021361// _loop1_50: case_block
21362static asdl_seq *
21363_loop1_50_rule(Parser *p)
21364{
21365 D(p->level++);
21366 if (p->error_indicator) {
21367 D(p->level--);
21368 return NULL;
21369 }
21370 void *_res = NULL;
21371 int _mark = p->mark;
21372 int _start_mark = p->mark;
21373 void **_children = PyMem_Malloc(sizeof(void *));
21374 if (!_children) {
21375 p->error_indicator = 1;
21376 PyErr_NoMemory();
21377 D(p->level--);
21378 return NULL;
21379 }
21380 ssize_t _children_capacity = 1;
21381 ssize_t _n = 0;
21382 { // case_block
21383 if (p->error_indicator) {
21384 D(p->level--);
21385 return NULL;
21386 }
21387 D(fprintf(stderr, "%*c> _loop1_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "case_block"));
21388 match_case_ty case_block_var;
21389 while (
21390 (case_block_var = case_block_rule(p)) // case_block
21391 )
21392 {
21393 _res = case_block_var;
21394 if (_n == _children_capacity) {
21395 _children_capacity *= 2;
21396 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21397 if (!_new_children) {
21398 p->error_indicator = 1;
21399 PyErr_NoMemory();
21400 D(p->level--);
21401 return NULL;
21402 }
21403 _children = _new_children;
21404 }
21405 _children[_n++] = _res;
21406 _mark = p->mark;
21407 }
21408 p->mark = _mark;
21409 D(fprintf(stderr, "%*c%s _loop1_50[%d-%d]: %s failed!\n", p->level, ' ',
21410 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "case_block"));
21411 }
21412 if (_n == 0 || p->error_indicator) {
21413 PyMem_Free(_children);
21414 D(p->level--);
21415 return NULL;
21416 }
21417 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
21418 if (!_seq) {
21419 PyMem_Free(_children);
21420 p->error_indicator = 1;
21421 PyErr_NoMemory();
21422 D(p->level--);
21423 return NULL;
21424 }
21425 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
21426 PyMem_Free(_children);
21427 _PyPegen_insert_memo(p, _start_mark, _loop1_50_type, _seq);
21428 D(p->level--);
21429 return _seq;
21430}
21431
21432// _loop0_52: '|' closed_pattern
21433static asdl_seq *
21434_loop0_52_rule(Parser *p)
21435{
21436 D(p->level++);
21437 if (p->error_indicator) {
21438 D(p->level--);
21439 return NULL;
21440 }
21441 void *_res = NULL;
21442 int _mark = p->mark;
21443 int _start_mark = p->mark;
21444 void **_children = PyMem_Malloc(sizeof(void *));
21445 if (!_children) {
21446 p->error_indicator = 1;
21447 PyErr_NoMemory();
21448 D(p->level--);
21449 return NULL;
21450 }
21451 ssize_t _children_capacity = 1;
21452 ssize_t _n = 0;
21453 { // '|' closed_pattern
21454 if (p->error_indicator) {
21455 D(p->level--);
21456 return NULL;
21457 }
21458 D(fprintf(stderr, "%*c> _loop0_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|' closed_pattern"));
21459 Token * _literal;
21460 expr_ty elem;
21461 while (
21462 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
21463 &&
21464 (elem = closed_pattern_rule(p)) // closed_pattern
21465 )
21466 {
21467 _res = elem;
21468 if (_res == NULL && PyErr_Occurred()) {
21469 p->error_indicator = 1;
21470 PyMem_Free(_children);
21471 D(p->level--);
21472 return NULL;
21473 }
21474 if (_n == _children_capacity) {
21475 _children_capacity *= 2;
21476 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21477 if (!_new_children) {
21478 p->error_indicator = 1;
21479 PyErr_NoMemory();
21480 D(p->level--);
21481 return NULL;
21482 }
21483 _children = _new_children;
21484 }
21485 _children[_n++] = _res;
21486 _mark = p->mark;
21487 }
21488 p->mark = _mark;
21489 D(fprintf(stderr, "%*c%s _loop0_52[%d-%d]: %s failed!\n", p->level, ' ',
21490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|' closed_pattern"));
21491 }
21492 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
21493 if (!_seq) {
21494 PyMem_Free(_children);
21495 p->error_indicator = 1;
21496 PyErr_NoMemory();
21497 D(p->level--);
21498 return NULL;
21499 }
21500 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
21501 PyMem_Free(_children);
21502 _PyPegen_insert_memo(p, _start_mark, _loop0_52_type, _seq);
21503 D(p->level--);
21504 return _seq;
21505}
21506
21507// _gather_51: closed_pattern _loop0_52
21508static asdl_seq *
21509_gather_51_rule(Parser *p)
21510{
21511 D(p->level++);
21512 if (p->error_indicator) {
21513 D(p->level--);
21514 return NULL;
21515 }
21516 asdl_seq * _res = NULL;
21517 int _mark = p->mark;
21518 { // closed_pattern _loop0_52
21519 if (p->error_indicator) {
21520 D(p->level--);
21521 return NULL;
21522 }
21523 D(fprintf(stderr, "%*c> _gather_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
21524 expr_ty elem;
21525 asdl_seq * seq;
21526 if (
21527 (elem = closed_pattern_rule(p)) // closed_pattern
21528 &&
21529 (seq = _loop0_52_rule(p)) // _loop0_52
21530 )
21531 {
21532 D(fprintf(stderr, "%*c+ _gather_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
21533 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21534 goto done;
21535 }
21536 p->mark = _mark;
21537 D(fprintf(stderr, "%*c%s _gather_51[%d-%d]: %s failed!\n", p->level, ' ',
21538 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "closed_pattern _loop0_52"));
21539 }
21540 _res = NULL;
21541 done:
21542 D(p->level--);
21543 return _res;
21544}
21545
21546// _tmp_53: '+' | '-'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021547static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080021548_tmp_53_rule(Parser *p)
21549{
21550 D(p->level++);
21551 if (p->error_indicator) {
21552 D(p->level--);
21553 return NULL;
21554 }
21555 void * _res = NULL;
21556 int _mark = p->mark;
21557 { // '+'
21558 if (p->error_indicator) {
21559 D(p->level--);
21560 return NULL;
21561 }
21562 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
21563 Token * _literal;
21564 if (
21565 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
21566 )
21567 {
21568 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
21569 _res = _literal;
21570 goto done;
21571 }
21572 p->mark = _mark;
21573 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
21574 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
21575 }
21576 { // '-'
21577 if (p->error_indicator) {
21578 D(p->level--);
21579 return NULL;
21580 }
21581 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
21582 Token * _literal;
21583 if (
21584 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
21585 )
21586 {
21587 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
21588 _res = _literal;
21589 goto done;
21590 }
21591 p->mark = _mark;
21592 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
21593 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
21594 }
21595 _res = NULL;
21596 done:
21597 D(p->level--);
21598 return _res;
21599}
21600
21601// _tmp_54: '.' | '(' | '='
21602static void *
21603_tmp_54_rule(Parser *p)
21604{
21605 D(p->level++);
21606 if (p->error_indicator) {
21607 D(p->level--);
21608 return NULL;
21609 }
21610 void * _res = NULL;
21611 int _mark = p->mark;
21612 { // '.'
21613 if (p->error_indicator) {
21614 D(p->level--);
21615 return NULL;
21616 }
21617 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
21618 Token * _literal;
21619 if (
21620 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
21621 )
21622 {
21623 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
21624 _res = _literal;
21625 goto done;
21626 }
21627 p->mark = _mark;
21628 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
21629 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
21630 }
21631 { // '('
21632 if (p->error_indicator) {
21633 D(p->level--);
21634 return NULL;
21635 }
21636 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
21637 Token * _literal;
21638 if (
21639 (_literal = _PyPegen_expect_token(p, 7)) // token='('
21640 )
21641 {
21642 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
21643 _res = _literal;
21644 goto done;
21645 }
21646 p->mark = _mark;
21647 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
21648 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
21649 }
21650 { // '='
21651 if (p->error_indicator) {
21652 D(p->level--);
21653 return NULL;
21654 }
21655 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
21656 Token * _literal;
21657 if (
21658 (_literal = _PyPegen_expect_token(p, 22)) // token='='
21659 )
21660 {
21661 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
21662 _res = _literal;
21663 goto done;
21664 }
21665 p->mark = _mark;
21666 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
21667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
21668 }
21669 _res = NULL;
21670 done:
21671 D(p->level--);
21672 return _res;
21673}
21674
21675// _tmp_55: '.' | '(' | '='
21676static void *
21677_tmp_55_rule(Parser *p)
21678{
21679 D(p->level++);
21680 if (p->error_indicator) {
21681 D(p->level--);
21682 return NULL;
21683 }
21684 void * _res = NULL;
21685 int _mark = p->mark;
21686 { // '.'
21687 if (p->error_indicator) {
21688 D(p->level--);
21689 return NULL;
21690 }
21691 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
21692 Token * _literal;
21693 if (
21694 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
21695 )
21696 {
21697 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
21698 _res = _literal;
21699 goto done;
21700 }
21701 p->mark = _mark;
21702 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
21703 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
21704 }
21705 { // '('
21706 if (p->error_indicator) {
21707 D(p->level--);
21708 return NULL;
21709 }
21710 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
21711 Token * _literal;
21712 if (
21713 (_literal = _PyPegen_expect_token(p, 7)) // token='('
21714 )
21715 {
21716 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
21717 _res = _literal;
21718 goto done;
21719 }
21720 p->mark = _mark;
21721 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
21722 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
21723 }
21724 { // '='
21725 if (p->error_indicator) {
21726 D(p->level--);
21727 return NULL;
21728 }
21729 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
21730 Token * _literal;
21731 if (
21732 (_literal = _PyPegen_expect_token(p, 22)) // token='='
21733 )
21734 {
21735 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
21736 _res = _literal;
21737 goto done;
21738 }
21739 p->mark = _mark;
21740 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
21741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
21742 }
21743 _res = NULL;
21744 done:
21745 D(p->level--);
21746 return _res;
21747}
21748
21749// _loop0_57: ',' maybe_star_pattern
21750static asdl_seq *
21751_loop0_57_rule(Parser *p)
21752{
21753 D(p->level++);
21754 if (p->error_indicator) {
21755 D(p->level--);
21756 return NULL;
21757 }
21758 void *_res = NULL;
21759 int _mark = p->mark;
21760 int _start_mark = p->mark;
21761 void **_children = PyMem_Malloc(sizeof(void *));
21762 if (!_children) {
21763 p->error_indicator = 1;
21764 PyErr_NoMemory();
21765 D(p->level--);
21766 return NULL;
21767 }
21768 ssize_t _children_capacity = 1;
21769 ssize_t _n = 0;
21770 { // ',' maybe_star_pattern
21771 if (p->error_indicator) {
21772 D(p->level--);
21773 return NULL;
21774 }
21775 D(fprintf(stderr, "%*c> _loop0_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' maybe_star_pattern"));
21776 Token * _literal;
21777 expr_ty elem;
21778 while (
21779 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21780 &&
21781 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
21782 )
21783 {
21784 _res = elem;
21785 if (_res == NULL && PyErr_Occurred()) {
21786 p->error_indicator = 1;
21787 PyMem_Free(_children);
21788 D(p->level--);
21789 return NULL;
21790 }
21791 if (_n == _children_capacity) {
21792 _children_capacity *= 2;
21793 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21794 if (!_new_children) {
21795 p->error_indicator = 1;
21796 PyErr_NoMemory();
21797 D(p->level--);
21798 return NULL;
21799 }
21800 _children = _new_children;
21801 }
21802 _children[_n++] = _res;
21803 _mark = p->mark;
21804 }
21805 p->mark = _mark;
21806 D(fprintf(stderr, "%*c%s _loop0_57[%d-%d]: %s failed!\n", p->level, ' ',
21807 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' maybe_star_pattern"));
21808 }
21809 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
21810 if (!_seq) {
21811 PyMem_Free(_children);
21812 p->error_indicator = 1;
21813 PyErr_NoMemory();
21814 D(p->level--);
21815 return NULL;
21816 }
21817 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
21818 PyMem_Free(_children);
21819 _PyPegen_insert_memo(p, _start_mark, _loop0_57_type, _seq);
21820 D(p->level--);
21821 return _seq;
21822}
21823
21824// _gather_56: maybe_star_pattern _loop0_57
21825static asdl_seq *
21826_gather_56_rule(Parser *p)
21827{
21828 D(p->level++);
21829 if (p->error_indicator) {
21830 D(p->level--);
21831 return NULL;
21832 }
21833 asdl_seq * _res = NULL;
21834 int _mark = p->mark;
21835 { // maybe_star_pattern _loop0_57
21836 if (p->error_indicator) {
21837 D(p->level--);
21838 return NULL;
21839 }
21840 D(fprintf(stderr, "%*c> _gather_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_57"));
21841 expr_ty elem;
21842 asdl_seq * seq;
21843 if (
21844 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
21845 &&
21846 (seq = _loop0_57_rule(p)) // _loop0_57
21847 )
21848 {
21849 D(fprintf(stderr, "%*c+ _gather_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_57"));
21850 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21851 goto done;
21852 }
21853 p->mark = _mark;
21854 D(fprintf(stderr, "%*c%s _gather_56[%d-%d]: %s failed!\n", p->level, ' ',
21855 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern _loop0_57"));
21856 }
21857 _res = NULL;
21858 done:
21859 D(p->level--);
21860 return _res;
21861}
21862
21863// _tmp_58: capture_pattern | wildcard_pattern
21864static void *
21865_tmp_58_rule(Parser *p)
21866{
21867 D(p->level++);
21868 if (p->error_indicator) {
21869 D(p->level--);
21870 return NULL;
21871 }
21872 void * _res = NULL;
21873 int _mark = p->mark;
21874 { // capture_pattern
21875 if (p->error_indicator) {
21876 D(p->level--);
21877 return NULL;
21878 }
21879 D(fprintf(stderr, "%*c> _tmp_58[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
21880 expr_ty capture_pattern_var;
21881 if (
21882 (capture_pattern_var = capture_pattern_rule(p)) // capture_pattern
21883 )
21884 {
21885 D(fprintf(stderr, "%*c+ _tmp_58[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
21886 _res = capture_pattern_var;
21887 goto done;
21888 }
21889 p->mark = _mark;
21890 D(fprintf(stderr, "%*c%s _tmp_58[%d-%d]: %s failed!\n", p->level, ' ',
21891 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern"));
21892 }
21893 { // wildcard_pattern
21894 if (p->error_indicator) {
21895 D(p->level--);
21896 return NULL;
21897 }
21898 D(fprintf(stderr, "%*c> _tmp_58[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
21899 expr_ty wildcard_pattern_var;
21900 if (
21901 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
21902 )
21903 {
21904 D(fprintf(stderr, "%*c+ _tmp_58[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
21905 _res = wildcard_pattern_var;
21906 goto done;
21907 }
21908 p->mark = _mark;
21909 D(fprintf(stderr, "%*c%s _tmp_58[%d-%d]: %s failed!\n", p->level, ' ',
21910 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern"));
21911 }
21912 _res = NULL;
21913 done:
21914 D(p->level--);
21915 return _res;
21916}
21917
21918// _loop0_60: ',' key_value_pattern
21919static asdl_seq *
21920_loop0_60_rule(Parser *p)
21921{
21922 D(p->level++);
21923 if (p->error_indicator) {
21924 D(p->level--);
21925 return NULL;
21926 }
21927 void *_res = NULL;
21928 int _mark = p->mark;
21929 int _start_mark = p->mark;
21930 void **_children = PyMem_Malloc(sizeof(void *));
21931 if (!_children) {
21932 p->error_indicator = 1;
21933 PyErr_NoMemory();
21934 D(p->level--);
21935 return NULL;
21936 }
21937 ssize_t _children_capacity = 1;
21938 ssize_t _n = 0;
21939 { // ',' key_value_pattern
21940 if (p->error_indicator) {
21941 D(p->level--);
21942 return NULL;
21943 }
21944 D(fprintf(stderr, "%*c> _loop0_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' key_value_pattern"));
21945 Token * _literal;
21946 KeyValuePair* elem;
21947 while (
21948 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21949 &&
21950 (elem = key_value_pattern_rule(p)) // key_value_pattern
21951 )
21952 {
21953 _res = elem;
21954 if (_res == NULL && PyErr_Occurred()) {
21955 p->error_indicator = 1;
21956 PyMem_Free(_children);
21957 D(p->level--);
21958 return NULL;
21959 }
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();
21966 D(p->level--);
21967 return NULL;
21968 }
21969 _children = _new_children;
21970 }
21971 _children[_n++] = _res;
21972 _mark = p->mark;
21973 }
21974 p->mark = _mark;
21975 D(fprintf(stderr, "%*c%s _loop0_60[%d-%d]: %s failed!\n", p->level, ' ',
21976 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' key_value_pattern"));
21977 }
21978 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
21979 if (!_seq) {
21980 PyMem_Free(_children);
21981 p->error_indicator = 1;
21982 PyErr_NoMemory();
21983 D(p->level--);
21984 return NULL;
21985 }
21986 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
21987 PyMem_Free(_children);
21988 _PyPegen_insert_memo(p, _start_mark, _loop0_60_type, _seq);
21989 D(p->level--);
21990 return _seq;
21991}
21992
21993// _gather_59: key_value_pattern _loop0_60
21994static asdl_seq *
21995_gather_59_rule(Parser *p)
21996{
21997 D(p->level++);
21998 if (p->error_indicator) {
21999 D(p->level--);
22000 return NULL;
22001 }
22002 asdl_seq * _res = NULL;
22003 int _mark = p->mark;
22004 { // key_value_pattern _loop0_60
22005 if (p->error_indicator) {
22006 D(p->level--);
22007 return NULL;
22008 }
22009 D(fprintf(stderr, "%*c> _gather_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
22010 KeyValuePair* elem;
22011 asdl_seq * seq;
22012 if (
22013 (elem = key_value_pattern_rule(p)) // key_value_pattern
22014 &&
22015 (seq = _loop0_60_rule(p)) // _loop0_60
22016 )
22017 {
22018 D(fprintf(stderr, "%*c+ _gather_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
22019 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22020 goto done;
22021 }
22022 p->mark = _mark;
22023 D(fprintf(stderr, "%*c%s _gather_59[%d-%d]: %s failed!\n", p->level, ' ',
22024 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "key_value_pattern _loop0_60"));
22025 }
22026 _res = NULL;
22027 done:
22028 D(p->level--);
22029 return _res;
22030}
22031
22032// _tmp_61: literal_pattern | value_pattern
22033static void *
22034_tmp_61_rule(Parser *p)
22035{
22036 D(p->level++);
22037 if (p->error_indicator) {
22038 D(p->level--);
22039 return NULL;
22040 }
22041 void * _res = NULL;
22042 int _mark = p->mark;
22043 { // literal_pattern
22044 if (p->error_indicator) {
22045 D(p->level--);
22046 return NULL;
22047 }
22048 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
22049 expr_ty literal_pattern_var;
22050 if (
22051 (literal_pattern_var = literal_pattern_rule(p)) // literal_pattern
22052 )
22053 {
22054 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
22055 _res = literal_pattern_var;
22056 goto done;
22057 }
22058 p->mark = _mark;
22059 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
22060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern"));
22061 }
22062 { // value_pattern
22063 if (p->error_indicator) {
22064 D(p->level--);
22065 return NULL;
22066 }
22067 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
22068 expr_ty value_pattern_var;
22069 if (
22070 (value_pattern_var = value_pattern_rule(p)) // value_pattern
22071 )
22072 {
22073 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
22074 _res = value_pattern_var;
22075 goto done;
22076 }
22077 p->mark = _mark;
22078 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
22079 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern"));
22080 }
22081 _res = NULL;
22082 done:
22083 D(p->level--);
22084 return _res;
22085}
22086
22087// _loop0_63: ',' pattern
22088static asdl_seq *
22089_loop0_63_rule(Parser *p)
22090{
22091 D(p->level++);
22092 if (p->error_indicator) {
22093 D(p->level--);
22094 return NULL;
22095 }
22096 void *_res = NULL;
22097 int _mark = p->mark;
22098 int _start_mark = p->mark;
22099 void **_children = PyMem_Malloc(sizeof(void *));
22100 if (!_children) {
22101 p->error_indicator = 1;
22102 PyErr_NoMemory();
22103 D(p->level--);
22104 return NULL;
22105 }
22106 ssize_t _children_capacity = 1;
22107 ssize_t _n = 0;
22108 { // ',' pattern
22109 if (p->error_indicator) {
22110 D(p->level--);
22111 return NULL;
22112 }
22113 D(fprintf(stderr, "%*c> _loop0_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' pattern"));
22114 Token * _literal;
22115 expr_ty elem;
22116 while (
22117 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22118 &&
22119 (elem = pattern_rule(p)) // pattern
22120 )
22121 {
22122 _res = elem;
22123 if (_res == NULL && PyErr_Occurred()) {
22124 p->error_indicator = 1;
22125 PyMem_Free(_children);
22126 D(p->level--);
22127 return NULL;
22128 }
22129 if (_n == _children_capacity) {
22130 _children_capacity *= 2;
22131 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22132 if (!_new_children) {
22133 p->error_indicator = 1;
22134 PyErr_NoMemory();
22135 D(p->level--);
22136 return NULL;
22137 }
22138 _children = _new_children;
22139 }
22140 _children[_n++] = _res;
22141 _mark = p->mark;
22142 }
22143 p->mark = _mark;
22144 D(fprintf(stderr, "%*c%s _loop0_63[%d-%d]: %s failed!\n", p->level, ' ',
22145 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' pattern"));
22146 }
22147 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22148 if (!_seq) {
22149 PyMem_Free(_children);
22150 p->error_indicator = 1;
22151 PyErr_NoMemory();
22152 D(p->level--);
22153 return NULL;
22154 }
22155 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22156 PyMem_Free(_children);
22157 _PyPegen_insert_memo(p, _start_mark, _loop0_63_type, _seq);
22158 D(p->level--);
22159 return _seq;
22160}
22161
22162// _gather_62: pattern _loop0_63
22163static asdl_seq *
22164_gather_62_rule(Parser *p)
22165{
22166 D(p->level++);
22167 if (p->error_indicator) {
22168 D(p->level--);
22169 return NULL;
22170 }
22171 asdl_seq * _res = NULL;
22172 int _mark = p->mark;
22173 { // pattern _loop0_63
22174 if (p->error_indicator) {
22175 D(p->level--);
22176 return NULL;
22177 }
22178 D(fprintf(stderr, "%*c> _gather_62[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
22179 expr_ty elem;
22180 asdl_seq * seq;
22181 if (
22182 (elem = pattern_rule(p)) // pattern
22183 &&
22184 (seq = _loop0_63_rule(p)) // _loop0_63
22185 )
22186 {
22187 D(fprintf(stderr, "%*c+ _gather_62[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
22188 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22189 goto done;
22190 }
22191 p->mark = _mark;
22192 D(fprintf(stderr, "%*c%s _gather_62[%d-%d]: %s failed!\n", p->level, ' ',
22193 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern _loop0_63"));
22194 }
22195 _res = NULL;
22196 done:
22197 D(p->level--);
22198 return _res;
22199}
22200
22201// _loop0_65: ',' keyword_pattern
22202static asdl_seq *
22203_loop0_65_rule(Parser *p)
22204{
22205 D(p->level++);
22206 if (p->error_indicator) {
22207 D(p->level--);
22208 return NULL;
22209 }
22210 void *_res = NULL;
22211 int _mark = p->mark;
22212 int _start_mark = p->mark;
22213 void **_children = PyMem_Malloc(sizeof(void *));
22214 if (!_children) {
22215 p->error_indicator = 1;
22216 PyErr_NoMemory();
22217 D(p->level--);
22218 return NULL;
22219 }
22220 ssize_t _children_capacity = 1;
22221 ssize_t _n = 0;
22222 { // ',' keyword_pattern
22223 if (p->error_indicator) {
22224 D(p->level--);
22225 return NULL;
22226 }
22227 D(fprintf(stderr, "%*c> _loop0_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' keyword_pattern"));
22228 Token * _literal;
22229 keyword_ty elem;
22230 while (
22231 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22232 &&
22233 (elem = keyword_pattern_rule(p)) // keyword_pattern
22234 )
22235 {
22236 _res = elem;
22237 if (_res == NULL && PyErr_Occurred()) {
22238 p->error_indicator = 1;
22239 PyMem_Free(_children);
22240 D(p->level--);
22241 return NULL;
22242 }
22243 if (_n == _children_capacity) {
22244 _children_capacity *= 2;
22245 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22246 if (!_new_children) {
22247 p->error_indicator = 1;
22248 PyErr_NoMemory();
22249 D(p->level--);
22250 return NULL;
22251 }
22252 _children = _new_children;
22253 }
22254 _children[_n++] = _res;
22255 _mark = p->mark;
22256 }
22257 p->mark = _mark;
22258 D(fprintf(stderr, "%*c%s _loop0_65[%d-%d]: %s failed!\n", p->level, ' ',
22259 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' keyword_pattern"));
22260 }
22261 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22262 if (!_seq) {
22263 PyMem_Free(_children);
22264 p->error_indicator = 1;
22265 PyErr_NoMemory();
22266 D(p->level--);
22267 return NULL;
22268 }
22269 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22270 PyMem_Free(_children);
22271 _PyPegen_insert_memo(p, _start_mark, _loop0_65_type, _seq);
22272 D(p->level--);
22273 return _seq;
22274}
22275
22276// _gather_64: keyword_pattern _loop0_65
22277static asdl_seq *
22278_gather_64_rule(Parser *p)
22279{
22280 D(p->level++);
22281 if (p->error_indicator) {
22282 D(p->level--);
22283 return NULL;
22284 }
22285 asdl_seq * _res = NULL;
22286 int _mark = p->mark;
22287 { // keyword_pattern _loop0_65
22288 if (p->error_indicator) {
22289 D(p->level--);
22290 return NULL;
22291 }
22292 D(fprintf(stderr, "%*c> _gather_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
22293 keyword_ty elem;
22294 asdl_seq * seq;
22295 if (
22296 (elem = keyword_pattern_rule(p)) // keyword_pattern
22297 &&
22298 (seq = _loop0_65_rule(p)) // _loop0_65
22299 )
22300 {
22301 D(fprintf(stderr, "%*c+ _gather_64[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
22302 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22303 goto done;
22304 }
22305 p->mark = _mark;
22306 D(fprintf(stderr, "%*c%s _gather_64[%d-%d]: %s failed!\n", p->level, ' ',
22307 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "keyword_pattern _loop0_65"));
22308 }
22309 _res = NULL;
22310 done:
22311 D(p->level--);
22312 return _res;
22313}
22314
22315// _tmp_66: 'from' expression
22316static void *
22317_tmp_66_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022318{
22319 D(p->level++);
22320 if (p->error_indicator) {
22321 D(p->level--);
22322 return NULL;
22323 }
22324 void * _res = NULL;
22325 int _mark = p->mark;
22326 { // 'from' expression
22327 if (p->error_indicator) {
22328 D(p->level--);
22329 return NULL;
22330 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022331 D(fprintf(stderr, "%*c> _tmp_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022332 Token * _keyword;
22333 expr_ty z;
22334 if (
22335 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
22336 &&
22337 (z = expression_rule(p)) // expression
22338 )
22339 {
Brandt Bucher145bf262021-02-26 14:51:55 -080022340 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 +010022341 _res = z;
22342 if (_res == NULL && PyErr_Occurred()) {
22343 p->error_indicator = 1;
22344 D(p->level--);
22345 return NULL;
22346 }
22347 goto done;
22348 }
22349 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080022350 D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022351 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022352 }
22353 _res = NULL;
22354 done:
22355 D(p->level--);
22356 return _res;
22357}
22358
Brandt Bucher145bf262021-02-26 14:51:55 -080022359// _tmp_67: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022360static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080022361_tmp_67_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022362{
22363 D(p->level++);
22364 if (p->error_indicator) {
22365 D(p->level--);
22366 return NULL;
22367 }
22368 void * _res = NULL;
22369 int _mark = p->mark;
22370 { // '->' expression
22371 if (p->error_indicator) {
22372 D(p->level--);
22373 return NULL;
22374 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022375 D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022376 Token * _literal;
22377 expr_ty z;
22378 if (
22379 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
22380 &&
22381 (z = expression_rule(p)) // expression
22382 )
22383 {
Brandt Bucher145bf262021-02-26 14:51:55 -080022384 D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022385 _res = z;
22386 if (_res == NULL && PyErr_Occurred()) {
22387 p->error_indicator = 1;
22388 D(p->level--);
22389 return NULL;
22390 }
22391 goto done;
22392 }
22393 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080022394 D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022395 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
22396 }
22397 _res = NULL;
22398 done:
22399 D(p->level--);
22400 return _res;
22401}
22402
Brandt Bucher145bf262021-02-26 14:51:55 -080022403// _tmp_68: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022404static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080022405_tmp_68_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022406{
22407 D(p->level++);
22408 if (p->error_indicator) {
22409 D(p->level--);
22410 return NULL;
22411 }
22412 void * _res = NULL;
22413 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022414 { // '->' expression
22415 if (p->error_indicator) {
22416 D(p->level--);
22417 return NULL;
22418 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022419 D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022420 Token * _literal;
22421 expr_ty z;
22422 if (
22423 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
22424 &&
22425 (z = expression_rule(p)) // expression
22426 )
22427 {
Brandt Bucher145bf262021-02-26 14:51:55 -080022428 D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022429 _res = z;
22430 if (_res == NULL && PyErr_Occurred()) {
22431 p->error_indicator = 1;
22432 D(p->level--);
22433 return NULL;
22434 }
22435 goto done;
22436 }
22437 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080022438 D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
22440 }
22441 _res = NULL;
22442 done:
22443 D(p->level--);
22444 return _res;
22445}
22446
Brandt Bucher145bf262021-02-26 14:51:55 -080022447// _tmp_69: NEWLINE INDENT
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022448static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080022449_tmp_69_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022450{
22451 D(p->level++);
22452 if (p->error_indicator) {
22453 D(p->level--);
22454 return NULL;
22455 }
22456 void * _res = NULL;
22457 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022458 { // NEWLINE INDENT
22459 if (p->error_indicator) {
22460 D(p->level--);
22461 return NULL;
22462 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022463 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022464 Token * indent_var;
22465 Token * newline_var;
22466 if (
22467 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22468 &&
22469 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
22470 )
22471 {
Brandt Bucher145bf262021-02-26 14:51:55 -080022472 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 +010022473 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
22474 goto done;
22475 }
22476 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080022477 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
22479 }
22480 _res = NULL;
22481 done:
22482 D(p->level--);
22483 return _res;
22484}
22485
Brandt Bucher145bf262021-02-26 14:51:55 -080022486// _loop0_70: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022487static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080022488_loop0_70_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022489{
22490 D(p->level++);
22491 if (p->error_indicator) {
22492 D(p->level--);
22493 return NULL;
22494 }
22495 void *_res = NULL;
22496 int _mark = p->mark;
22497 int _start_mark = p->mark;
22498 void **_children = PyMem_Malloc(sizeof(void *));
22499 if (!_children) {
22500 p->error_indicator = 1;
22501 PyErr_NoMemory();
22502 D(p->level--);
22503 return NULL;
22504 }
22505 ssize_t _children_capacity = 1;
22506 ssize_t _n = 0;
22507 { // param_no_default
22508 if (p->error_indicator) {
22509 D(p->level--);
22510 return NULL;
22511 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022512 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 +010022513 arg_ty param_no_default_var;
22514 while (
22515 (param_no_default_var = param_no_default_rule(p)) // param_no_default
22516 )
22517 {
22518 _res = param_no_default_var;
22519 if (_n == _children_capacity) {
22520 _children_capacity *= 2;
22521 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22522 if (!_new_children) {
22523 p->error_indicator = 1;
22524 PyErr_NoMemory();
22525 D(p->level--);
22526 return NULL;
22527 }
22528 _children = _new_children;
22529 }
22530 _children[_n++] = _res;
22531 _mark = p->mark;
22532 }
22533 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080022534 D(fprintf(stderr, "%*c%s _loop0_70[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022535 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022536 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022537 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022538 if (!_seq) {
22539 PyMem_Free(_children);
22540 p->error_indicator = 1;
22541 PyErr_NoMemory();
22542 D(p->level--);
22543 return NULL;
22544 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022545 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022546 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080022547 _PyPegen_insert_memo(p, _start_mark, _loop0_70_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022548 D(p->level--);
22549 return _seq;
22550}
22551
Brandt Bucher145bf262021-02-26 14:51:55 -080022552// _loop0_71: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022553static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080022554_loop0_71_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022555{
22556 D(p->level++);
22557 if (p->error_indicator) {
22558 D(p->level--);
22559 return NULL;
22560 }
22561 void *_res = NULL;
22562 int _mark = p->mark;
22563 int _start_mark = p->mark;
22564 void **_children = PyMem_Malloc(sizeof(void *));
22565 if (!_children) {
22566 p->error_indicator = 1;
22567 PyErr_NoMemory();
22568 D(p->level--);
22569 return NULL;
22570 }
22571 ssize_t _children_capacity = 1;
22572 ssize_t _n = 0;
22573 { // param_with_default
22574 if (p->error_indicator) {
22575 D(p->level--);
22576 return NULL;
22577 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022578 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 +010022579 NameDefaultPair* param_with_default_var;
22580 while (
22581 (param_with_default_var = param_with_default_rule(p)) // param_with_default
22582 )
22583 {
22584 _res = param_with_default_var;
22585 if (_n == _children_capacity) {
22586 _children_capacity *= 2;
22587 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22588 if (!_new_children) {
22589 p->error_indicator = 1;
22590 PyErr_NoMemory();
22591 D(p->level--);
22592 return NULL;
22593 }
22594 _children = _new_children;
22595 }
22596 _children[_n++] = _res;
22597 _mark = p->mark;
22598 }
22599 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080022600 D(fprintf(stderr, "%*c%s _loop0_71[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022601 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
22602 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022603 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022604 if (!_seq) {
22605 PyMem_Free(_children);
22606 p->error_indicator = 1;
22607 PyErr_NoMemory();
22608 D(p->level--);
22609 return NULL;
22610 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022611 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022612 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080022613 _PyPegen_insert_memo(p, _start_mark, _loop0_71_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022614 D(p->level--);
22615 return _seq;
22616}
22617
Brandt Bucher145bf262021-02-26 14:51:55 -080022618// _loop0_72: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022619static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080022620_loop0_72_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022621{
22622 D(p->level++);
22623 if (p->error_indicator) {
22624 D(p->level--);
22625 return NULL;
22626 }
22627 void *_res = NULL;
22628 int _mark = p->mark;
22629 int _start_mark = p->mark;
22630 void **_children = PyMem_Malloc(sizeof(void *));
22631 if (!_children) {
22632 p->error_indicator = 1;
22633 PyErr_NoMemory();
22634 D(p->level--);
22635 return NULL;
22636 }
22637 ssize_t _children_capacity = 1;
22638 ssize_t _n = 0;
22639 { // param_with_default
22640 if (p->error_indicator) {
22641 D(p->level--);
22642 return NULL;
22643 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022644 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 +030022645 NameDefaultPair* param_with_default_var;
22646 while (
22647 (param_with_default_var = param_with_default_rule(p)) // param_with_default
22648 )
22649 {
22650 _res = param_with_default_var;
22651 if (_n == _children_capacity) {
22652 _children_capacity *= 2;
22653 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22654 if (!_new_children) {
22655 p->error_indicator = 1;
22656 PyErr_NoMemory();
22657 D(p->level--);
22658 return NULL;
22659 }
22660 _children = _new_children;
22661 }
22662 _children[_n++] = _res;
22663 _mark = p->mark;
22664 }
22665 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080022666 D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
22668 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022669 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022670 if (!_seq) {
22671 PyMem_Free(_children);
22672 p->error_indicator = 1;
22673 PyErr_NoMemory();
22674 D(p->level--);
22675 return NULL;
22676 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022677 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022678 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080022679 _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022680 D(p->level--);
22681 return _seq;
22682}
22683
Brandt Bucher145bf262021-02-26 14:51:55 -080022684// _loop1_73: param_no_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022685static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080022686_loop1_73_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022687{
22688 D(p->level++);
22689 if (p->error_indicator) {
22690 D(p->level--);
22691 return NULL;
22692 }
22693 void *_res = NULL;
22694 int _mark = p->mark;
22695 int _start_mark = p->mark;
22696 void **_children = PyMem_Malloc(sizeof(void *));
22697 if (!_children) {
22698 p->error_indicator = 1;
22699 PyErr_NoMemory();
22700 D(p->level--);
22701 return NULL;
22702 }
22703 ssize_t _children_capacity = 1;
22704 ssize_t _n = 0;
22705 { // param_no_default
22706 if (p->error_indicator) {
22707 D(p->level--);
22708 return NULL;
22709 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022710 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 +010022711 arg_ty param_no_default_var;
22712 while (
22713 (param_no_default_var = param_no_default_rule(p)) // param_no_default
22714 )
22715 {
22716 _res = param_no_default_var;
22717 if (_n == _children_capacity) {
22718 _children_capacity *= 2;
22719 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22720 if (!_new_children) {
22721 p->error_indicator = 1;
22722 PyErr_NoMemory();
22723 D(p->level--);
22724 return NULL;
22725 }
22726 _children = _new_children;
22727 }
22728 _children[_n++] = _res;
22729 _mark = p->mark;
22730 }
22731 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080022732 D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022733 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
22734 }
22735 if (_n == 0 || p->error_indicator) {
22736 PyMem_Free(_children);
22737 D(p->level--);
22738 return NULL;
22739 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022740 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022741 if (!_seq) {
22742 PyMem_Free(_children);
22743 p->error_indicator = 1;
22744 PyErr_NoMemory();
22745 D(p->level--);
22746 return NULL;
22747 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022748 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022749 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080022750 _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022751 D(p->level--);
22752 return _seq;
22753}
22754
Brandt Bucher145bf262021-02-26 14:51:55 -080022755// _loop0_74: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022756static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080022757_loop0_74_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022758{
22759 D(p->level++);
22760 if (p->error_indicator) {
22761 D(p->level--);
22762 return NULL;
22763 }
22764 void *_res = NULL;
22765 int _mark = p->mark;
22766 int _start_mark = p->mark;
22767 void **_children = PyMem_Malloc(sizeof(void *));
22768 if (!_children) {
22769 p->error_indicator = 1;
22770 PyErr_NoMemory();
22771 D(p->level--);
22772 return NULL;
22773 }
22774 ssize_t _children_capacity = 1;
22775 ssize_t _n = 0;
22776 { // param_with_default
22777 if (p->error_indicator) {
22778 D(p->level--);
22779 return NULL;
22780 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022781 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 +010022782 NameDefaultPair* param_with_default_var;
22783 while (
22784 (param_with_default_var = param_with_default_rule(p)) // param_with_default
22785 )
22786 {
22787 _res = param_with_default_var;
22788 if (_n == _children_capacity) {
22789 _children_capacity *= 2;
22790 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22791 if (!_new_children) {
22792 p->error_indicator = 1;
22793 PyErr_NoMemory();
22794 D(p->level--);
22795 return NULL;
22796 }
22797 _children = _new_children;
22798 }
22799 _children[_n++] = _res;
22800 _mark = p->mark;
22801 }
22802 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080022803 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022804 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
22805 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022806 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022807 if (!_seq) {
22808 PyMem_Free(_children);
22809 p->error_indicator = 1;
22810 PyErr_NoMemory();
22811 D(p->level--);
22812 return NULL;
22813 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022814 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022815 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080022816 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022817 D(p->level--);
22818 return _seq;
22819}
22820
Brandt Bucher145bf262021-02-26 14:51:55 -080022821// _loop1_75: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022822static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080022823_loop1_75_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022824{
22825 D(p->level++);
22826 if (p->error_indicator) {
22827 D(p->level--);
22828 return NULL;
22829 }
22830 void *_res = NULL;
22831 int _mark = p->mark;
22832 int _start_mark = p->mark;
22833 void **_children = PyMem_Malloc(sizeof(void *));
22834 if (!_children) {
22835 p->error_indicator = 1;
22836 PyErr_NoMemory();
22837 D(p->level--);
22838 return NULL;
22839 }
22840 ssize_t _children_capacity = 1;
22841 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022842 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022843 if (p->error_indicator) {
22844 D(p->level--);
22845 return NULL;
22846 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022847 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 +030022848 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022849 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022850 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022851 )
22852 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022853 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022854 if (_n == _children_capacity) {
22855 _children_capacity *= 2;
22856 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22857 if (!_new_children) {
22858 p->error_indicator = 1;
22859 PyErr_NoMemory();
22860 D(p->level--);
22861 return NULL;
22862 }
22863 _children = _new_children;
22864 }
22865 _children[_n++] = _res;
22866 _mark = p->mark;
22867 }
22868 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080022869 D(fprintf(stderr, "%*c%s _loop1_75[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022870 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022871 }
22872 if (_n == 0 || p->error_indicator) {
22873 PyMem_Free(_children);
22874 D(p->level--);
22875 return NULL;
22876 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022877 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022878 if (!_seq) {
22879 PyMem_Free(_children);
22880 p->error_indicator = 1;
22881 PyErr_NoMemory();
22882 D(p->level--);
22883 return NULL;
22884 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022885 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022886 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080022887 _PyPegen_insert_memo(p, _start_mark, _loop1_75_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022888 D(p->level--);
22889 return _seq;
22890}
22891
Brandt Bucher145bf262021-02-26 14:51:55 -080022892// _loop1_76: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022893static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080022894_loop1_76_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022895{
22896 D(p->level++);
22897 if (p->error_indicator) {
22898 D(p->level--);
22899 return NULL;
22900 }
22901 void *_res = NULL;
22902 int _mark = p->mark;
22903 int _start_mark = p->mark;
22904 void **_children = PyMem_Malloc(sizeof(void *));
22905 if (!_children) {
22906 p->error_indicator = 1;
22907 PyErr_NoMemory();
22908 D(p->level--);
22909 return NULL;
22910 }
22911 ssize_t _children_capacity = 1;
22912 ssize_t _n = 0;
22913 { // param_no_default
22914 if (p->error_indicator) {
22915 D(p->level--);
22916 return NULL;
22917 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022918 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 +010022919 arg_ty param_no_default_var;
22920 while (
22921 (param_no_default_var = param_no_default_rule(p)) // param_no_default
22922 )
22923 {
22924 _res = param_no_default_var;
22925 if (_n == _children_capacity) {
22926 _children_capacity *= 2;
22927 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22928 if (!_new_children) {
22929 p->error_indicator = 1;
22930 PyErr_NoMemory();
22931 D(p->level--);
22932 return NULL;
22933 }
22934 _children = _new_children;
22935 }
22936 _children[_n++] = _res;
22937 _mark = p->mark;
22938 }
22939 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080022940 D(fprintf(stderr, "%*c%s _loop1_76[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022941 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
22942 }
22943 if (_n == 0 || p->error_indicator) {
22944 PyMem_Free(_children);
22945 D(p->level--);
22946 return NULL;
22947 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022948 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022949 if (!_seq) {
22950 PyMem_Free(_children);
22951 p->error_indicator = 1;
22952 PyErr_NoMemory();
22953 D(p->level--);
22954 return NULL;
22955 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022956 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022957 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080022958 _PyPegen_insert_memo(p, _start_mark, _loop1_76_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022959 D(p->level--);
22960 return _seq;
22961}
22962
Brandt Bucher145bf262021-02-26 14:51:55 -080022963// _loop1_77: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022964static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080022965_loop1_77_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022966{
22967 D(p->level++);
22968 if (p->error_indicator) {
22969 D(p->level--);
22970 return NULL;
22971 }
22972 void *_res = NULL;
22973 int _mark = p->mark;
22974 int _start_mark = p->mark;
22975 void **_children = PyMem_Malloc(sizeof(void *));
22976 if (!_children) {
22977 p->error_indicator = 1;
22978 PyErr_NoMemory();
22979 D(p->level--);
22980 return NULL;
22981 }
22982 ssize_t _children_capacity = 1;
22983 ssize_t _n = 0;
22984 { // param_no_default
22985 if (p->error_indicator) {
22986 D(p->level--);
22987 return NULL;
22988 }
Brandt Bucher145bf262021-02-26 14:51:55 -080022989 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 +010022990 arg_ty param_no_default_var;
22991 while (
22992 (param_no_default_var = param_no_default_rule(p)) // param_no_default
22993 )
22994 {
22995 _res = param_no_default_var;
22996 if (_n == _children_capacity) {
22997 _children_capacity *= 2;
22998 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22999 if (!_new_children) {
23000 p->error_indicator = 1;
23001 PyErr_NoMemory();
23002 D(p->level--);
23003 return NULL;
23004 }
23005 _children = _new_children;
23006 }
23007 _children[_n++] = _res;
23008 _mark = p->mark;
23009 }
23010 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023011 D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023012 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
23013 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023014 if (_n == 0 || p->error_indicator) {
23015 PyMem_Free(_children);
23016 D(p->level--);
23017 return NULL;
23018 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023019 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023020 if (!_seq) {
23021 PyMem_Free(_children);
23022 p->error_indicator = 1;
23023 PyErr_NoMemory();
23024 D(p->level--);
23025 return NULL;
23026 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023027 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023028 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023029 _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023030 D(p->level--);
23031 return _seq;
23032}
23033
Brandt Bucher145bf262021-02-26 14:51:55 -080023034// _loop0_78: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023035static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023036_loop0_78_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023037{
23038 D(p->level++);
23039 if (p->error_indicator) {
23040 D(p->level--);
23041 return NULL;
23042 }
23043 void *_res = NULL;
23044 int _mark = p->mark;
23045 int _start_mark = p->mark;
23046 void **_children = PyMem_Malloc(sizeof(void *));
23047 if (!_children) {
23048 p->error_indicator = 1;
23049 PyErr_NoMemory();
23050 D(p->level--);
23051 return NULL;
23052 }
23053 ssize_t _children_capacity = 1;
23054 ssize_t _n = 0;
23055 { // param_no_default
23056 if (p->error_indicator) {
23057 D(p->level--);
23058 return NULL;
23059 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023060 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 +010023061 arg_ty param_no_default_var;
23062 while (
23063 (param_no_default_var = param_no_default_rule(p)) // param_no_default
23064 )
23065 {
23066 _res = param_no_default_var;
23067 if (_n == _children_capacity) {
23068 _children_capacity *= 2;
23069 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23070 if (!_new_children) {
23071 p->error_indicator = 1;
23072 PyErr_NoMemory();
23073 D(p->level--);
23074 return NULL;
23075 }
23076 _children = _new_children;
23077 }
23078 _children[_n++] = _res;
23079 _mark = p->mark;
23080 }
23081 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023082 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
23084 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023085 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023086 if (!_seq) {
23087 PyMem_Free(_children);
23088 p->error_indicator = 1;
23089 PyErr_NoMemory();
23090 D(p->level--);
23091 return NULL;
23092 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023093 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023094 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023095 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023096 D(p->level--);
23097 return _seq;
23098}
23099
Brandt Bucher145bf262021-02-26 14:51:55 -080023100// _loop1_79: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023101static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023102_loop1_79_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023103{
23104 D(p->level++);
23105 if (p->error_indicator) {
23106 D(p->level--);
23107 return NULL;
23108 }
23109 void *_res = NULL;
23110 int _mark = p->mark;
23111 int _start_mark = p->mark;
23112 void **_children = PyMem_Malloc(sizeof(void *));
23113 if (!_children) {
23114 p->error_indicator = 1;
23115 PyErr_NoMemory();
23116 D(p->level--);
23117 return NULL;
23118 }
23119 ssize_t _children_capacity = 1;
23120 ssize_t _n = 0;
23121 { // param_with_default
23122 if (p->error_indicator) {
23123 D(p->level--);
23124 return NULL;
23125 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023126 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 +010023127 NameDefaultPair* param_with_default_var;
23128 while (
23129 (param_with_default_var = param_with_default_rule(p)) // param_with_default
23130 )
23131 {
23132 _res = param_with_default_var;
23133 if (_n == _children_capacity) {
23134 _children_capacity *= 2;
23135 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23136 if (!_new_children) {
23137 p->error_indicator = 1;
23138 PyErr_NoMemory();
23139 D(p->level--);
23140 return NULL;
23141 }
23142 _children = _new_children;
23143 }
23144 _children[_n++] = _res;
23145 _mark = p->mark;
23146 }
23147 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023148 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
23150 }
23151 if (_n == 0 || p->error_indicator) {
23152 PyMem_Free(_children);
23153 D(p->level--);
23154 return NULL;
23155 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023156 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023157 if (!_seq) {
23158 PyMem_Free(_children);
23159 p->error_indicator = 1;
23160 PyErr_NoMemory();
23161 D(p->level--);
23162 return NULL;
23163 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023164 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023165 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023166 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023167 D(p->level--);
23168 return _seq;
23169}
23170
Brandt Bucher145bf262021-02-26 14:51:55 -080023171// _loop0_80: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023172static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023173_loop0_80_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023174{
23175 D(p->level++);
23176 if (p->error_indicator) {
23177 D(p->level--);
23178 return NULL;
23179 }
23180 void *_res = NULL;
23181 int _mark = p->mark;
23182 int _start_mark = p->mark;
23183 void **_children = PyMem_Malloc(sizeof(void *));
23184 if (!_children) {
23185 p->error_indicator = 1;
23186 PyErr_NoMemory();
23187 D(p->level--);
23188 return NULL;
23189 }
23190 ssize_t _children_capacity = 1;
23191 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023192 { // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023193 if (p->error_indicator) {
23194 D(p->level--);
23195 return NULL;
23196 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023197 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 +030023198 arg_ty param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023199 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023200 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023201 )
23202 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023203 _res = param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023204 if (_n == _children_capacity) {
23205 _children_capacity *= 2;
23206 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23207 if (!_new_children) {
23208 p->error_indicator = 1;
23209 PyErr_NoMemory();
23210 D(p->level--);
23211 return NULL;
23212 }
23213 _children = _new_children;
23214 }
23215 _children[_n++] = _res;
23216 _mark = p->mark;
23217 }
23218 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023219 D(fprintf(stderr, "%*c%s _loop0_80[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023220 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023221 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023222 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023223 if (!_seq) {
23224 PyMem_Free(_children);
23225 p->error_indicator = 1;
23226 PyErr_NoMemory();
23227 D(p->level--);
23228 return NULL;
23229 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023230 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023231 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023232 _PyPegen_insert_memo(p, _start_mark, _loop0_80_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023233 D(p->level--);
23234 return _seq;
23235}
23236
Brandt Bucher145bf262021-02-26 14:51:55 -080023237// _loop1_81: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023238static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023239_loop1_81_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023240{
23241 D(p->level++);
23242 if (p->error_indicator) {
23243 D(p->level--);
23244 return NULL;
23245 }
23246 void *_res = NULL;
23247 int _mark = p->mark;
23248 int _start_mark = p->mark;
23249 void **_children = PyMem_Malloc(sizeof(void *));
23250 if (!_children) {
23251 p->error_indicator = 1;
23252 PyErr_NoMemory();
23253 D(p->level--);
23254 return NULL;
23255 }
23256 ssize_t _children_capacity = 1;
23257 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023258 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023259 if (p->error_indicator) {
23260 D(p->level--);
23261 return NULL;
23262 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023263 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 +030023264 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023265 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023266 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023267 )
23268 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023269 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023270 if (_n == _children_capacity) {
23271 _children_capacity *= 2;
23272 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23273 if (!_new_children) {
23274 p->error_indicator = 1;
23275 PyErr_NoMemory();
23276 D(p->level--);
23277 return NULL;
23278 }
23279 _children = _new_children;
23280 }
23281 _children[_n++] = _res;
23282 _mark = p->mark;
23283 }
23284 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023285 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023286 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023287 }
23288 if (_n == 0 || p->error_indicator) {
23289 PyMem_Free(_children);
23290 D(p->level--);
23291 return NULL;
23292 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023293 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023294 if (!_seq) {
23295 PyMem_Free(_children);
23296 p->error_indicator = 1;
23297 PyErr_NoMemory();
23298 D(p->level--);
23299 return NULL;
23300 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023301 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023302 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023303 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023304 D(p->level--);
23305 return _seq;
23306}
23307
Brandt Bucher145bf262021-02-26 14:51:55 -080023308// _loop0_82: param_maybe_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023309static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023310_loop0_82_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023311{
23312 D(p->level++);
23313 if (p->error_indicator) {
23314 D(p->level--);
23315 return NULL;
23316 }
23317 void *_res = NULL;
23318 int _mark = p->mark;
23319 int _start_mark = p->mark;
23320 void **_children = PyMem_Malloc(sizeof(void *));
23321 if (!_children) {
23322 p->error_indicator = 1;
23323 PyErr_NoMemory();
23324 D(p->level--);
23325 return NULL;
23326 }
23327 ssize_t _children_capacity = 1;
23328 ssize_t _n = 0;
23329 { // param_maybe_default
23330 if (p->error_indicator) {
23331 D(p->level--);
23332 return NULL;
23333 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023334 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 +030023335 NameDefaultPair* param_maybe_default_var;
23336 while (
23337 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
23338 )
23339 {
23340 _res = param_maybe_default_var;
23341 if (_n == _children_capacity) {
23342 _children_capacity *= 2;
23343 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23344 if (!_new_children) {
23345 p->error_indicator = 1;
23346 PyErr_NoMemory();
23347 D(p->level--);
23348 return NULL;
23349 }
23350 _children = _new_children;
23351 }
23352 _children[_n++] = _res;
23353 _mark = p->mark;
23354 }
23355 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023356 D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023357 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
23358 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023359 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023360 if (!_seq) {
23361 PyMem_Free(_children);
23362 p->error_indicator = 1;
23363 PyErr_NoMemory();
23364 D(p->level--);
23365 return NULL;
23366 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023367 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023368 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023369 _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023370 D(p->level--);
23371 return _seq;
23372}
23373
Brandt Bucher145bf262021-02-26 14:51:55 -080023374// _loop1_83: param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023375static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023376_loop1_83_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023377{
23378 D(p->level++);
23379 if (p->error_indicator) {
23380 D(p->level--);
23381 return NULL;
23382 }
23383 void *_res = NULL;
23384 int _mark = p->mark;
23385 int _start_mark = p->mark;
23386 void **_children = PyMem_Malloc(sizeof(void *));
23387 if (!_children) {
23388 p->error_indicator = 1;
23389 PyErr_NoMemory();
23390 D(p->level--);
23391 return NULL;
23392 }
23393 ssize_t _children_capacity = 1;
23394 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023395 { // param_maybe_default
23396 if (p->error_indicator) {
23397 D(p->level--);
23398 return NULL;
23399 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023400 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 +030023401 NameDefaultPair* param_maybe_default_var;
23402 while (
23403 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
23404 )
23405 {
23406 _res = param_maybe_default_var;
23407 if (_n == _children_capacity) {
23408 _children_capacity *= 2;
23409 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23410 if (!_new_children) {
23411 p->error_indicator = 1;
23412 PyErr_NoMemory();
23413 D(p->level--);
23414 return NULL;
23415 }
23416 _children = _new_children;
23417 }
23418 _children[_n++] = _res;
23419 _mark = p->mark;
23420 }
23421 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023422 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023423 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
23424 }
23425 if (_n == 0 || p->error_indicator) {
23426 PyMem_Free(_children);
23427 D(p->level--);
23428 return NULL;
23429 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023430 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023431 if (!_seq) {
23432 PyMem_Free(_children);
23433 p->error_indicator = 1;
23434 PyErr_NoMemory();
23435 D(p->level--);
23436 return NULL;
23437 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023438 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023439 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023440 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023441 D(p->level--);
23442 return _seq;
23443}
23444
Brandt Bucher145bf262021-02-26 14:51:55 -080023445// _loop1_84: ('@' named_expression NEWLINE)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023446static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023447_loop1_84_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023448{
23449 D(p->level++);
23450 if (p->error_indicator) {
23451 D(p->level--);
23452 return NULL;
23453 }
23454 void *_res = NULL;
23455 int _mark = p->mark;
23456 int _start_mark = p->mark;
23457 void **_children = PyMem_Malloc(sizeof(void *));
23458 if (!_children) {
23459 p->error_indicator = 1;
23460 PyErr_NoMemory();
23461 D(p->level--);
23462 return NULL;
23463 }
23464 ssize_t _children_capacity = 1;
23465 ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023466 { // ('@' named_expression NEWLINE)
23467 if (p->error_indicator) {
23468 D(p->level--);
23469 return NULL;
23470 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023471 D(fprintf(stderr, "%*c> _loop1_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
23472 void *_tmp_165_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023473 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080023474 (_tmp_165_var = _tmp_165_rule(p)) // '@' named_expression NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023475 )
23476 {
Brandt Bucher145bf262021-02-26 14:51:55 -080023477 _res = _tmp_165_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023478 if (_n == _children_capacity) {
23479 _children_capacity *= 2;
23480 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23481 if (!_new_children) {
23482 p->error_indicator = 1;
23483 PyErr_NoMemory();
23484 D(p->level--);
23485 return NULL;
23486 }
23487 _children = _new_children;
23488 }
23489 _children[_n++] = _res;
23490 _mark = p->mark;
23491 }
23492 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023493 D(fprintf(stderr, "%*c%s _loop1_84[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023494 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
23495 }
23496 if (_n == 0 || p->error_indicator) {
23497 PyMem_Free(_children);
23498 D(p->level--);
23499 return NULL;
23500 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023501 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023502 if (!_seq) {
23503 PyMem_Free(_children);
23504 p->error_indicator = 1;
23505 PyErr_NoMemory();
23506 D(p->level--);
23507 return NULL;
23508 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023509 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023510 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023511 _PyPegen_insert_memo(p, _start_mark, _loop1_84_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023512 D(p->level--);
23513 return _seq;
23514}
23515
Brandt Bucher145bf262021-02-26 14:51:55 -080023516// _tmp_85: '(' arguments? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023517static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080023518_tmp_85_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023519{
23520 D(p->level++);
23521 if (p->error_indicator) {
23522 D(p->level--);
23523 return NULL;
23524 }
23525 void * _res = NULL;
23526 int _mark = p->mark;
23527 { // '(' arguments? ')'
23528 if (p->error_indicator) {
23529 D(p->level--);
23530 return NULL;
23531 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023532 D(fprintf(stderr, "%*c> _tmp_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023533 Token * _literal;
23534 Token * _literal_1;
23535 void *z;
23536 if (
23537 (_literal = _PyPegen_expect_token(p, 7)) // token='('
23538 &&
23539 (z = arguments_rule(p), 1) // arguments?
23540 &&
23541 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
23542 )
23543 {
Brandt Bucher145bf262021-02-26 14:51:55 -080023544 D(fprintf(stderr, "%*c+ _tmp_85[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023545 _res = z;
23546 if (_res == NULL && PyErr_Occurred()) {
23547 p->error_indicator = 1;
23548 D(p->level--);
23549 return NULL;
23550 }
23551 goto done;
23552 }
23553 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023554 D(fprintf(stderr, "%*c%s _tmp_85[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
23556 }
23557 _res = NULL;
23558 done:
23559 D(p->level--);
23560 return _res;
23561}
23562
Brandt Bucher145bf262021-02-26 14:51:55 -080023563// _loop1_86: (',' star_expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023564static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023565_loop1_86_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023566{
23567 D(p->level++);
23568 if (p->error_indicator) {
23569 D(p->level--);
23570 return NULL;
23571 }
23572 void *_res = NULL;
23573 int _mark = p->mark;
23574 int _start_mark = p->mark;
23575 void **_children = PyMem_Malloc(sizeof(void *));
23576 if (!_children) {
23577 p->error_indicator = 1;
23578 PyErr_NoMemory();
23579 D(p->level--);
23580 return NULL;
23581 }
23582 ssize_t _children_capacity = 1;
23583 ssize_t _n = 0;
23584 { // (',' star_expression)
23585 if (p->error_indicator) {
23586 D(p->level--);
23587 return NULL;
23588 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023589 D(fprintf(stderr, "%*c> _loop1_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
23590 void *_tmp_166_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023591 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080023592 (_tmp_166_var = _tmp_166_rule(p)) // ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023593 )
23594 {
Brandt Bucher145bf262021-02-26 14:51:55 -080023595 _res = _tmp_166_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023596 if (_n == _children_capacity) {
23597 _children_capacity *= 2;
23598 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23599 if (!_new_children) {
23600 p->error_indicator = 1;
23601 PyErr_NoMemory();
23602 D(p->level--);
23603 return NULL;
23604 }
23605 _children = _new_children;
23606 }
23607 _children[_n++] = _res;
23608 _mark = p->mark;
23609 }
23610 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023611 D(fprintf(stderr, "%*c%s _loop1_86[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023612 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
23613 }
23614 if (_n == 0 || p->error_indicator) {
23615 PyMem_Free(_children);
23616 D(p->level--);
23617 return NULL;
23618 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023619 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023620 if (!_seq) {
23621 PyMem_Free(_children);
23622 p->error_indicator = 1;
23623 PyErr_NoMemory();
23624 D(p->level--);
23625 return NULL;
23626 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023627 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023628 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023629 _PyPegen_insert_memo(p, _start_mark, _loop1_86_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023630 D(p->level--);
23631 return _seq;
23632}
23633
Brandt Bucher145bf262021-02-26 14:51:55 -080023634// _loop0_88: ',' star_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023635static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023636_loop0_88_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023637{
23638 D(p->level++);
23639 if (p->error_indicator) {
23640 D(p->level--);
23641 return NULL;
23642 }
23643 void *_res = NULL;
23644 int _mark = p->mark;
23645 int _start_mark = p->mark;
23646 void **_children = PyMem_Malloc(sizeof(void *));
23647 if (!_children) {
23648 p->error_indicator = 1;
23649 PyErr_NoMemory();
23650 D(p->level--);
23651 return NULL;
23652 }
23653 ssize_t _children_capacity = 1;
23654 ssize_t _n = 0;
23655 { // ',' star_named_expression
23656 if (p->error_indicator) {
23657 D(p->level--);
23658 return NULL;
23659 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023660 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 +010023661 Token * _literal;
23662 expr_ty elem;
23663 while (
23664 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23665 &&
23666 (elem = star_named_expression_rule(p)) // star_named_expression
23667 )
23668 {
23669 _res = elem;
23670 if (_res == NULL && PyErr_Occurred()) {
23671 p->error_indicator = 1;
23672 PyMem_Free(_children);
23673 D(p->level--);
23674 return NULL;
23675 }
23676 if (_n == _children_capacity) {
23677 _children_capacity *= 2;
23678 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23679 if (!_new_children) {
23680 p->error_indicator = 1;
23681 PyErr_NoMemory();
23682 D(p->level--);
23683 return NULL;
23684 }
23685 _children = _new_children;
23686 }
23687 _children[_n++] = _res;
23688 _mark = p->mark;
23689 }
23690 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023691 D(fprintf(stderr, "%*c%s _loop0_88[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
23693 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023694 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023695 if (!_seq) {
23696 PyMem_Free(_children);
23697 p->error_indicator = 1;
23698 PyErr_NoMemory();
23699 D(p->level--);
23700 return NULL;
23701 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023702 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023703 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023704 _PyPegen_insert_memo(p, _start_mark, _loop0_88_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023705 D(p->level--);
23706 return _seq;
23707}
23708
Brandt Bucher145bf262021-02-26 14:51:55 -080023709// _gather_87: star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023710static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023711_gather_87_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023712{
23713 D(p->level++);
23714 if (p->error_indicator) {
23715 D(p->level--);
23716 return NULL;
23717 }
23718 asdl_seq * _res = NULL;
23719 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023720 { // star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023721 if (p->error_indicator) {
23722 D(p->level--);
23723 return NULL;
23724 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023725 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 +010023726 expr_ty elem;
23727 asdl_seq * seq;
23728 if (
23729 (elem = star_named_expression_rule(p)) // star_named_expression
23730 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080023731 (seq = _loop0_88_rule(p)) // _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023732 )
23733 {
Brandt Bucher145bf262021-02-26 14:51:55 -080023734 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 +010023735 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23736 goto done;
23737 }
23738 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023739 D(fprintf(stderr, "%*c%s _gather_87[%d-%d]: %s failed!\n", p->level, ' ',
23740 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_88"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023741 }
23742 _res = NULL;
23743 done:
23744 D(p->level--);
23745 return _res;
23746}
23747
Brandt Bucher145bf262021-02-26 14:51:55 -080023748// _loop1_89: (',' expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023749static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023750_loop1_89_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023751{
23752 D(p->level++);
23753 if (p->error_indicator) {
23754 D(p->level--);
23755 return NULL;
23756 }
23757 void *_res = NULL;
23758 int _mark = p->mark;
23759 int _start_mark = p->mark;
23760 void **_children = PyMem_Malloc(sizeof(void *));
23761 if (!_children) {
23762 p->error_indicator = 1;
23763 PyErr_NoMemory();
23764 D(p->level--);
23765 return NULL;
23766 }
23767 ssize_t _children_capacity = 1;
23768 ssize_t _n = 0;
23769 { // (',' expression)
23770 if (p->error_indicator) {
23771 D(p->level--);
23772 return NULL;
23773 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023774 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
23775 void *_tmp_167_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023776 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080023777 (_tmp_167_var = _tmp_167_rule(p)) // ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023778 )
23779 {
Brandt Bucher145bf262021-02-26 14:51:55 -080023780 _res = _tmp_167_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023781 if (_n == _children_capacity) {
23782 _children_capacity *= 2;
23783 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23784 if (!_new_children) {
23785 p->error_indicator = 1;
23786 PyErr_NoMemory();
23787 D(p->level--);
23788 return NULL;
23789 }
23790 _children = _new_children;
23791 }
23792 _children[_n++] = _res;
23793 _mark = p->mark;
23794 }
23795 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023796 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023797 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
23798 }
23799 if (_n == 0 || p->error_indicator) {
23800 PyMem_Free(_children);
23801 D(p->level--);
23802 return NULL;
23803 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023804 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023805 if (!_seq) {
23806 PyMem_Free(_children);
23807 p->error_indicator = 1;
23808 PyErr_NoMemory();
23809 D(p->level--);
23810 return NULL;
23811 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023812 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023813 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023814 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023815 D(p->level--);
23816 return _seq;
23817}
23818
Brandt Bucher145bf262021-02-26 14:51:55 -080023819// _loop0_90: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023820static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023821_loop0_90_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023822{
23823 D(p->level++);
23824 if (p->error_indicator) {
23825 D(p->level--);
23826 return NULL;
23827 }
23828 void *_res = NULL;
23829 int _mark = p->mark;
23830 int _start_mark = p->mark;
23831 void **_children = PyMem_Malloc(sizeof(void *));
23832 if (!_children) {
23833 p->error_indicator = 1;
23834 PyErr_NoMemory();
23835 D(p->level--);
23836 return NULL;
23837 }
23838 ssize_t _children_capacity = 1;
23839 ssize_t _n = 0;
23840 { // lambda_param_no_default
23841 if (p->error_indicator) {
23842 D(p->level--);
23843 return NULL;
23844 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023845 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 +010023846 arg_ty lambda_param_no_default_var;
23847 while (
23848 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
23849 )
23850 {
23851 _res = lambda_param_no_default_var;
23852 if (_n == _children_capacity) {
23853 _children_capacity *= 2;
23854 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23855 if (!_new_children) {
23856 p->error_indicator = 1;
23857 PyErr_NoMemory();
23858 D(p->level--);
23859 return NULL;
23860 }
23861 _children = _new_children;
23862 }
23863 _children[_n++] = _res;
23864 _mark = p->mark;
23865 }
23866 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023867 D(fprintf(stderr, "%*c%s _loop0_90[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023868 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023869 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023870 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023871 if (!_seq) {
23872 PyMem_Free(_children);
23873 p->error_indicator = 1;
23874 PyErr_NoMemory();
23875 D(p->level--);
23876 return NULL;
23877 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023878 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023879 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023880 _PyPegen_insert_memo(p, _start_mark, _loop0_90_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023881 D(p->level--);
23882 return _seq;
23883}
23884
Brandt Bucher145bf262021-02-26 14:51:55 -080023885// _loop0_91: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023886static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023887_loop0_91_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023888{
23889 D(p->level++);
23890 if (p->error_indicator) {
23891 D(p->level--);
23892 return NULL;
23893 }
23894 void *_res = NULL;
23895 int _mark = p->mark;
23896 int _start_mark = p->mark;
23897 void **_children = PyMem_Malloc(sizeof(void *));
23898 if (!_children) {
23899 p->error_indicator = 1;
23900 PyErr_NoMemory();
23901 D(p->level--);
23902 return NULL;
23903 }
23904 ssize_t _children_capacity = 1;
23905 ssize_t _n = 0;
23906 { // lambda_param_with_default
23907 if (p->error_indicator) {
23908 D(p->level--);
23909 return NULL;
23910 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023911 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 +010023912 NameDefaultPair* lambda_param_with_default_var;
23913 while (
23914 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
23915 )
23916 {
23917 _res = lambda_param_with_default_var;
23918 if (_n == _children_capacity) {
23919 _children_capacity *= 2;
23920 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23921 if (!_new_children) {
23922 p->error_indicator = 1;
23923 PyErr_NoMemory();
23924 D(p->level--);
23925 return NULL;
23926 }
23927 _children = _new_children;
23928 }
23929 _children[_n++] = _res;
23930 _mark = p->mark;
23931 }
23932 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023933 D(fprintf(stderr, "%*c%s _loop0_91[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
23935 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023936 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023937 if (!_seq) {
23938 PyMem_Free(_children);
23939 p->error_indicator = 1;
23940 PyErr_NoMemory();
23941 D(p->level--);
23942 return NULL;
23943 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023944 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023945 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080023946 _PyPegen_insert_memo(p, _start_mark, _loop0_91_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023947 D(p->level--);
23948 return _seq;
23949}
23950
Brandt Bucher145bf262021-02-26 14:51:55 -080023951// _loop0_92: lambda_param_with_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023952static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080023953_loop0_92_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023954{
23955 D(p->level++);
23956 if (p->error_indicator) {
23957 D(p->level--);
23958 return NULL;
23959 }
23960 void *_res = NULL;
23961 int _mark = p->mark;
23962 int _start_mark = p->mark;
23963 void **_children = PyMem_Malloc(sizeof(void *));
23964 if (!_children) {
23965 p->error_indicator = 1;
23966 PyErr_NoMemory();
23967 D(p->level--);
23968 return NULL;
23969 }
23970 ssize_t _children_capacity = 1;
23971 ssize_t _n = 0;
23972 { // lambda_param_with_default
23973 if (p->error_indicator) {
23974 D(p->level--);
23975 return NULL;
23976 }
Brandt Bucher145bf262021-02-26 14:51:55 -080023977 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 +000023978 NameDefaultPair* lambda_param_with_default_var;
23979 while (
23980 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
23981 )
23982 {
23983 _res = lambda_param_with_default_var;
23984 if (_n == _children_capacity) {
23985 _children_capacity *= 2;
23986 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23987 if (!_new_children) {
23988 p->error_indicator = 1;
23989 PyErr_NoMemory();
23990 D(p->level--);
23991 return NULL;
23992 }
23993 _children = _new_children;
23994 }
23995 _children[_n++] = _res;
23996 _mark = p->mark;
23997 }
23998 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080023999 D(fprintf(stderr, "%*c%s _loop0_92[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024000 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
24001 }
24002 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24003 if (!_seq) {
24004 PyMem_Free(_children);
24005 p->error_indicator = 1;
24006 PyErr_NoMemory();
24007 D(p->level--);
24008 return NULL;
24009 }
24010 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24011 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024012 _PyPegen_insert_memo(p, _start_mark, _loop0_92_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024013 D(p->level--);
24014 return _seq;
24015}
24016
Brandt Bucher145bf262021-02-26 14:51:55 -080024017// _loop1_93: lambda_param_no_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024018static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024019_loop1_93_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024020{
24021 D(p->level++);
24022 if (p->error_indicator) {
24023 D(p->level--);
24024 return NULL;
24025 }
24026 void *_res = NULL;
24027 int _mark = p->mark;
24028 int _start_mark = p->mark;
24029 void **_children = PyMem_Malloc(sizeof(void *));
24030 if (!_children) {
24031 p->error_indicator = 1;
24032 PyErr_NoMemory();
24033 D(p->level--);
24034 return NULL;
24035 }
24036 ssize_t _children_capacity = 1;
24037 ssize_t _n = 0;
24038 { // lambda_param_no_default
24039 if (p->error_indicator) {
24040 D(p->level--);
24041 return NULL;
24042 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024043 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 +000024044 arg_ty lambda_param_no_default_var;
24045 while (
24046 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
24047 )
24048 {
24049 _res = lambda_param_no_default_var;
24050 if (_n == _children_capacity) {
24051 _children_capacity *= 2;
24052 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24053 if (!_new_children) {
24054 p->error_indicator = 1;
24055 PyErr_NoMemory();
24056 D(p->level--);
24057 return NULL;
24058 }
24059 _children = _new_children;
24060 }
24061 _children[_n++] = _res;
24062 _mark = p->mark;
24063 }
24064 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024065 D(fprintf(stderr, "%*c%s _loop1_93[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024066 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
24067 }
24068 if (_n == 0 || p->error_indicator) {
24069 PyMem_Free(_children);
24070 D(p->level--);
24071 return NULL;
24072 }
24073 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24074 if (!_seq) {
24075 PyMem_Free(_children);
24076 p->error_indicator = 1;
24077 PyErr_NoMemory();
24078 D(p->level--);
24079 return NULL;
24080 }
24081 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24082 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024083 _PyPegen_insert_memo(p, _start_mark, _loop1_93_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024084 D(p->level--);
24085 return _seq;
24086}
24087
Brandt Bucher145bf262021-02-26 14:51:55 -080024088// _loop0_94: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024089static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024090_loop0_94_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024091{
24092 D(p->level++);
24093 if (p->error_indicator) {
24094 D(p->level--);
24095 return NULL;
24096 }
24097 void *_res = NULL;
24098 int _mark = p->mark;
24099 int _start_mark = p->mark;
24100 void **_children = PyMem_Malloc(sizeof(void *));
24101 if (!_children) {
24102 p->error_indicator = 1;
24103 PyErr_NoMemory();
24104 D(p->level--);
24105 return NULL;
24106 }
24107 ssize_t _children_capacity = 1;
24108 ssize_t _n = 0;
24109 { // lambda_param_with_default
24110 if (p->error_indicator) {
24111 D(p->level--);
24112 return NULL;
24113 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024114 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 +030024115 NameDefaultPair* lambda_param_with_default_var;
24116 while (
24117 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
24118 )
24119 {
24120 _res = lambda_param_with_default_var;
24121 if (_n == _children_capacity) {
24122 _children_capacity *= 2;
24123 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24124 if (!_new_children) {
24125 p->error_indicator = 1;
24126 PyErr_NoMemory();
24127 D(p->level--);
24128 return NULL;
24129 }
24130 _children = _new_children;
24131 }
24132 _children[_n++] = _res;
24133 _mark = p->mark;
24134 }
24135 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024136 D(fprintf(stderr, "%*c%s _loop0_94[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024137 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
24138 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024139 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024140 if (!_seq) {
24141 PyMem_Free(_children);
24142 p->error_indicator = 1;
24143 PyErr_NoMemory();
24144 D(p->level--);
24145 return NULL;
24146 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024147 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024148 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024149 _PyPegen_insert_memo(p, _start_mark, _loop0_94_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024150 D(p->level--);
24151 return _seq;
24152}
24153
Brandt Bucher145bf262021-02-26 14:51:55 -080024154// _loop1_95: lambda_param_with_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024155static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024156_loop1_95_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024157{
24158 D(p->level++);
24159 if (p->error_indicator) {
24160 D(p->level--);
24161 return NULL;
24162 }
24163 void *_res = NULL;
24164 int _mark = p->mark;
24165 int _start_mark = p->mark;
24166 void **_children = PyMem_Malloc(sizeof(void *));
24167 if (!_children) {
24168 p->error_indicator = 1;
24169 PyErr_NoMemory();
24170 D(p->level--);
24171 return NULL;
24172 }
24173 ssize_t _children_capacity = 1;
24174 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024175 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024176 if (p->error_indicator) {
24177 D(p->level--);
24178 return NULL;
24179 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024180 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 +000024181 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024182 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024183 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024184 )
24185 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024186 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024187 if (_n == _children_capacity) {
24188 _children_capacity *= 2;
24189 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24190 if (!_new_children) {
24191 p->error_indicator = 1;
24192 PyErr_NoMemory();
24193 D(p->level--);
24194 return NULL;
24195 }
24196 _children = _new_children;
24197 }
24198 _children[_n++] = _res;
24199 _mark = p->mark;
24200 }
24201 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024202 D(fprintf(stderr, "%*c%s _loop1_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024203 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024204 }
24205 if (_n == 0 || p->error_indicator) {
24206 PyMem_Free(_children);
24207 D(p->level--);
24208 return NULL;
24209 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024210 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024211 if (!_seq) {
24212 PyMem_Free(_children);
24213 p->error_indicator = 1;
24214 PyErr_NoMemory();
24215 D(p->level--);
24216 return NULL;
24217 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024218 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024219 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024220 _PyPegen_insert_memo(p, _start_mark, _loop1_95_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024221 D(p->level--);
24222 return _seq;
24223}
24224
Brandt Bucher145bf262021-02-26 14:51:55 -080024225// _loop1_96: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024226static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024227_loop1_96_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024228{
24229 D(p->level++);
24230 if (p->error_indicator) {
24231 D(p->level--);
24232 return NULL;
24233 }
24234 void *_res = NULL;
24235 int _mark = p->mark;
24236 int _start_mark = p->mark;
24237 void **_children = PyMem_Malloc(sizeof(void *));
24238 if (!_children) {
24239 p->error_indicator = 1;
24240 PyErr_NoMemory();
24241 D(p->level--);
24242 return NULL;
24243 }
24244 ssize_t _children_capacity = 1;
24245 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024246 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024247 if (p->error_indicator) {
24248 D(p->level--);
24249 return NULL;
24250 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024251 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 +000024252 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024253 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024254 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024255 )
24256 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024257 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024258 if (_n == _children_capacity) {
24259 _children_capacity *= 2;
24260 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24261 if (!_new_children) {
24262 p->error_indicator = 1;
24263 PyErr_NoMemory();
24264 D(p->level--);
24265 return NULL;
24266 }
24267 _children = _new_children;
24268 }
24269 _children[_n++] = _res;
24270 _mark = p->mark;
24271 }
24272 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024273 D(fprintf(stderr, "%*c%s _loop1_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024274 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
24275 }
24276 if (_n == 0 || p->error_indicator) {
24277 PyMem_Free(_children);
24278 D(p->level--);
24279 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024280 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024281 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024282 if (!_seq) {
24283 PyMem_Free(_children);
24284 p->error_indicator = 1;
24285 PyErr_NoMemory();
24286 D(p->level--);
24287 return NULL;
24288 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024289 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024290 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024291 _PyPegen_insert_memo(p, _start_mark, _loop1_96_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024292 D(p->level--);
24293 return _seq;
24294}
24295
Brandt Bucher145bf262021-02-26 14:51:55 -080024296// _loop1_97: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024297static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024298_loop1_97_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024299{
24300 D(p->level++);
24301 if (p->error_indicator) {
24302 D(p->level--);
24303 return NULL;
24304 }
24305 void *_res = NULL;
24306 int _mark = p->mark;
24307 int _start_mark = p->mark;
24308 void **_children = PyMem_Malloc(sizeof(void *));
24309 if (!_children) {
24310 p->error_indicator = 1;
24311 PyErr_NoMemory();
24312 D(p->level--);
24313 return NULL;
24314 }
24315 ssize_t _children_capacity = 1;
24316 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024317 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024318 if (p->error_indicator) {
24319 D(p->level--);
24320 return NULL;
24321 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024322 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 +000024323 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024324 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024325 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024326 )
24327 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024328 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024329 if (_n == _children_capacity) {
24330 _children_capacity *= 2;
24331 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24332 if (!_new_children) {
24333 p->error_indicator = 1;
24334 PyErr_NoMemory();
24335 D(p->level--);
24336 return NULL;
24337 }
24338 _children = _new_children;
24339 }
24340 _children[_n++] = _res;
24341 _mark = p->mark;
24342 }
24343 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024344 D(fprintf(stderr, "%*c%s _loop1_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024345 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024346 }
24347 if (_n == 0 || p->error_indicator) {
24348 PyMem_Free(_children);
24349 D(p->level--);
24350 return NULL;
24351 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024352 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024353 if (!_seq) {
24354 PyMem_Free(_children);
24355 p->error_indicator = 1;
24356 PyErr_NoMemory();
24357 D(p->level--);
24358 return NULL;
24359 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024360 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024361 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024362 _PyPegen_insert_memo(p, _start_mark, _loop1_97_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024363 D(p->level--);
24364 return _seq;
24365}
24366
Brandt Bucher145bf262021-02-26 14:51:55 -080024367// _loop0_98: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024368static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024369_loop0_98_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024370{
24371 D(p->level++);
24372 if (p->error_indicator) {
24373 D(p->level--);
24374 return NULL;
24375 }
24376 void *_res = NULL;
24377 int _mark = p->mark;
24378 int _start_mark = p->mark;
24379 void **_children = PyMem_Malloc(sizeof(void *));
24380 if (!_children) {
24381 p->error_indicator = 1;
24382 PyErr_NoMemory();
24383 D(p->level--);
24384 return NULL;
24385 }
24386 ssize_t _children_capacity = 1;
24387 ssize_t _n = 0;
24388 { // lambda_param_no_default
24389 if (p->error_indicator) {
24390 D(p->level--);
24391 return NULL;
24392 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024393 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 +010024394 arg_ty lambda_param_no_default_var;
24395 while (
24396 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
24397 )
24398 {
24399 _res = lambda_param_no_default_var;
24400 if (_n == _children_capacity) {
24401 _children_capacity *= 2;
24402 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24403 if (!_new_children) {
24404 p->error_indicator = 1;
24405 PyErr_NoMemory();
24406 D(p->level--);
24407 return NULL;
24408 }
24409 _children = _new_children;
24410 }
24411 _children[_n++] = _res;
24412 _mark = p->mark;
24413 }
24414 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024415 D(fprintf(stderr, "%*c%s _loop0_98[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024416 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
24417 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024418 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024419 if (!_seq) {
24420 PyMem_Free(_children);
24421 p->error_indicator = 1;
24422 PyErr_NoMemory();
24423 D(p->level--);
24424 return NULL;
24425 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024426 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024427 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024428 _PyPegen_insert_memo(p, _start_mark, _loop0_98_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024429 D(p->level--);
24430 return _seq;
24431}
24432
Brandt Bucher145bf262021-02-26 14:51:55 -080024433// _loop1_99: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024434static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024435_loop1_99_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024436{
24437 D(p->level++);
24438 if (p->error_indicator) {
24439 D(p->level--);
24440 return NULL;
24441 }
24442 void *_res = NULL;
24443 int _mark = p->mark;
24444 int _start_mark = p->mark;
24445 void **_children = PyMem_Malloc(sizeof(void *));
24446 if (!_children) {
24447 p->error_indicator = 1;
24448 PyErr_NoMemory();
24449 D(p->level--);
24450 return NULL;
24451 }
24452 ssize_t _children_capacity = 1;
24453 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024454 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024455 if (p->error_indicator) {
24456 D(p->level--);
24457 return NULL;
24458 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024459 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 +000024460 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024461 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024462 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024463 )
24464 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024465 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024466 if (_n == _children_capacity) {
24467 _children_capacity *= 2;
24468 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24469 if (!_new_children) {
24470 p->error_indicator = 1;
24471 PyErr_NoMemory();
24472 D(p->level--);
24473 return NULL;
24474 }
24475 _children = _new_children;
24476 }
24477 _children[_n++] = _res;
24478 _mark = p->mark;
24479 }
24480 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024481 D(fprintf(stderr, "%*c%s _loop1_99[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024482 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024483 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024484 if (_n == 0 || p->error_indicator) {
24485 PyMem_Free(_children);
24486 D(p->level--);
24487 return NULL;
24488 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024489 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024490 if (!_seq) {
24491 PyMem_Free(_children);
24492 p->error_indicator = 1;
24493 PyErr_NoMemory();
24494 D(p->level--);
24495 return NULL;
24496 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024497 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024498 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024499 _PyPegen_insert_memo(p, _start_mark, _loop1_99_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024500 D(p->level--);
24501 return _seq;
24502}
24503
Brandt Bucher145bf262021-02-26 14:51:55 -080024504// _loop0_100: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024505static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024506_loop0_100_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024507{
24508 D(p->level++);
24509 if (p->error_indicator) {
24510 D(p->level--);
24511 return NULL;
24512 }
24513 void *_res = NULL;
24514 int _mark = p->mark;
24515 int _start_mark = p->mark;
24516 void **_children = PyMem_Malloc(sizeof(void *));
24517 if (!_children) {
24518 p->error_indicator = 1;
24519 PyErr_NoMemory();
24520 D(p->level--);
24521 return NULL;
24522 }
24523 ssize_t _children_capacity = 1;
24524 ssize_t _n = 0;
24525 { // lambda_param_no_default
24526 if (p->error_indicator) {
24527 D(p->level--);
24528 return NULL;
24529 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024530 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 +010024531 arg_ty lambda_param_no_default_var;
24532 while (
24533 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
24534 )
24535 {
24536 _res = lambda_param_no_default_var;
24537 if (_n == _children_capacity) {
24538 _children_capacity *= 2;
24539 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24540 if (!_new_children) {
24541 p->error_indicator = 1;
24542 PyErr_NoMemory();
24543 D(p->level--);
24544 return NULL;
24545 }
24546 _children = _new_children;
24547 }
24548 _children[_n++] = _res;
24549 _mark = p->mark;
24550 }
24551 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024552 D(fprintf(stderr, "%*c%s _loop0_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024553 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
24554 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024555 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024556 if (!_seq) {
24557 PyMem_Free(_children);
24558 p->error_indicator = 1;
24559 PyErr_NoMemory();
24560 D(p->level--);
24561 return NULL;
24562 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024563 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024564 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024565 _PyPegen_insert_memo(p, _start_mark, _loop0_100_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024566 D(p->level--);
24567 return _seq;
24568}
24569
Brandt Bucher145bf262021-02-26 14:51:55 -080024570// _loop1_101: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024571static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024572_loop1_101_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024573{
24574 D(p->level++);
24575 if (p->error_indicator) {
24576 D(p->level--);
24577 return NULL;
24578 }
24579 void *_res = NULL;
24580 int _mark = p->mark;
24581 int _start_mark = p->mark;
24582 void **_children = PyMem_Malloc(sizeof(void *));
24583 if (!_children) {
24584 p->error_indicator = 1;
24585 PyErr_NoMemory();
24586 D(p->level--);
24587 return NULL;
24588 }
24589 ssize_t _children_capacity = 1;
24590 ssize_t _n = 0;
24591 { // lambda_param_with_default
24592 if (p->error_indicator) {
24593 D(p->level--);
24594 return NULL;
24595 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024596 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 +010024597 NameDefaultPair* lambda_param_with_default_var;
24598 while (
24599 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
24600 )
24601 {
24602 _res = lambda_param_with_default_var;
24603 if (_n == _children_capacity) {
24604 _children_capacity *= 2;
24605 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24606 if (!_new_children) {
24607 p->error_indicator = 1;
24608 PyErr_NoMemory();
24609 D(p->level--);
24610 return NULL;
24611 }
24612 _children = _new_children;
24613 }
24614 _children[_n++] = _res;
24615 _mark = p->mark;
24616 }
24617 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024618 D(fprintf(stderr, "%*c%s _loop1_101[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024619 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
24620 }
24621 if (_n == 0 || p->error_indicator) {
24622 PyMem_Free(_children);
24623 D(p->level--);
24624 return NULL;
24625 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024626 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024627 if (!_seq) {
24628 PyMem_Free(_children);
24629 p->error_indicator = 1;
24630 PyErr_NoMemory();
24631 D(p->level--);
24632 return NULL;
24633 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024634 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024635 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024636 _PyPegen_insert_memo(p, _start_mark, _loop1_101_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024637 D(p->level--);
24638 return _seq;
24639}
24640
Brandt Bucher145bf262021-02-26 14:51:55 -080024641// _loop0_102: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024642static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024643_loop0_102_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024644{
24645 D(p->level++);
24646 if (p->error_indicator) {
24647 D(p->level--);
24648 return NULL;
24649 }
24650 void *_res = NULL;
24651 int _mark = p->mark;
24652 int _start_mark = p->mark;
24653 void **_children = PyMem_Malloc(sizeof(void *));
24654 if (!_children) {
24655 p->error_indicator = 1;
24656 PyErr_NoMemory();
24657 D(p->level--);
24658 return NULL;
24659 }
24660 ssize_t _children_capacity = 1;
24661 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024662 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024663 if (p->error_indicator) {
24664 D(p->level--);
24665 return NULL;
24666 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024667 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 +000024668 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024669 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024670 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024671 )
24672 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024673 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024674 if (_n == _children_capacity) {
24675 _children_capacity *= 2;
24676 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24677 if (!_new_children) {
24678 p->error_indicator = 1;
24679 PyErr_NoMemory();
24680 D(p->level--);
24681 return NULL;
24682 }
24683 _children = _new_children;
24684 }
24685 _children[_n++] = _res;
24686 _mark = p->mark;
24687 }
24688 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024689 D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024691 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024692 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024693 if (!_seq) {
24694 PyMem_Free(_children);
24695 p->error_indicator = 1;
24696 PyErr_NoMemory();
24697 D(p->level--);
24698 return NULL;
24699 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024700 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024701 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024702 _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024703 D(p->level--);
24704 return _seq;
24705}
24706
Brandt Bucher145bf262021-02-26 14:51:55 -080024707// _loop1_103: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024708static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024709_loop1_103_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024710{
24711 D(p->level++);
24712 if (p->error_indicator) {
24713 D(p->level--);
24714 return NULL;
24715 }
24716 void *_res = NULL;
24717 int _mark = p->mark;
24718 int _start_mark = p->mark;
24719 void **_children = PyMem_Malloc(sizeof(void *));
24720 if (!_children) {
24721 p->error_indicator = 1;
24722 PyErr_NoMemory();
24723 D(p->level--);
24724 return NULL;
24725 }
24726 ssize_t _children_capacity = 1;
24727 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024728 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024729 if (p->error_indicator) {
24730 D(p->level--);
24731 return NULL;
24732 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024733 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 +000024734 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024735 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024736 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024737 )
24738 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024739 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024740 if (_n == _children_capacity) {
24741 _children_capacity *= 2;
24742 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24743 if (!_new_children) {
24744 p->error_indicator = 1;
24745 PyErr_NoMemory();
24746 D(p->level--);
24747 return NULL;
24748 }
24749 _children = _new_children;
24750 }
24751 _children[_n++] = _res;
24752 _mark = p->mark;
24753 }
24754 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024755 D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024756 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024757 }
24758 if (_n == 0 || p->error_indicator) {
24759 PyMem_Free(_children);
24760 D(p->level--);
24761 return NULL;
24762 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024763 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024764 if (!_seq) {
24765 PyMem_Free(_children);
24766 p->error_indicator = 1;
24767 PyErr_NoMemory();
24768 D(p->level--);
24769 return NULL;
24770 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024771 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024772 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024773 _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024774 D(p->level--);
24775 return _seq;
24776}
24777
Brandt Bucher145bf262021-02-26 14:51:55 -080024778// _loop1_104: ('or' conjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024779static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024780_loop1_104_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024781{
24782 D(p->level++);
24783 if (p->error_indicator) {
24784 D(p->level--);
24785 return NULL;
24786 }
24787 void *_res = NULL;
24788 int _mark = p->mark;
24789 int _start_mark = p->mark;
24790 void **_children = PyMem_Malloc(sizeof(void *));
24791 if (!_children) {
24792 p->error_indicator = 1;
24793 PyErr_NoMemory();
24794 D(p->level--);
24795 return NULL;
24796 }
24797 ssize_t _children_capacity = 1;
24798 ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024799 { // ('or' conjunction)
24800 if (p->error_indicator) {
24801 D(p->level--);
24802 return NULL;
24803 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024804 D(fprintf(stderr, "%*c> _loop1_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
24805 void *_tmp_168_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024806 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080024807 (_tmp_168_var = _tmp_168_rule(p)) // 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024808 )
24809 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024810 _res = _tmp_168_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024811 if (_n == _children_capacity) {
24812 _children_capacity *= 2;
24813 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24814 if (!_new_children) {
24815 p->error_indicator = 1;
24816 PyErr_NoMemory();
24817 D(p->level--);
24818 return NULL;
24819 }
24820 _children = _new_children;
24821 }
24822 _children[_n++] = _res;
24823 _mark = p->mark;
24824 }
24825 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024826 D(fprintf(stderr, "%*c%s _loop1_104[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024827 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
24828 }
24829 if (_n == 0 || p->error_indicator) {
24830 PyMem_Free(_children);
24831 D(p->level--);
24832 return NULL;
24833 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024834 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024835 if (!_seq) {
24836 PyMem_Free(_children);
24837 p->error_indicator = 1;
24838 PyErr_NoMemory();
24839 D(p->level--);
24840 return NULL;
24841 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024842 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024843 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024844 _PyPegen_insert_memo(p, _start_mark, _loop1_104_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024845 D(p->level--);
24846 return _seq;
24847}
24848
Brandt Bucher145bf262021-02-26 14:51:55 -080024849// _loop1_105: ('and' inversion)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024850static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024851_loop1_105_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024852{
24853 D(p->level++);
24854 if (p->error_indicator) {
24855 D(p->level--);
24856 return NULL;
24857 }
24858 void *_res = NULL;
24859 int _mark = p->mark;
24860 int _start_mark = p->mark;
24861 void **_children = PyMem_Malloc(sizeof(void *));
24862 if (!_children) {
24863 p->error_indicator = 1;
24864 PyErr_NoMemory();
24865 D(p->level--);
24866 return NULL;
24867 }
24868 ssize_t _children_capacity = 1;
24869 ssize_t _n = 0;
24870 { // ('and' inversion)
24871 if (p->error_indicator) {
24872 D(p->level--);
24873 return NULL;
24874 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024875 D(fprintf(stderr, "%*c> _loop1_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
24876 void *_tmp_169_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024877 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080024878 (_tmp_169_var = _tmp_169_rule(p)) // 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024879 )
24880 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024881 _res = _tmp_169_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024882 if (_n == _children_capacity) {
24883 _children_capacity *= 2;
24884 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24885 if (!_new_children) {
24886 p->error_indicator = 1;
24887 PyErr_NoMemory();
24888 D(p->level--);
24889 return NULL;
24890 }
24891 _children = _new_children;
24892 }
24893 _children[_n++] = _res;
24894 _mark = p->mark;
24895 }
24896 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024897 D(fprintf(stderr, "%*c%s _loop1_105[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024898 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
24899 }
24900 if (_n == 0 || p->error_indicator) {
24901 PyMem_Free(_children);
24902 D(p->level--);
24903 return NULL;
24904 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024905 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024906 if (!_seq) {
24907 PyMem_Free(_children);
24908 p->error_indicator = 1;
24909 PyErr_NoMemory();
24910 D(p->level--);
24911 return NULL;
24912 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024913 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024914 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024915 _PyPegen_insert_memo(p, _start_mark, _loop1_105_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024916 D(p->level--);
24917 return _seq;
24918}
24919
Brandt Bucher145bf262021-02-26 14:51:55 -080024920// _loop1_106: compare_op_bitwise_or_pair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024921static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024922_loop1_106_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024923{
24924 D(p->level++);
24925 if (p->error_indicator) {
24926 D(p->level--);
24927 return NULL;
24928 }
24929 void *_res = NULL;
24930 int _mark = p->mark;
24931 int _start_mark = p->mark;
24932 void **_children = PyMem_Malloc(sizeof(void *));
24933 if (!_children) {
24934 p->error_indicator = 1;
24935 PyErr_NoMemory();
24936 D(p->level--);
24937 return NULL;
24938 }
24939 ssize_t _children_capacity = 1;
24940 ssize_t _n = 0;
24941 { // compare_op_bitwise_or_pair
24942 if (p->error_indicator) {
24943 D(p->level--);
24944 return NULL;
24945 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024946 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 +010024947 CmpopExprPair* compare_op_bitwise_or_pair_var;
24948 while (
24949 (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
24950 )
24951 {
24952 _res = compare_op_bitwise_or_pair_var;
24953 if (_n == _children_capacity) {
24954 _children_capacity *= 2;
24955 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24956 if (!_new_children) {
24957 p->error_indicator = 1;
24958 PyErr_NoMemory();
24959 D(p->level--);
24960 return NULL;
24961 }
24962 _children = _new_children;
24963 }
24964 _children[_n++] = _res;
24965 _mark = p->mark;
24966 }
24967 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024968 D(fprintf(stderr, "%*c%s _loop1_106[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
24970 }
24971 if (_n == 0 || p->error_indicator) {
24972 PyMem_Free(_children);
24973 D(p->level--);
24974 return NULL;
24975 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024976 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024977 if (!_seq) {
24978 PyMem_Free(_children);
24979 p->error_indicator = 1;
24980 PyErr_NoMemory();
24981 D(p->level--);
24982 return NULL;
24983 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024984 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024985 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024986 _PyPegen_insert_memo(p, _start_mark, _loop1_106_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024987 D(p->level--);
24988 return _seq;
24989}
24990
Brandt Bucher145bf262021-02-26 14:51:55 -080024991// _tmp_107: '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024992static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024993_tmp_107_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024994{
24995 D(p->level++);
24996 if (p->error_indicator) {
24997 D(p->level--);
24998 return NULL;
24999 }
25000 void * _res = NULL;
25001 int _mark = p->mark;
25002 { // '!='
25003 if (p->error_indicator) {
25004 D(p->level--);
25005 return NULL;
25006 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025007 D(fprintf(stderr, "%*c> _tmp_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025008 Token * tok;
25009 if (
25010 (tok = _PyPegen_expect_token(p, 28)) // token='!='
25011 )
25012 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025013 D(fprintf(stderr, "%*c+ _tmp_107[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo06f8c332020-10-30 23:48:42 +000025014 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025015 if (_res == NULL && PyErr_Occurred()) {
25016 p->error_indicator = 1;
25017 D(p->level--);
25018 return NULL;
25019 }
25020 goto done;
25021 }
25022 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025023 D(fprintf(stderr, "%*c%s _tmp_107[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025024 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
25025 }
25026 _res = NULL;
25027 done:
25028 D(p->level--);
25029 return _res;
25030}
25031
Brandt Bucher145bf262021-02-26 14:51:55 -080025032// _loop0_109: ',' slice
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025033static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025034_loop0_109_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025035{
25036 D(p->level++);
25037 if (p->error_indicator) {
25038 D(p->level--);
25039 return NULL;
25040 }
25041 void *_res = NULL;
25042 int _mark = p->mark;
25043 int _start_mark = p->mark;
25044 void **_children = PyMem_Malloc(sizeof(void *));
25045 if (!_children) {
25046 p->error_indicator = 1;
25047 PyErr_NoMemory();
25048 D(p->level--);
25049 return NULL;
25050 }
25051 ssize_t _children_capacity = 1;
25052 ssize_t _n = 0;
25053 { // ',' slice
25054 if (p->error_indicator) {
25055 D(p->level--);
25056 return NULL;
25057 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025058 D(fprintf(stderr, "%*c> _loop0_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025059 Token * _literal;
25060 expr_ty elem;
25061 while (
25062 (_literal = _PyPegen_expect_token(p, 12)) // token=','
25063 &&
25064 (elem = slice_rule(p)) // slice
25065 )
25066 {
25067 _res = elem;
25068 if (_res == NULL && PyErr_Occurred()) {
25069 p->error_indicator = 1;
25070 PyMem_Free(_children);
25071 D(p->level--);
25072 return NULL;
25073 }
25074 if (_n == _children_capacity) {
25075 _children_capacity *= 2;
25076 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25077 if (!_new_children) {
25078 p->error_indicator = 1;
25079 PyErr_NoMemory();
25080 D(p->level--);
25081 return NULL;
25082 }
25083 _children = _new_children;
25084 }
25085 _children[_n++] = _res;
25086 _mark = p->mark;
25087 }
25088 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025089 D(fprintf(stderr, "%*c%s _loop0_109[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025090 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
25091 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025092 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025093 if (!_seq) {
25094 PyMem_Free(_children);
25095 p->error_indicator = 1;
25096 PyErr_NoMemory();
25097 D(p->level--);
25098 return NULL;
25099 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025100 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025101 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025102 _PyPegen_insert_memo(p, _start_mark, _loop0_109_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025103 D(p->level--);
25104 return _seq;
25105}
25106
Brandt Bucher145bf262021-02-26 14:51:55 -080025107// _gather_108: slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025108static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025109_gather_108_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025110{
25111 D(p->level++);
25112 if (p->error_indicator) {
25113 D(p->level--);
25114 return NULL;
25115 }
25116 asdl_seq * _res = NULL;
25117 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025118 { // slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025119 if (p->error_indicator) {
25120 D(p->level--);
25121 return NULL;
25122 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025123 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 +010025124 expr_ty elem;
25125 asdl_seq * seq;
25126 if (
25127 (elem = slice_rule(p)) // slice
25128 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080025129 (seq = _loop0_109_rule(p)) // _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025130 )
25131 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025132 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 +010025133 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
25134 goto done;
25135 }
25136 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025137 D(fprintf(stderr, "%*c%s _gather_108[%d-%d]: %s failed!\n", p->level, ' ',
25138 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_109"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025139 }
25140 _res = NULL;
25141 done:
25142 D(p->level--);
25143 return _res;
25144}
25145
Brandt Bucher145bf262021-02-26 14:51:55 -080025146// _tmp_110: ':' expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025147static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025148_tmp_110_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025149{
25150 D(p->level++);
25151 if (p->error_indicator) {
25152 D(p->level--);
25153 return NULL;
25154 }
25155 void * _res = NULL;
25156 int _mark = p->mark;
25157 { // ':' expression?
25158 if (p->error_indicator) {
25159 D(p->level--);
25160 return NULL;
25161 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025162 D(fprintf(stderr, "%*c> _tmp_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025163 Token * _literal;
25164 void *d;
25165 if (
25166 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
25167 &&
25168 (d = expression_rule(p), 1) // expression?
25169 )
25170 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025171 D(fprintf(stderr, "%*c+ _tmp_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025172 _res = d;
25173 if (_res == NULL && PyErr_Occurred()) {
25174 p->error_indicator = 1;
25175 D(p->level--);
25176 return NULL;
25177 }
25178 goto done;
25179 }
25180 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025181 D(fprintf(stderr, "%*c%s _tmp_110[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
25183 }
25184 _res = NULL;
25185 done:
25186 D(p->level--);
25187 return _res;
25188}
25189
Brandt Bucher145bf262021-02-26 14:51:55 -080025190// _tmp_111: tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025191static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025192_tmp_111_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025193{
25194 D(p->level++);
25195 if (p->error_indicator) {
25196 D(p->level--);
25197 return NULL;
25198 }
25199 void * _res = NULL;
25200 int _mark = p->mark;
25201 { // tuple
25202 if (p->error_indicator) {
25203 D(p->level--);
25204 return NULL;
25205 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025206 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025207 expr_ty tuple_var;
25208 if (
25209 (tuple_var = tuple_rule(p)) // tuple
25210 )
25211 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025212 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025213 _res = tuple_var;
25214 goto done;
25215 }
25216 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025217 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
25219 }
25220 { // group
25221 if (p->error_indicator) {
25222 D(p->level--);
25223 return NULL;
25224 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025225 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025226 expr_ty group_var;
25227 if (
25228 (group_var = group_rule(p)) // group
25229 )
25230 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025231 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025232 _res = group_var;
25233 goto done;
25234 }
25235 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025236 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025237 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
25238 }
25239 { // genexp
25240 if (p->error_indicator) {
25241 D(p->level--);
25242 return NULL;
25243 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025244 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025245 expr_ty genexp_var;
25246 if (
25247 (genexp_var = genexp_rule(p)) // genexp
25248 )
25249 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025250 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025251 _res = genexp_var;
25252 goto done;
25253 }
25254 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025255 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025256 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
25257 }
25258 _res = NULL;
25259 done:
25260 D(p->level--);
25261 return _res;
25262}
25263
Brandt Bucher145bf262021-02-26 14:51:55 -080025264// _tmp_112: list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025265static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025266_tmp_112_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025267{
25268 D(p->level++);
25269 if (p->error_indicator) {
25270 D(p->level--);
25271 return NULL;
25272 }
25273 void * _res = NULL;
25274 int _mark = p->mark;
25275 { // list
25276 if (p->error_indicator) {
25277 D(p->level--);
25278 return NULL;
25279 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025280 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025281 expr_ty list_var;
25282 if (
25283 (list_var = list_rule(p)) // list
25284 )
25285 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025286 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025287 _res = list_var;
25288 goto done;
25289 }
25290 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025291 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025292 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
25293 }
25294 { // listcomp
25295 if (p->error_indicator) {
25296 D(p->level--);
25297 return NULL;
25298 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025299 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025300 expr_ty listcomp_var;
25301 if (
25302 (listcomp_var = listcomp_rule(p)) // listcomp
25303 )
25304 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025305 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025306 _res = listcomp_var;
25307 goto done;
25308 }
25309 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025310 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025311 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
25312 }
25313 _res = NULL;
25314 done:
25315 D(p->level--);
25316 return _res;
25317}
25318
Brandt Bucher145bf262021-02-26 14:51:55 -080025319// _tmp_113: dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025320static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025321_tmp_113_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025322{
25323 D(p->level++);
25324 if (p->error_indicator) {
25325 D(p->level--);
25326 return NULL;
25327 }
25328 void * _res = NULL;
25329 int _mark = p->mark;
25330 { // dict
25331 if (p->error_indicator) {
25332 D(p->level--);
25333 return NULL;
25334 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025335 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025336 expr_ty dict_var;
25337 if (
25338 (dict_var = dict_rule(p)) // dict
25339 )
25340 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025341 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025342 _res = dict_var;
25343 goto done;
25344 }
25345 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025346 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025347 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
25348 }
25349 { // set
25350 if (p->error_indicator) {
25351 D(p->level--);
25352 return NULL;
25353 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025354 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025355 expr_ty set_var;
25356 if (
25357 (set_var = set_rule(p)) // set
25358 )
25359 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025360 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025361 _res = set_var;
25362 goto done;
25363 }
25364 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025365 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025366 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
25367 }
25368 { // dictcomp
25369 if (p->error_indicator) {
25370 D(p->level--);
25371 return NULL;
25372 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025373 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025374 expr_ty dictcomp_var;
25375 if (
25376 (dictcomp_var = dictcomp_rule(p)) // dictcomp
25377 )
25378 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025379 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025380 _res = dictcomp_var;
25381 goto done;
25382 }
25383 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025384 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025385 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
25386 }
25387 { // setcomp
25388 if (p->error_indicator) {
25389 D(p->level--);
25390 return NULL;
25391 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025392 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025393 expr_ty setcomp_var;
25394 if (
25395 (setcomp_var = setcomp_rule(p)) // setcomp
25396 )
25397 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025398 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025399 _res = setcomp_var;
25400 goto done;
25401 }
25402 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025403 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
25405 }
25406 _res = NULL;
25407 done:
25408 D(p->level--);
25409 return _res;
25410}
25411
Brandt Bucher145bf262021-02-26 14:51:55 -080025412// _loop1_114: STRING
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025413static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025414_loop1_114_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025415{
25416 D(p->level++);
25417 if (p->error_indicator) {
25418 D(p->level--);
25419 return NULL;
25420 }
25421 void *_res = NULL;
25422 int _mark = p->mark;
25423 int _start_mark = p->mark;
25424 void **_children = PyMem_Malloc(sizeof(void *));
25425 if (!_children) {
25426 p->error_indicator = 1;
25427 PyErr_NoMemory();
25428 D(p->level--);
25429 return NULL;
25430 }
25431 ssize_t _children_capacity = 1;
25432 ssize_t _n = 0;
25433 { // STRING
25434 if (p->error_indicator) {
25435 D(p->level--);
25436 return NULL;
25437 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025438 D(fprintf(stderr, "%*c> _loop1_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025439 expr_ty string_var;
25440 while (
25441 (string_var = _PyPegen_string_token(p)) // STRING
25442 )
25443 {
25444 _res = string_var;
25445 if (_n == _children_capacity) {
25446 _children_capacity *= 2;
25447 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25448 if (!_new_children) {
25449 p->error_indicator = 1;
25450 PyErr_NoMemory();
25451 D(p->level--);
25452 return NULL;
25453 }
25454 _children = _new_children;
25455 }
25456 _children[_n++] = _res;
25457 _mark = p->mark;
25458 }
25459 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025460 D(fprintf(stderr, "%*c%s _loop1_114[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025461 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
25462 }
25463 if (_n == 0 || p->error_indicator) {
25464 PyMem_Free(_children);
25465 D(p->level--);
25466 return NULL;
25467 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025468 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025469 if (!_seq) {
25470 PyMem_Free(_children);
25471 p->error_indicator = 1;
25472 PyErr_NoMemory();
25473 D(p->level--);
25474 return NULL;
25475 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025476 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025477 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025478 _PyPegen_insert_memo(p, _start_mark, _loop1_114_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025479 D(p->level--);
25480 return _seq;
25481}
25482
Brandt Bucher145bf262021-02-26 14:51:55 -080025483// _tmp_115: star_named_expression ',' star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025484static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025485_tmp_115_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025486{
25487 D(p->level++);
25488 if (p->error_indicator) {
25489 D(p->level--);
25490 return NULL;
25491 }
25492 void * _res = NULL;
25493 int _mark = p->mark;
25494 { // star_named_expression ',' star_named_expressions?
25495 if (p->error_indicator) {
25496 D(p->level--);
25497 return NULL;
25498 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025499 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 +010025500 Token * _literal;
25501 expr_ty y;
25502 void *z;
25503 if (
25504 (y = star_named_expression_rule(p)) // star_named_expression
25505 &&
25506 (_literal = _PyPegen_expect_token(p, 12)) // token=','
25507 &&
25508 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
25509 )
25510 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025511 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 +010025512 _res = _PyPegen_seq_insert_in_front ( p , y , z );
25513 if (_res == NULL && PyErr_Occurred()) {
25514 p->error_indicator = 1;
25515 D(p->level--);
25516 return NULL;
25517 }
25518 goto done;
25519 }
25520 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025521 D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025522 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
25523 }
25524 _res = NULL;
25525 done:
25526 D(p->level--);
25527 return _res;
25528}
25529
Brandt Bucher145bf262021-02-26 14:51:55 -080025530// _tmp_116: yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025531static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025532_tmp_116_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025533{
25534 D(p->level++);
25535 if (p->error_indicator) {
25536 D(p->level--);
25537 return NULL;
25538 }
25539 void * _res = NULL;
25540 int _mark = p->mark;
25541 { // yield_expr
25542 if (p->error_indicator) {
25543 D(p->level--);
25544 return NULL;
25545 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025546 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025547 expr_ty yield_expr_var;
25548 if (
25549 (yield_expr_var = yield_expr_rule(p)) // yield_expr
25550 )
25551 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025552 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 +010025553 _res = yield_expr_var;
25554 goto done;
25555 }
25556 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025557 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025558 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
25559 }
25560 { // named_expression
25561 if (p->error_indicator) {
25562 D(p->level--);
25563 return NULL;
25564 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025565 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025566 expr_ty named_expression_var;
25567 if (
25568 (named_expression_var = named_expression_rule(p)) // named_expression
25569 )
25570 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025571 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 +010025572 _res = named_expression_var;
25573 goto done;
25574 }
25575 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025576 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025577 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
25578 }
25579 _res = NULL;
25580 done:
25581 D(p->level--);
25582 return _res;
25583}
25584
Brandt Bucher145bf262021-02-26 14:51:55 -080025585// _loop0_118: ',' double_starred_kvpair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025586static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025587_loop0_118_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025588{
25589 D(p->level++);
25590 if (p->error_indicator) {
25591 D(p->level--);
25592 return NULL;
25593 }
25594 void *_res = NULL;
25595 int _mark = p->mark;
25596 int _start_mark = p->mark;
25597 void **_children = PyMem_Malloc(sizeof(void *));
25598 if (!_children) {
25599 p->error_indicator = 1;
25600 PyErr_NoMemory();
25601 D(p->level--);
25602 return NULL;
25603 }
25604 ssize_t _children_capacity = 1;
25605 ssize_t _n = 0;
25606 { // ',' double_starred_kvpair
25607 if (p->error_indicator) {
25608 D(p->level--);
25609 return NULL;
25610 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025611 D(fprintf(stderr, "%*c> _loop0_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025612 Token * _literal;
25613 KeyValuePair* elem;
25614 while (
25615 (_literal = _PyPegen_expect_token(p, 12)) // token=','
25616 &&
25617 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
25618 )
25619 {
25620 _res = elem;
25621 if (_res == NULL && PyErr_Occurred()) {
25622 p->error_indicator = 1;
25623 PyMem_Free(_children);
25624 D(p->level--);
25625 return NULL;
25626 }
25627 if (_n == _children_capacity) {
25628 _children_capacity *= 2;
25629 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25630 if (!_new_children) {
25631 p->error_indicator = 1;
25632 PyErr_NoMemory();
25633 D(p->level--);
25634 return NULL;
25635 }
25636 _children = _new_children;
25637 }
25638 _children[_n++] = _res;
25639 _mark = p->mark;
25640 }
25641 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025642 D(fprintf(stderr, "%*c%s _loop0_118[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025643 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
25644 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025645 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025646 if (!_seq) {
25647 PyMem_Free(_children);
25648 p->error_indicator = 1;
25649 PyErr_NoMemory();
25650 D(p->level--);
25651 return NULL;
25652 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025653 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025654 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025655 _PyPegen_insert_memo(p, _start_mark, _loop0_118_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025656 D(p->level--);
25657 return _seq;
25658}
25659
Brandt Bucher145bf262021-02-26 14:51:55 -080025660// _gather_117: double_starred_kvpair _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025661static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025662_gather_117_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025663{
25664 D(p->level++);
25665 if (p->error_indicator) {
25666 D(p->level--);
25667 return NULL;
25668 }
25669 asdl_seq * _res = NULL;
25670 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025671 { // double_starred_kvpair _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025672 if (p->error_indicator) {
25673 D(p->level--);
25674 return NULL;
25675 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025676 D(fprintf(stderr, "%*c> _gather_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_118"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025677 KeyValuePair* elem;
25678 asdl_seq * seq;
25679 if (
25680 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
25681 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080025682 (seq = _loop0_118_rule(p)) // _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025683 )
25684 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025685 D(fprintf(stderr, "%*c+ _gather_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_118"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025686 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
25687 goto done;
25688 }
25689 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025690 D(fprintf(stderr, "%*c%s _gather_117[%d-%d]: %s failed!\n", p->level, ' ',
25691 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_118"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025692 }
25693 _res = NULL;
25694 done:
25695 D(p->level--);
25696 return _res;
25697}
25698
Brandt Bucher145bf262021-02-26 14:51:55 -080025699// _loop1_119: for_if_clause
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025700static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025701_loop1_119_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025702{
25703 D(p->level++);
25704 if (p->error_indicator) {
25705 D(p->level--);
25706 return NULL;
25707 }
25708 void *_res = NULL;
25709 int _mark = p->mark;
25710 int _start_mark = p->mark;
25711 void **_children = PyMem_Malloc(sizeof(void *));
25712 if (!_children) {
25713 p->error_indicator = 1;
25714 PyErr_NoMemory();
25715 D(p->level--);
25716 return NULL;
25717 }
25718 ssize_t _children_capacity = 1;
25719 ssize_t _n = 0;
25720 { // for_if_clause
25721 if (p->error_indicator) {
25722 D(p->level--);
25723 return NULL;
25724 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025725 D(fprintf(stderr, "%*c> _loop1_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025726 comprehension_ty for_if_clause_var;
25727 while (
25728 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
25729 )
25730 {
25731 _res = for_if_clause_var;
25732 if (_n == _children_capacity) {
25733 _children_capacity *= 2;
25734 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25735 if (!_new_children) {
25736 p->error_indicator = 1;
25737 PyErr_NoMemory();
25738 D(p->level--);
25739 return NULL;
25740 }
25741 _children = _new_children;
25742 }
25743 _children[_n++] = _res;
25744 _mark = p->mark;
25745 }
25746 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025747 D(fprintf(stderr, "%*c%s _loop1_119[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025748 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
25749 }
25750 if (_n == 0 || p->error_indicator) {
25751 PyMem_Free(_children);
25752 D(p->level--);
25753 return NULL;
25754 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025755 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025756 if (!_seq) {
25757 PyMem_Free(_children);
25758 p->error_indicator = 1;
25759 PyErr_NoMemory();
25760 D(p->level--);
25761 return NULL;
25762 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025763 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025764 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025765 _PyPegen_insert_memo(p, _start_mark, _loop1_119_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025766 D(p->level--);
25767 return _seq;
25768}
25769
Brandt Bucher145bf262021-02-26 14:51:55 -080025770// _loop0_120: ('if' disjunction)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025771static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025772_loop0_120_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025773{
25774 D(p->level++);
25775 if (p->error_indicator) {
25776 D(p->level--);
25777 return NULL;
25778 }
25779 void *_res = NULL;
25780 int _mark = p->mark;
25781 int _start_mark = p->mark;
25782 void **_children = PyMem_Malloc(sizeof(void *));
25783 if (!_children) {
25784 p->error_indicator = 1;
25785 PyErr_NoMemory();
25786 D(p->level--);
25787 return NULL;
25788 }
25789 ssize_t _children_capacity = 1;
25790 ssize_t _n = 0;
25791 { // ('if' disjunction)
25792 if (p->error_indicator) {
25793 D(p->level--);
25794 return NULL;
25795 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025796 D(fprintf(stderr, "%*c> _loop0_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
25797 void *_tmp_170_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025798 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080025799 (_tmp_170_var = _tmp_170_rule(p)) // 'if' disjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025800 )
25801 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025802 _res = _tmp_170_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025803 if (_n == _children_capacity) {
25804 _children_capacity *= 2;
25805 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25806 if (!_new_children) {
25807 p->error_indicator = 1;
25808 PyErr_NoMemory();
25809 D(p->level--);
25810 return NULL;
25811 }
25812 _children = _new_children;
25813 }
25814 _children[_n++] = _res;
25815 _mark = p->mark;
25816 }
25817 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025818 D(fprintf(stderr, "%*c%s _loop0_120[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
25820 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025821 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025822 if (!_seq) {
25823 PyMem_Free(_children);
25824 p->error_indicator = 1;
25825 PyErr_NoMemory();
25826 D(p->level--);
25827 return NULL;
25828 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025829 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025830 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025831 _PyPegen_insert_memo(p, _start_mark, _loop0_120_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025832 D(p->level--);
25833 return _seq;
25834}
25835
Brandt Bucher145bf262021-02-26 14:51:55 -080025836// _loop0_121: ('if' disjunction)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025837static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025838_loop0_121_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025839{
25840 D(p->level++);
25841 if (p->error_indicator) {
25842 D(p->level--);
25843 return NULL;
25844 }
25845 void *_res = NULL;
25846 int _mark = p->mark;
25847 int _start_mark = p->mark;
25848 void **_children = PyMem_Malloc(sizeof(void *));
25849 if (!_children) {
25850 p->error_indicator = 1;
25851 PyErr_NoMemory();
25852 D(p->level--);
25853 return NULL;
25854 }
25855 ssize_t _children_capacity = 1;
25856 ssize_t _n = 0;
25857 { // ('if' disjunction)
25858 if (p->error_indicator) {
25859 D(p->level--);
25860 return NULL;
25861 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025862 D(fprintf(stderr, "%*c> _loop0_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
25863 void *_tmp_171_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025864 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080025865 (_tmp_171_var = _tmp_171_rule(p)) // 'if' disjunction
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025866 )
25867 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025868 _res = _tmp_171_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025869 if (_n == _children_capacity) {
25870 _children_capacity *= 2;
25871 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25872 if (!_new_children) {
25873 p->error_indicator = 1;
25874 PyErr_NoMemory();
25875 D(p->level--);
25876 return NULL;
25877 }
25878 _children = _new_children;
25879 }
25880 _children[_n++] = _res;
25881 _mark = p->mark;
25882 }
25883 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025884 D(fprintf(stderr, "%*c%s _loop0_121[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
25886 }
25887 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
25888 if (!_seq) {
25889 PyMem_Free(_children);
25890 p->error_indicator = 1;
25891 PyErr_NoMemory();
25892 D(p->level--);
25893 return NULL;
25894 }
25895 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
25896 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025897 _PyPegen_insert_memo(p, _start_mark, _loop0_121_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025898 D(p->level--);
25899 return _seq;
25900}
25901
Brandt Bucher145bf262021-02-26 14:51:55 -080025902// _loop0_123: ',' (starred_expression | named_expression !'=')
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025903static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025904_loop0_123_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025905{
25906 D(p->level++);
25907 if (p->error_indicator) {
25908 D(p->level--);
25909 return NULL;
25910 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025911 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025912 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025913 int _start_mark = p->mark;
25914 void **_children = PyMem_Malloc(sizeof(void *));
25915 if (!_children) {
25916 p->error_indicator = 1;
25917 PyErr_NoMemory();
25918 D(p->level--);
25919 return NULL;
25920 }
25921 ssize_t _children_capacity = 1;
25922 ssize_t _n = 0;
Pablo Galindo4a97b152020-09-02 17:44:19 +010025923 { // ',' (starred_expression | named_expression !'=')
25924 if (p->error_indicator) {
25925 D(p->level--);
25926 return NULL;
25927 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025928 D(fprintf(stderr, "%*c> _loop0_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | named_expression !'=')"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010025929 Token * _literal;
25930 void *elem;
25931 while (
25932 (_literal = _PyPegen_expect_token(p, 12)) // token=','
25933 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080025934 (elem = _tmp_172_rule(p)) // starred_expression | named_expression !'='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025935 )
25936 {
25937 _res = elem;
25938 if (_res == NULL && PyErr_Occurred()) {
25939 p->error_indicator = 1;
25940 PyMem_Free(_children);
25941 D(p->level--);
25942 return NULL;
25943 }
25944 if (_n == _children_capacity) {
25945 _children_capacity *= 2;
25946 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25947 if (!_new_children) {
25948 p->error_indicator = 1;
25949 PyErr_NoMemory();
25950 D(p->level--);
25951 return NULL;
25952 }
25953 _children = _new_children;
25954 }
25955 _children[_n++] = _res;
25956 _mark = p->mark;
25957 }
25958 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025959 D(fprintf(stderr, "%*c%s _loop0_123[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080025960 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | named_expression !'=')"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025961 }
25962 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
25963 if (!_seq) {
25964 PyMem_Free(_children);
25965 p->error_indicator = 1;
25966 PyErr_NoMemory();
25967 D(p->level--);
25968 return NULL;
25969 }
25970 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
25971 PyMem_Free(_children);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025972 _PyPegen_insert_memo(p, _start_mark, _loop0_123_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025973 D(p->level--);
25974 return _seq;
25975}
25976
Brandt Bucher145bf262021-02-26 14:51:55 -080025977// _gather_122: (starred_expression | named_expression !'=') _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025978static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025979_gather_122_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025980{
25981 D(p->level++);
25982 if (p->error_indicator) {
25983 D(p->level--);
25984 return NULL;
25985 }
25986 asdl_seq * _res = NULL;
25987 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025988 { // (starred_expression | named_expression !'=') _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025989 if (p->error_indicator) {
25990 D(p->level--);
25991 return NULL;
25992 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025993 D(fprintf(stderr, "%*c> _gather_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_123"));
25994 void *elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025995 asdl_seq * seq;
25996 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080025997 (elem = _tmp_172_rule(p)) // starred_expression | named_expression !'='
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025998 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025999 (seq = _loop0_123_rule(p)) // _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026000 )
26001 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026002 D(fprintf(stderr, "%*c+ _gather_122[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_123"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026003 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26004 goto done;
26005 }
26006 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026007 D(fprintf(stderr, "%*c%s _gather_122[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080026008 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_123"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026009 }
26010 _res = NULL;
26011 done:
26012 D(p->level--);
26013 return _res;
26014}
26015
Brandt Bucher145bf262021-02-26 14:51:55 -080026016// _tmp_124: ',' kwargs
26017static void *
26018_tmp_124_rule(Parser *p)
26019{
26020 D(p->level++);
26021 if (p->error_indicator) {
26022 D(p->level--);
26023 return NULL;
26024 }
26025 void * _res = NULL;
26026 int _mark = p->mark;
26027 { // ',' kwargs
26028 if (p->error_indicator) {
26029 D(p->level--);
26030 return NULL;
26031 }
26032 D(fprintf(stderr, "%*c> _tmp_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
26033 Token * _literal;
26034 asdl_seq* k;
26035 if (
26036 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26037 &&
26038 (k = kwargs_rule(p)) // kwargs
26039 )
26040 {
26041 D(fprintf(stderr, "%*c+ _tmp_124[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
26042 _res = k;
26043 if (_res == NULL && PyErr_Occurred()) {
26044 p->error_indicator = 1;
26045 D(p->level--);
26046 return NULL;
26047 }
26048 goto done;
26049 }
26050 p->mark = _mark;
26051 D(fprintf(stderr, "%*c%s _tmp_124[%d-%d]: %s failed!\n", p->level, ' ',
26052 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
26053 }
26054 _res = NULL;
26055 done:
26056 D(p->level--);
26057 return _res;
26058}
26059
26060// _loop0_126: ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026061static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026062_loop0_126_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026063{
26064 D(p->level++);
26065 if (p->error_indicator) {
26066 D(p->level--);
26067 return NULL;
26068 }
26069 void *_res = NULL;
26070 int _mark = p->mark;
26071 int _start_mark = p->mark;
26072 void **_children = PyMem_Malloc(sizeof(void *));
26073 if (!_children) {
26074 p->error_indicator = 1;
26075 PyErr_NoMemory();
26076 D(p->level--);
26077 return NULL;
26078 }
26079 ssize_t _children_capacity = 1;
26080 ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080026081 { // ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026082 if (p->error_indicator) {
26083 D(p->level--);
26084 return NULL;
26085 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026086 D(fprintf(stderr, "%*c> _loop0_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026087 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080026088 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026089 while (
26090 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26091 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026092 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026093 )
26094 {
26095 _res = elem;
26096 if (_res == NULL && PyErr_Occurred()) {
26097 p->error_indicator = 1;
26098 PyMem_Free(_children);
26099 D(p->level--);
26100 return NULL;
26101 }
26102 if (_n == _children_capacity) {
26103 _children_capacity *= 2;
26104 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26105 if (!_new_children) {
26106 p->error_indicator = 1;
26107 PyErr_NoMemory();
26108 D(p->level--);
26109 return NULL;
26110 }
26111 _children = _new_children;
26112 }
26113 _children[_n++] = _res;
26114 _mark = p->mark;
26115 }
26116 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026117 D(fprintf(stderr, "%*c%s _loop0_126[%d-%d]: %s failed!\n", p->level, ' ',
26118 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026119 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026120 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026121 if (!_seq) {
26122 PyMem_Free(_children);
26123 p->error_indicator = 1;
26124 PyErr_NoMemory();
26125 D(p->level--);
26126 return NULL;
26127 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026128 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026129 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026130 _PyPegen_insert_memo(p, _start_mark, _loop0_126_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026131 D(p->level--);
26132 return _seq;
26133}
26134
Brandt Bucher145bf262021-02-26 14:51:55 -080026135// _gather_125: kwarg_or_starred _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026136static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026137_gather_125_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026138{
26139 D(p->level++);
26140 if (p->error_indicator) {
26141 D(p->level--);
26142 return NULL;
26143 }
26144 asdl_seq * _res = NULL;
26145 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026146 { // kwarg_or_starred _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026147 if (p->error_indicator) {
26148 D(p->level--);
26149 return NULL;
26150 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026151 D(fprintf(stderr, "%*c> _gather_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_126"));
26152 KeywordOrStarred* elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026153 asdl_seq * seq;
26154 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080026155 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026156 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026157 (seq = _loop0_126_rule(p)) // _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026158 )
26159 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026160 D(fprintf(stderr, "%*c+ _gather_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_126"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026161 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26162 goto done;
26163 }
26164 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026165 D(fprintf(stderr, "%*c%s _gather_125[%d-%d]: %s failed!\n", p->level, ' ',
26166 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_126"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026167 }
26168 _res = NULL;
26169 done:
26170 D(p->level--);
26171 return _res;
26172}
26173
Brandt Bucher145bf262021-02-26 14:51:55 -080026174// _loop0_128: ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026175static asdl_seq *
26176_loop0_128_rule(Parser *p)
26177{
26178 D(p->level++);
26179 if (p->error_indicator) {
26180 D(p->level--);
26181 return NULL;
26182 }
26183 void *_res = NULL;
26184 int _mark = p->mark;
26185 int _start_mark = p->mark;
26186 void **_children = PyMem_Malloc(sizeof(void *));
26187 if (!_children) {
26188 p->error_indicator = 1;
26189 PyErr_NoMemory();
26190 D(p->level--);
26191 return NULL;
26192 }
26193 ssize_t _children_capacity = 1;
26194 ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080026195 { // ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026196 if (p->error_indicator) {
26197 D(p->level--);
26198 return NULL;
26199 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026200 D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
26201 Token * _literal;
26202 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026203 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080026204 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26205 &&
26206 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026207 )
26208 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026209 _res = elem;
26210 if (_res == NULL && PyErr_Occurred()) {
26211 p->error_indicator = 1;
26212 PyMem_Free(_children);
26213 D(p->level--);
26214 return NULL;
26215 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026216 if (_n == _children_capacity) {
26217 _children_capacity *= 2;
26218 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26219 if (!_new_children) {
26220 p->error_indicator = 1;
26221 PyErr_NoMemory();
26222 D(p->level--);
26223 return NULL;
26224 }
26225 _children = _new_children;
26226 }
26227 _children[_n++] = _res;
26228 _mark = p->mark;
26229 }
26230 p->mark = _mark;
26231 D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080026232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026233 }
26234 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26235 if (!_seq) {
26236 PyMem_Free(_children);
26237 p->error_indicator = 1;
26238 PyErr_NoMemory();
26239 D(p->level--);
26240 return NULL;
26241 }
26242 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26243 PyMem_Free(_children);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030026244 _PyPegen_insert_memo(p, _start_mark, _loop0_128_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026245 D(p->level--);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030026246 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026247}
26248
Brandt Bucher145bf262021-02-26 14:51:55 -080026249// _gather_127: kwarg_or_double_starred _loop0_128
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026250static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026251_gather_127_rule(Parser *p)
26252{
26253 D(p->level++);
26254 if (p->error_indicator) {
26255 D(p->level--);
26256 return NULL;
26257 }
26258 asdl_seq * _res = NULL;
26259 int _mark = p->mark;
26260 { // kwarg_or_double_starred _loop0_128
26261 if (p->error_indicator) {
26262 D(p->level--);
26263 return NULL;
26264 }
26265 D(fprintf(stderr, "%*c> _gather_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
26266 KeywordOrStarred* elem;
26267 asdl_seq * seq;
26268 if (
26269 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
26270 &&
26271 (seq = _loop0_128_rule(p)) // _loop0_128
26272 )
26273 {
26274 D(fprintf(stderr, "%*c+ _gather_127[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
26275 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26276 goto done;
26277 }
26278 p->mark = _mark;
26279 D(fprintf(stderr, "%*c%s _gather_127[%d-%d]: %s failed!\n", p->level, ' ',
26280 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
26281 }
26282 _res = NULL;
26283 done:
26284 D(p->level--);
26285 return _res;
26286}
26287
26288// _loop0_130: ',' kwarg_or_starred
26289static asdl_seq *
26290_loop0_130_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026291{
26292 D(p->level++);
26293 if (p->error_indicator) {
26294 D(p->level--);
26295 return NULL;
26296 }
26297 void *_res = NULL;
26298 int _mark = p->mark;
26299 int _start_mark = p->mark;
26300 void **_children = PyMem_Malloc(sizeof(void *));
26301 if (!_children) {
26302 p->error_indicator = 1;
26303 PyErr_NoMemory();
26304 D(p->level--);
26305 return NULL;
26306 }
26307 ssize_t _children_capacity = 1;
26308 ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080026309 { // ',' kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026310 if (p->error_indicator) {
26311 D(p->level--);
26312 return NULL;
26313 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026314 D(fprintf(stderr, "%*c> _loop0_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
26315 Token * _literal;
26316 KeywordOrStarred* elem;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026317 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080026318 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26319 &&
26320 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026321 )
26322 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026323 _res = elem;
26324 if (_res == NULL && PyErr_Occurred()) {
26325 p->error_indicator = 1;
26326 PyMem_Free(_children);
26327 D(p->level--);
26328 return NULL;
26329 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026330 if (_n == _children_capacity) {
26331 _children_capacity *= 2;
26332 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26333 if (!_new_children) {
26334 p->error_indicator = 1;
26335 PyErr_NoMemory();
26336 D(p->level--);
26337 return NULL;
26338 }
26339 _children = _new_children;
26340 }
26341 _children[_n++] = _res;
26342 _mark = p->mark;
26343 }
26344 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026345 D(fprintf(stderr, "%*c%s _loop0_130[%d-%d]: %s failed!\n", p->level, ' ',
26346 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026347 }
26348 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26349 if (!_seq) {
26350 PyMem_Free(_children);
26351 p->error_indicator = 1;
26352 PyErr_NoMemory();
26353 D(p->level--);
26354 return NULL;
26355 }
26356 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26357 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026358 _PyPegen_insert_memo(p, _start_mark, _loop0_130_type, _seq);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020026359 D(p->level--);
26360 return _seq;
26361}
26362
Brandt Bucher145bf262021-02-26 14:51:55 -080026363// _gather_129: kwarg_or_starred _loop0_130
26364static asdl_seq *
26365_gather_129_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026366{
26367 D(p->level++);
26368 if (p->error_indicator) {
26369 D(p->level--);
26370 return NULL;
26371 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026372 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026373 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026374 { // kwarg_or_starred _loop0_130
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026375 if (p->error_indicator) {
26376 D(p->level--);
26377 return NULL;
26378 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026379 D(fprintf(stderr, "%*c> _gather_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_130"));
26380 KeywordOrStarred* elem;
26381 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026382 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080026383 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
26384 &&
26385 (seq = _loop0_130_rule(p)) // _loop0_130
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026386 )
26387 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026388 D(fprintf(stderr, "%*c+ _gather_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_130"));
26389 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026390 goto done;
26391 }
26392 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026393 D(fprintf(stderr, "%*c%s _gather_129[%d-%d]: %s failed!\n", p->level, ' ',
26394 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_130"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026395 }
26396 _res = NULL;
26397 done:
26398 D(p->level--);
26399 return _res;
26400}
26401
Brandt Bucher145bf262021-02-26 14:51:55 -080026402// _loop0_132: ',' kwarg_or_double_starred
26403static asdl_seq *
26404_loop0_132_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026405{
26406 D(p->level++);
26407 if (p->error_indicator) {
26408 D(p->level--);
26409 return NULL;
26410 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026411 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026412 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026413 int _start_mark = p->mark;
26414 void **_children = PyMem_Malloc(sizeof(void *));
26415 if (!_children) {
26416 p->error_indicator = 1;
26417 PyErr_NoMemory();
26418 D(p->level--);
26419 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026420 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026421 ssize_t _children_capacity = 1;
26422 ssize_t _n = 0;
26423 { // ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026424 if (p->error_indicator) {
26425 D(p->level--);
26426 return NULL;
26427 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026428 D(fprintf(stderr, "%*c> _loop0_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026429 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080026430 KeywordOrStarred* elem;
26431 while (
26432 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26433 &&
26434 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026435 )
26436 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026437 _res = elem;
26438 if (_res == NULL && PyErr_Occurred()) {
26439 p->error_indicator = 1;
26440 PyMem_Free(_children);
26441 D(p->level--);
26442 return NULL;
26443 }
26444 if (_n == _children_capacity) {
26445 _children_capacity *= 2;
26446 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26447 if (!_new_children) {
26448 p->error_indicator = 1;
26449 PyErr_NoMemory();
26450 D(p->level--);
26451 return NULL;
26452 }
26453 _children = _new_children;
26454 }
26455 _children[_n++] = _res;
26456 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026457 }
26458 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026459 D(fprintf(stderr, "%*c%s _loop0_132[%d-%d]: %s failed!\n", p->level, ' ',
26460 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026461 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026462 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26463 if (!_seq) {
26464 PyMem_Free(_children);
26465 p->error_indicator = 1;
26466 PyErr_NoMemory();
26467 D(p->level--);
26468 return NULL;
26469 }
26470 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26471 PyMem_Free(_children);
26472 _PyPegen_insert_memo(p, _start_mark, _loop0_132_type, _seq);
26473 D(p->level--);
26474 return _seq;
26475}
26476
26477// _gather_131: kwarg_or_double_starred _loop0_132
26478static asdl_seq *
26479_gather_131_rule(Parser *p)
26480{
26481 D(p->level++);
26482 if (p->error_indicator) {
26483 D(p->level--);
26484 return NULL;
26485 }
26486 asdl_seq * _res = NULL;
26487 int _mark = p->mark;
26488 { // kwarg_or_double_starred _loop0_132
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026489 if (p->error_indicator) {
26490 D(p->level--);
26491 return NULL;
26492 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026493 D(fprintf(stderr, "%*c> _gather_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
26494 KeywordOrStarred* elem;
26495 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026496 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080026497 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
26498 &&
26499 (seq = _loop0_132_rule(p)) // _loop0_132
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026500 )
26501 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026502 D(fprintf(stderr, "%*c+ _gather_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
26503 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026504 goto done;
26505 }
26506 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026507 D(fprintf(stderr, "%*c%s _gather_131[%d-%d]: %s failed!\n", p->level, ' ',
26508 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026509 }
26510 _res = NULL;
26511 done:
26512 D(p->level--);
26513 return _res;
26514}
26515
Brandt Bucher145bf262021-02-26 14:51:55 -080026516// _loop0_133: (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026517static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000026518_loop0_133_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026519{
26520 D(p->level++);
26521 if (p->error_indicator) {
26522 D(p->level--);
26523 return NULL;
26524 }
26525 void *_res = NULL;
26526 int _mark = p->mark;
26527 int _start_mark = p->mark;
26528 void **_children = PyMem_Malloc(sizeof(void *));
26529 if (!_children) {
26530 p->error_indicator = 1;
26531 PyErr_NoMemory();
26532 D(p->level--);
26533 return NULL;
26534 }
26535 ssize_t _children_capacity = 1;
26536 ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080026537 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026538 if (p->error_indicator) {
26539 D(p->level--);
26540 return NULL;
26541 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026542 D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
26543 void *_tmp_173_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026544 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080026545 (_tmp_173_var = _tmp_173_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026546 )
26547 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026548 _res = _tmp_173_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026549 if (_n == _children_capacity) {
26550 _children_capacity *= 2;
26551 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26552 if (!_new_children) {
26553 p->error_indicator = 1;
26554 PyErr_NoMemory();
26555 D(p->level--);
26556 return NULL;
26557 }
26558 _children = _new_children;
26559 }
26560 _children[_n++] = _res;
26561 _mark = p->mark;
26562 }
26563 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000026564 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080026565 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026566 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026567 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026568 if (!_seq) {
26569 PyMem_Free(_children);
26570 p->error_indicator = 1;
26571 PyErr_NoMemory();
26572 D(p->level--);
26573 return NULL;
26574 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026575 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026576 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000026577 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026578 D(p->level--);
26579 return _seq;
26580}
26581
Brandt Bucher145bf262021-02-26 14:51:55 -080026582// _loop0_135: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026583static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000026584_loop0_135_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026585{
26586 D(p->level++);
26587 if (p->error_indicator) {
26588 D(p->level--);
26589 return NULL;
26590 }
26591 void *_res = NULL;
26592 int _mark = p->mark;
26593 int _start_mark = p->mark;
26594 void **_children = PyMem_Malloc(sizeof(void *));
26595 if (!_children) {
26596 p->error_indicator = 1;
26597 PyErr_NoMemory();
26598 D(p->level--);
26599 return NULL;
26600 }
26601 ssize_t _children_capacity = 1;
26602 ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080026603 { // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026604 if (p->error_indicator) {
26605 D(p->level--);
26606 return NULL;
26607 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026608 D(fprintf(stderr, "%*c> _loop0_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
26609 Token * _literal;
26610 expr_ty elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026611 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080026612 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26613 &&
26614 (elem = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026615 )
26616 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026617 _res = elem;
26618 if (_res == NULL && PyErr_Occurred()) {
26619 p->error_indicator = 1;
26620 PyMem_Free(_children);
26621 D(p->level--);
26622 return NULL;
26623 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026624 if (_n == _children_capacity) {
26625 _children_capacity *= 2;
26626 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26627 if (!_new_children) {
26628 p->error_indicator = 1;
26629 PyErr_NoMemory();
26630 D(p->level--);
26631 return NULL;
26632 }
26633 _children = _new_children;
26634 }
26635 _children[_n++] = _res;
26636 _mark = p->mark;
26637 }
26638 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000026639 D(fprintf(stderr, "%*c%s _loop0_135[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080026640 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026641 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026642 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026643 if (!_seq) {
26644 PyMem_Free(_children);
26645 p->error_indicator = 1;
26646 PyErr_NoMemory();
26647 D(p->level--);
26648 return NULL;
26649 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026650 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026651 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000026652 _PyPegen_insert_memo(p, _start_mark, _loop0_135_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026653 D(p->level--);
26654 return _seq;
26655}
26656
Brandt Bucher145bf262021-02-26 14:51:55 -080026657// _gather_134: star_target _loop0_135
26658static asdl_seq *
26659_gather_134_rule(Parser *p)
26660{
26661 D(p->level++);
26662 if (p->error_indicator) {
26663 D(p->level--);
26664 return NULL;
26665 }
26666 asdl_seq * _res = NULL;
26667 int _mark = p->mark;
26668 { // star_target _loop0_135
26669 if (p->error_indicator) {
26670 D(p->level--);
26671 return NULL;
26672 }
26673 D(fprintf(stderr, "%*c> _gather_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_135"));
26674 expr_ty elem;
26675 asdl_seq * seq;
26676 if (
26677 (elem = star_target_rule(p)) // star_target
26678 &&
26679 (seq = _loop0_135_rule(p)) // _loop0_135
26680 )
26681 {
26682 D(fprintf(stderr, "%*c+ _gather_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_135"));
26683 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26684 goto done;
26685 }
26686 p->mark = _mark;
26687 D(fprintf(stderr, "%*c%s _gather_134[%d-%d]: %s failed!\n", p->level, ' ',
26688 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_135"));
26689 }
26690 _res = NULL;
26691 done:
26692 D(p->level--);
26693 return _res;
26694}
26695
26696// _loop1_136: (',' star_target)
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020026697static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000026698_loop1_136_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026699{
26700 D(p->level++);
26701 if (p->error_indicator) {
26702 D(p->level--);
26703 return NULL;
26704 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020026705 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026706 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020026707 int _start_mark = p->mark;
26708 void **_children = PyMem_Malloc(sizeof(void *));
26709 if (!_children) {
26710 p->error_indicator = 1;
26711 PyErr_NoMemory();
26712 D(p->level--);
26713 return NULL;
26714 }
26715 ssize_t _children_capacity = 1;
26716 ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080026717 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026718 if (p->error_indicator) {
26719 D(p->level--);
26720 return NULL;
26721 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026722 D(fprintf(stderr, "%*c> _loop1_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
26723 void *_tmp_174_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020026724 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080026725 (_tmp_174_var = _tmp_174_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026726 )
26727 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026728 _res = _tmp_174_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020026729 if (_n == _children_capacity) {
26730 _children_capacity *= 2;
26731 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26732 if (!_new_children) {
26733 p->error_indicator = 1;
26734 PyErr_NoMemory();
26735 D(p->level--);
26736 return NULL;
26737 }
26738 _children = _new_children;
26739 }
26740 _children[_n++] = _res;
26741 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026742 }
26743 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000026744 D(fprintf(stderr, "%*c%s _loop1_136[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080026745 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026746 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020026747 if (_n == 0 || p->error_indicator) {
26748 PyMem_Free(_children);
26749 D(p->level--);
26750 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026751 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020026752 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26753 if (!_seq) {
26754 PyMem_Free(_children);
26755 p->error_indicator = 1;
26756 PyErr_NoMemory();
26757 D(p->level--);
26758 return NULL;
26759 }
26760 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26761 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000026762 _PyPegen_insert_memo(p, _start_mark, _loop1_136_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026763 D(p->level--);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020026764 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026765}
26766
Brandt Bucher145bf262021-02-26 14:51:55 -080026767// _tmp_137: !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026768static void *
Pablo Galindo835f14f2021-01-31 22:52:56 +000026769_tmp_137_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026770{
26771 D(p->level++);
26772 if (p->error_indicator) {
26773 D(p->level--);
26774 return NULL;
26775 }
26776 void * _res = NULL;
26777 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026778 { // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026779 if (p->error_indicator) {
26780 D(p->level--);
26781 return NULL;
26782 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026783 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
26784 expr_ty star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026785 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080026786 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026787 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026788 (star_target_var = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026789 )
26790 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026791 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
26792 _res = star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026793 goto done;
26794 }
26795 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000026796 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080026797 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026798 }
26799 _res = NULL;
26800 done:
26801 D(p->level--);
26802 return _res;
26803}
26804
Brandt Bucher145bf262021-02-26 14:51:55 -080026805// _loop0_139: ',' del_target
26806static asdl_seq *
26807_loop0_139_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026808{
26809 D(p->level++);
26810 if (p->error_indicator) {
26811 D(p->level--);
26812 return NULL;
26813 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026814 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026815 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026816 int _start_mark = p->mark;
26817 void **_children = PyMem_Malloc(sizeof(void *));
26818 if (!_children) {
26819 p->error_indicator = 1;
26820 PyErr_NoMemory();
26821 D(p->level--);
26822 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026823 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026824 ssize_t _children_capacity = 1;
26825 ssize_t _n = 0;
26826 { // ',' del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026827 if (p->error_indicator) {
26828 D(p->level--);
26829 return NULL;
26830 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026831 D(fprintf(stderr, "%*c> _loop0_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026832 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080026833 expr_ty elem;
26834 while (
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026835 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26836 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026837 (elem = del_target_rule(p)) // del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026838 )
26839 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026840 _res = elem;
26841 if (_res == NULL && PyErr_Occurred()) {
26842 p->error_indicator = 1;
26843 PyMem_Free(_children);
26844 D(p->level--);
26845 return NULL;
26846 }
26847 if (_n == _children_capacity) {
26848 _children_capacity *= 2;
26849 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26850 if (!_new_children) {
26851 p->error_indicator = 1;
26852 PyErr_NoMemory();
26853 D(p->level--);
26854 return NULL;
26855 }
26856 _children = _new_children;
26857 }
26858 _children[_n++] = _res;
26859 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026860 }
26861 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026862 D(fprintf(stderr, "%*c%s _loop0_139[%d-%d]: %s failed!\n", p->level, ' ',
26863 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026864 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026865 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26866 if (!_seq) {
26867 PyMem_Free(_children);
26868 p->error_indicator = 1;
26869 PyErr_NoMemory();
26870 D(p->level--);
26871 return NULL;
26872 }
26873 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26874 PyMem_Free(_children);
26875 _PyPegen_insert_memo(p, _start_mark, _loop0_139_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026876 D(p->level--);
Brandt Bucher145bf262021-02-26 14:51:55 -080026877 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026878}
26879
Brandt Bucher145bf262021-02-26 14:51:55 -080026880// _gather_138: del_target _loop0_139
26881static asdl_seq *
26882_gather_138_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026883{
26884 D(p->level++);
26885 if (p->error_indicator) {
26886 D(p->level--);
26887 return NULL;
26888 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026889 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026890 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026891 { // del_target _loop0_139
Pablo Galindo58fb1562021-02-02 19:54:22 +000026892 if (p->error_indicator) {
26893 D(p->level--);
26894 return NULL;
26895 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026896 D(fprintf(stderr, "%*c> _gather_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_139"));
26897 expr_ty elem;
26898 asdl_seq * seq;
Pablo Galindo58fb1562021-02-02 19:54:22 +000026899 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080026900 (elem = del_target_rule(p)) // del_target
26901 &&
26902 (seq = _loop0_139_rule(p)) // _loop0_139
Pablo Galindo58fb1562021-02-02 19:54:22 +000026903 )
26904 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026905 D(fprintf(stderr, "%*c+ _gather_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_139"));
26906 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo58fb1562021-02-02 19:54:22 +000026907 goto done;
26908 }
26909 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026910 D(fprintf(stderr, "%*c%s _gather_138[%d-%d]: %s failed!\n", p->level, ' ',
26911 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_139"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000026912 }
26913 _res = NULL;
26914 done:
26915 D(p->level--);
26916 return _res;
26917}
26918
Brandt Bucher145bf262021-02-26 14:51:55 -080026919// _loop0_141: ',' target
Pablo Galindo58fb1562021-02-02 19:54:22 +000026920static asdl_seq *
26921_loop0_141_rule(Parser *p)
26922{
26923 D(p->level++);
26924 if (p->error_indicator) {
26925 D(p->level--);
26926 return NULL;
26927 }
26928 void *_res = NULL;
26929 int _mark = p->mark;
26930 int _start_mark = p->mark;
26931 void **_children = PyMem_Malloc(sizeof(void *));
26932 if (!_children) {
26933 p->error_indicator = 1;
26934 PyErr_NoMemory();
26935 D(p->level--);
26936 return NULL;
26937 }
26938 ssize_t _children_capacity = 1;
26939 ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080026940 { // ',' target
Pablo Galindo58fb1562021-02-02 19:54:22 +000026941 if (p->error_indicator) {
26942 D(p->level--);
26943 return NULL;
26944 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026945 D(fprintf(stderr, "%*c> _loop0_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000026946 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080026947 expr_ty elem;
Pablo Galindo58fb1562021-02-02 19:54:22 +000026948 while (
26949 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26950 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026951 (elem = target_rule(p)) // target
Pablo Galindo58fb1562021-02-02 19:54:22 +000026952 )
26953 {
26954 _res = elem;
26955 if (_res == NULL && PyErr_Occurred()) {
26956 p->error_indicator = 1;
26957 PyMem_Free(_children);
26958 D(p->level--);
26959 return NULL;
26960 }
26961 if (_n == _children_capacity) {
26962 _children_capacity *= 2;
26963 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26964 if (!_new_children) {
26965 p->error_indicator = 1;
26966 PyErr_NoMemory();
26967 D(p->level--);
26968 return NULL;
26969 }
26970 _children = _new_children;
26971 }
26972 _children[_n++] = _res;
26973 _mark = p->mark;
26974 }
26975 p->mark = _mark;
26976 D(fprintf(stderr, "%*c%s _loop0_141[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080026977 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000026978 }
26979 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26980 if (!_seq) {
26981 PyMem_Free(_children);
26982 p->error_indicator = 1;
26983 PyErr_NoMemory();
26984 D(p->level--);
26985 return NULL;
26986 }
26987 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26988 PyMem_Free(_children);
26989 _PyPegen_insert_memo(p, _start_mark, _loop0_141_type, _seq);
26990 D(p->level--);
26991 return _seq;
26992}
26993
Brandt Bucher145bf262021-02-26 14:51:55 -080026994// _gather_140: target _loop0_141
Pablo Galindo58fb1562021-02-02 19:54:22 +000026995static asdl_seq *
26996_gather_140_rule(Parser *p)
26997{
26998 D(p->level++);
26999 if (p->error_indicator) {
27000 D(p->level--);
27001 return NULL;
27002 }
27003 asdl_seq * _res = NULL;
27004 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027005 { // target _loop0_141
Pablo Galindo58fb1562021-02-02 19:54:22 +000027006 if (p->error_indicator) {
27007 D(p->level--);
27008 return NULL;
27009 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027010 D(fprintf(stderr, "%*c> _gather_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target _loop0_141"));
27011 expr_ty elem;
Pablo Galindo58fb1562021-02-02 19:54:22 +000027012 asdl_seq * seq;
27013 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080027014 (elem = target_rule(p)) // target
Pablo Galindo58fb1562021-02-02 19:54:22 +000027015 &&
27016 (seq = _loop0_141_rule(p)) // _loop0_141
27017 )
27018 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027019 D(fprintf(stderr, "%*c+ _gather_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target _loop0_141"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000027020 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27021 goto done;
27022 }
27023 p->mark = _mark;
27024 D(fprintf(stderr, "%*c%s _gather_140[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080027025 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target _loop0_141"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000027026 }
27027 _res = NULL;
27028 done:
27029 D(p->level--);
27030 return _res;
27031}
27032
Brandt Bucher145bf262021-02-26 14:51:55 -080027033// _tmp_142: args | expression for_if_clauses
27034static void *
27035_tmp_142_rule(Parser *p)
27036{
27037 D(p->level++);
27038 if (p->error_indicator) {
27039 D(p->level--);
27040 return NULL;
27041 }
27042 void * _res = NULL;
27043 int _mark = p->mark;
27044 { // args
27045 if (p->error_indicator) {
27046 D(p->level--);
27047 return NULL;
27048 }
27049 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
27050 expr_ty args_var;
27051 if (
27052 (args_var = args_rule(p)) // args
27053 )
27054 {
27055 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
27056 _res = args_var;
27057 goto done;
27058 }
27059 p->mark = _mark;
27060 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
27061 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
27062 }
27063 { // expression for_if_clauses
27064 if (p->error_indicator) {
27065 D(p->level--);
27066 return NULL;
27067 }
27068 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
27069 expr_ty expression_var;
27070 asdl_comprehension_seq* for_if_clauses_var;
27071 if (
27072 (expression_var = expression_rule(p)) // expression
27073 &&
27074 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
27075 )
27076 {
27077 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
27078 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
27079 goto done;
27080 }
27081 p->mark = _mark;
27082 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
27083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
27084 }
27085 _res = NULL;
27086 done:
27087 D(p->level--);
27088 return _res;
27089}
27090
27091// _loop0_143: star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000027092static asdl_seq *
27093_loop0_143_rule(Parser *p)
27094{
27095 D(p->level++);
27096 if (p->error_indicator) {
27097 D(p->level--);
27098 return NULL;
27099 }
27100 void *_res = NULL;
27101 int _mark = p->mark;
27102 int _start_mark = p->mark;
27103 void **_children = PyMem_Malloc(sizeof(void *));
27104 if (!_children) {
27105 p->error_indicator = 1;
27106 PyErr_NoMemory();
27107 D(p->level--);
27108 return NULL;
27109 }
27110 ssize_t _children_capacity = 1;
27111 ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080027112 { // star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000027113 if (p->error_indicator) {
27114 D(p->level--);
27115 return NULL;
27116 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027117 D(fprintf(stderr, "%*c> _loop0_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions"));
27118 asdl_expr_seq* star_named_expressions_var;
27119 while (
27120 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
27121 )
27122 {
27123 _res = star_named_expressions_var;
27124 if (_n == _children_capacity) {
27125 _children_capacity *= 2;
27126 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27127 if (!_new_children) {
27128 p->error_indicator = 1;
27129 PyErr_NoMemory();
27130 D(p->level--);
27131 return NULL;
27132 }
27133 _children = _new_children;
27134 }
27135 _children[_n++] = _res;
27136 _mark = p->mark;
27137 }
27138 p->mark = _mark;
27139 D(fprintf(stderr, "%*c%s _loop0_143[%d-%d]: %s failed!\n", p->level, ' ',
27140 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
27141 }
27142 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27143 if (!_seq) {
27144 PyMem_Free(_children);
27145 p->error_indicator = 1;
27146 PyErr_NoMemory();
27147 D(p->level--);
27148 return NULL;
27149 }
27150 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27151 PyMem_Free(_children);
27152 _PyPegen_insert_memo(p, _start_mark, _loop0_143_type, _seq);
27153 D(p->level--);
27154 return _seq;
27155}
27156
27157// _loop0_144: (star_targets '=')
27158static asdl_seq *
27159_loop0_144_rule(Parser *p)
27160{
27161 D(p->level++);
27162 if (p->error_indicator) {
27163 D(p->level--);
27164 return NULL;
27165 }
27166 void *_res = NULL;
27167 int _mark = p->mark;
27168 int _start_mark = p->mark;
27169 void **_children = PyMem_Malloc(sizeof(void *));
27170 if (!_children) {
27171 p->error_indicator = 1;
27172 PyErr_NoMemory();
27173 D(p->level--);
27174 return NULL;
27175 }
27176 ssize_t _children_capacity = 1;
27177 ssize_t _n = 0;
27178 { // (star_targets '=')
27179 if (p->error_indicator) {
27180 D(p->level--);
27181 return NULL;
27182 }
27183 D(fprintf(stderr, "%*c> _loop0_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
27184 void *_tmp_175_var;
27185 while (
27186 (_tmp_175_var = _tmp_175_rule(p)) // star_targets '='
27187 )
27188 {
27189 _res = _tmp_175_var;
27190 if (_n == _children_capacity) {
27191 _children_capacity *= 2;
27192 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27193 if (!_new_children) {
27194 p->error_indicator = 1;
27195 PyErr_NoMemory();
27196 D(p->level--);
27197 return NULL;
27198 }
27199 _children = _new_children;
27200 }
27201 _children[_n++] = _res;
27202 _mark = p->mark;
27203 }
27204 p->mark = _mark;
27205 D(fprintf(stderr, "%*c%s _loop0_144[%d-%d]: %s failed!\n", p->level, ' ',
27206 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
27207 }
27208 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27209 if (!_seq) {
27210 PyMem_Free(_children);
27211 p->error_indicator = 1;
27212 PyErr_NoMemory();
27213 D(p->level--);
27214 return NULL;
27215 }
27216 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27217 PyMem_Free(_children);
27218 _PyPegen_insert_memo(p, _start_mark, _loop0_144_type, _seq);
27219 D(p->level--);
27220 return _seq;
27221}
27222
27223// _loop0_145: (star_targets '=')
27224static asdl_seq *
27225_loop0_145_rule(Parser *p)
27226{
27227 D(p->level++);
27228 if (p->error_indicator) {
27229 D(p->level--);
27230 return NULL;
27231 }
27232 void *_res = NULL;
27233 int _mark = p->mark;
27234 int _start_mark = p->mark;
27235 void **_children = PyMem_Malloc(sizeof(void *));
27236 if (!_children) {
27237 p->error_indicator = 1;
27238 PyErr_NoMemory();
27239 D(p->level--);
27240 return NULL;
27241 }
27242 ssize_t _children_capacity = 1;
27243 ssize_t _n = 0;
27244 { // (star_targets '=')
27245 if (p->error_indicator) {
27246 D(p->level--);
27247 return NULL;
27248 }
27249 D(fprintf(stderr, "%*c> _loop0_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
27250 void *_tmp_176_var;
27251 while (
27252 (_tmp_176_var = _tmp_176_rule(p)) // star_targets '='
27253 )
27254 {
27255 _res = _tmp_176_var;
27256 if (_n == _children_capacity) {
27257 _children_capacity *= 2;
27258 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27259 if (!_new_children) {
27260 p->error_indicator = 1;
27261 PyErr_NoMemory();
27262 D(p->level--);
27263 return NULL;
27264 }
27265 _children = _new_children;
27266 }
27267 _children[_n++] = _res;
27268 _mark = p->mark;
27269 }
27270 p->mark = _mark;
27271 D(fprintf(stderr, "%*c%s _loop0_145[%d-%d]: %s failed!\n", p->level, ' ',
27272 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
27273 }
27274 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27275 if (!_seq) {
27276 PyMem_Free(_children);
27277 p->error_indicator = 1;
27278 PyErr_NoMemory();
27279 D(p->level--);
27280 return NULL;
27281 }
27282 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27283 PyMem_Free(_children);
27284 _PyPegen_insert_memo(p, _start_mark, _loop0_145_type, _seq);
27285 D(p->level--);
27286 return _seq;
27287}
27288
27289// _tmp_146: yield_expr | star_expressions
27290static void *
27291_tmp_146_rule(Parser *p)
27292{
27293 D(p->level++);
27294 if (p->error_indicator) {
27295 D(p->level--);
27296 return NULL;
27297 }
27298 void * _res = NULL;
27299 int _mark = p->mark;
27300 { // yield_expr
27301 if (p->error_indicator) {
27302 D(p->level--);
27303 return NULL;
27304 }
27305 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
27306 expr_ty yield_expr_var;
27307 if (
27308 (yield_expr_var = yield_expr_rule(p)) // yield_expr
27309 )
27310 {
27311 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
27312 _res = yield_expr_var;
27313 goto done;
27314 }
27315 p->mark = _mark;
27316 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
27317 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
27318 }
27319 { // star_expressions
27320 if (p->error_indicator) {
27321 D(p->level--);
27322 return NULL;
27323 }
27324 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
27325 expr_ty star_expressions_var;
27326 if (
27327 (star_expressions_var = star_expressions_rule(p)) // star_expressions
27328 )
27329 {
27330 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
27331 _res = star_expressions_var;
27332 goto done;
27333 }
27334 p->mark = _mark;
27335 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
27336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
27337 }
27338 _res = NULL;
27339 done:
27340 D(p->level--);
27341 return _res;
27342}
27343
27344// _tmp_147: '[' | '(' | '{'
27345static void *
27346_tmp_147_rule(Parser *p)
27347{
27348 D(p->level++);
27349 if (p->error_indicator) {
27350 D(p->level--);
27351 return NULL;
27352 }
27353 void * _res = NULL;
27354 int _mark = p->mark;
27355 { // '['
27356 if (p->error_indicator) {
27357 D(p->level--);
27358 return NULL;
27359 }
27360 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
27361 Token * _literal;
27362 if (
27363 (_literal = _PyPegen_expect_token(p, 9)) // token='['
27364 )
27365 {
27366 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
27367 _res = _literal;
27368 goto done;
27369 }
27370 p->mark = _mark;
27371 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
27372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
27373 }
27374 { // '('
27375 if (p->error_indicator) {
27376 D(p->level--);
27377 return NULL;
27378 }
27379 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
27380 Token * _literal;
27381 if (
27382 (_literal = _PyPegen_expect_token(p, 7)) // token='('
27383 )
27384 {
27385 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
27386 _res = _literal;
27387 goto done;
27388 }
27389 p->mark = _mark;
27390 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
27391 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
27392 }
27393 { // '{'
27394 if (p->error_indicator) {
27395 D(p->level--);
27396 return NULL;
27397 }
27398 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
27399 Token * _literal;
27400 if (
27401 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
27402 )
27403 {
27404 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
27405 _res = _literal;
27406 goto done;
27407 }
27408 p->mark = _mark;
27409 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
27410 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
27411 }
27412 _res = NULL;
27413 done:
27414 D(p->level--);
27415 return _res;
27416}
27417
27418// _tmp_148: '[' | '{'
27419static void *
27420_tmp_148_rule(Parser *p)
27421{
27422 D(p->level++);
27423 if (p->error_indicator) {
27424 D(p->level--);
27425 return NULL;
27426 }
27427 void * _res = NULL;
27428 int _mark = p->mark;
27429 { // '['
27430 if (p->error_indicator) {
27431 D(p->level--);
27432 return NULL;
27433 }
27434 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
27435 Token * _literal;
27436 if (
27437 (_literal = _PyPegen_expect_token(p, 9)) // token='['
27438 )
27439 {
27440 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
27441 _res = _literal;
27442 goto done;
27443 }
27444 p->mark = _mark;
27445 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
27446 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
27447 }
27448 { // '{'
27449 if (p->error_indicator) {
27450 D(p->level--);
27451 return NULL;
27452 }
27453 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
27454 Token * _literal;
27455 if (
27456 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
27457 )
27458 {
27459 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
27460 _res = _literal;
27461 goto done;
27462 }
27463 p->mark = _mark;
27464 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
27465 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
27466 }
27467 _res = NULL;
27468 done:
27469 D(p->level--);
27470 return _res;
27471}
27472
27473// _loop0_149: param_no_default
27474static asdl_seq *
27475_loop0_149_rule(Parser *p)
27476{
27477 D(p->level++);
27478 if (p->error_indicator) {
27479 D(p->level--);
27480 return NULL;
27481 }
27482 void *_res = NULL;
27483 int _mark = p->mark;
27484 int _start_mark = p->mark;
27485 void **_children = PyMem_Malloc(sizeof(void *));
27486 if (!_children) {
27487 p->error_indicator = 1;
27488 PyErr_NoMemory();
27489 D(p->level--);
27490 return NULL;
27491 }
27492 ssize_t _children_capacity = 1;
27493 ssize_t _n = 0;
27494 { // param_no_default
27495 if (p->error_indicator) {
27496 D(p->level--);
27497 return NULL;
27498 }
27499 D(fprintf(stderr, "%*c> _loop0_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
27500 arg_ty param_no_default_var;
27501 while (
27502 (param_no_default_var = param_no_default_rule(p)) // param_no_default
27503 )
27504 {
27505 _res = param_no_default_var;
27506 if (_n == _children_capacity) {
27507 _children_capacity *= 2;
27508 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27509 if (!_new_children) {
27510 p->error_indicator = 1;
27511 PyErr_NoMemory();
27512 D(p->level--);
27513 return NULL;
27514 }
27515 _children = _new_children;
27516 }
27517 _children[_n++] = _res;
27518 _mark = p->mark;
27519 }
27520 p->mark = _mark;
27521 D(fprintf(stderr, "%*c%s _loop0_149[%d-%d]: %s failed!\n", p->level, ' ',
27522 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
27523 }
27524 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27525 if (!_seq) {
27526 PyMem_Free(_children);
27527 p->error_indicator = 1;
27528 PyErr_NoMemory();
27529 D(p->level--);
27530 return NULL;
27531 }
27532 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27533 PyMem_Free(_children);
27534 _PyPegen_insert_memo(p, _start_mark, _loop0_149_type, _seq);
27535 D(p->level--);
27536 return _seq;
27537}
27538
27539// _loop1_150: param_with_default
27540static asdl_seq *
27541_loop1_150_rule(Parser *p)
27542{
27543 D(p->level++);
27544 if (p->error_indicator) {
27545 D(p->level--);
27546 return NULL;
27547 }
27548 void *_res = NULL;
27549 int _mark = p->mark;
27550 int _start_mark = p->mark;
27551 void **_children = PyMem_Malloc(sizeof(void *));
27552 if (!_children) {
27553 p->error_indicator = 1;
27554 PyErr_NoMemory();
27555 D(p->level--);
27556 return NULL;
27557 }
27558 ssize_t _children_capacity = 1;
27559 ssize_t _n = 0;
27560 { // param_with_default
27561 if (p->error_indicator) {
27562 D(p->level--);
27563 return NULL;
27564 }
27565 D(fprintf(stderr, "%*c> _loop1_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
27566 NameDefaultPair* param_with_default_var;
27567 while (
27568 (param_with_default_var = param_with_default_rule(p)) // param_with_default
27569 )
27570 {
27571 _res = param_with_default_var;
27572 if (_n == _children_capacity) {
27573 _children_capacity *= 2;
27574 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27575 if (!_new_children) {
27576 p->error_indicator = 1;
27577 PyErr_NoMemory();
27578 D(p->level--);
27579 return NULL;
27580 }
27581 _children = _new_children;
27582 }
27583 _children[_n++] = _res;
27584 _mark = p->mark;
27585 }
27586 p->mark = _mark;
27587 D(fprintf(stderr, "%*c%s _loop1_150[%d-%d]: %s failed!\n", p->level, ' ',
27588 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
27589 }
27590 if (_n == 0 || p->error_indicator) {
27591 PyMem_Free(_children);
27592 D(p->level--);
27593 return NULL;
27594 }
27595 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27596 if (!_seq) {
27597 PyMem_Free(_children);
27598 p->error_indicator = 1;
27599 PyErr_NoMemory();
27600 D(p->level--);
27601 return NULL;
27602 }
27603 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27604 PyMem_Free(_children);
27605 _PyPegen_insert_memo(p, _start_mark, _loop1_150_type, _seq);
27606 D(p->level--);
27607 return _seq;
27608}
27609
27610// _loop0_151: lambda_param_no_default
27611static asdl_seq *
27612_loop0_151_rule(Parser *p)
27613{
27614 D(p->level++);
27615 if (p->error_indicator) {
27616 D(p->level--);
27617 return NULL;
27618 }
27619 void *_res = NULL;
27620 int _mark = p->mark;
27621 int _start_mark = p->mark;
27622 void **_children = PyMem_Malloc(sizeof(void *));
27623 if (!_children) {
27624 p->error_indicator = 1;
27625 PyErr_NoMemory();
27626 D(p->level--);
27627 return NULL;
27628 }
27629 ssize_t _children_capacity = 1;
27630 ssize_t _n = 0;
27631 { // lambda_param_no_default
27632 if (p->error_indicator) {
27633 D(p->level--);
27634 return NULL;
27635 }
27636 D(fprintf(stderr, "%*c> _loop0_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
27637 arg_ty lambda_param_no_default_var;
27638 while (
27639 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
27640 )
27641 {
27642 _res = lambda_param_no_default_var;
27643 if (_n == _children_capacity) {
27644 _children_capacity *= 2;
27645 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27646 if (!_new_children) {
27647 p->error_indicator = 1;
27648 PyErr_NoMemory();
27649 D(p->level--);
27650 return NULL;
27651 }
27652 _children = _new_children;
27653 }
27654 _children[_n++] = _res;
27655 _mark = p->mark;
27656 }
27657 p->mark = _mark;
27658 D(fprintf(stderr, "%*c%s _loop0_151[%d-%d]: %s failed!\n", p->level, ' ',
27659 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
27660 }
27661 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27662 if (!_seq) {
27663 PyMem_Free(_children);
27664 p->error_indicator = 1;
27665 PyErr_NoMemory();
27666 D(p->level--);
27667 return NULL;
27668 }
27669 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27670 PyMem_Free(_children);
27671 _PyPegen_insert_memo(p, _start_mark, _loop0_151_type, _seq);
27672 D(p->level--);
27673 return _seq;
27674}
27675
27676// _loop1_152: lambda_param_with_default
27677static asdl_seq *
27678_loop1_152_rule(Parser *p)
27679{
27680 D(p->level++);
27681 if (p->error_indicator) {
27682 D(p->level--);
27683 return NULL;
27684 }
27685 void *_res = NULL;
27686 int _mark = p->mark;
27687 int _start_mark = p->mark;
27688 void **_children = PyMem_Malloc(sizeof(void *));
27689 if (!_children) {
27690 p->error_indicator = 1;
27691 PyErr_NoMemory();
27692 D(p->level--);
27693 return NULL;
27694 }
27695 ssize_t _children_capacity = 1;
27696 ssize_t _n = 0;
27697 { // lambda_param_with_default
27698 if (p->error_indicator) {
27699 D(p->level--);
27700 return NULL;
27701 }
27702 D(fprintf(stderr, "%*c> _loop1_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
27703 NameDefaultPair* lambda_param_with_default_var;
27704 while (
27705 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
27706 )
27707 {
27708 _res = lambda_param_with_default_var;
27709 if (_n == _children_capacity) {
27710 _children_capacity *= 2;
27711 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27712 if (!_new_children) {
27713 p->error_indicator = 1;
27714 PyErr_NoMemory();
27715 D(p->level--);
27716 return NULL;
27717 }
27718 _children = _new_children;
27719 }
27720 _children[_n++] = _res;
27721 _mark = p->mark;
27722 }
27723 p->mark = _mark;
27724 D(fprintf(stderr, "%*c%s _loop1_152[%d-%d]: %s failed!\n", p->level, ' ',
27725 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
27726 }
27727 if (_n == 0 || p->error_indicator) {
27728 PyMem_Free(_children);
27729 D(p->level--);
27730 return NULL;
27731 }
27732 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27733 if (!_seq) {
27734 PyMem_Free(_children);
27735 p->error_indicator = 1;
27736 PyErr_NoMemory();
27737 D(p->level--);
27738 return NULL;
27739 }
27740 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
27741 PyMem_Free(_children);
27742 _PyPegen_insert_memo(p, _start_mark, _loop1_152_type, _seq);
27743 D(p->level--);
27744 return _seq;
27745}
27746
27747// _tmp_153: ')' | ',' (')' | '**')
27748static void *
27749_tmp_153_rule(Parser *p)
27750{
27751 D(p->level++);
27752 if (p->error_indicator) {
27753 D(p->level--);
27754 return NULL;
27755 }
27756 void * _res = NULL;
27757 int _mark = p->mark;
27758 { // ')'
27759 if (p->error_indicator) {
27760 D(p->level--);
27761 return NULL;
27762 }
27763 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
27764 Token * _literal;
27765 if (
27766 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
27767 )
27768 {
27769 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
27770 _res = _literal;
27771 goto done;
27772 }
27773 p->mark = _mark;
27774 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
27775 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
27776 }
27777 { // ',' (')' | '**')
27778 if (p->error_indicator) {
27779 D(p->level--);
27780 return NULL;
27781 }
27782 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
27783 Token * _literal;
27784 void *_tmp_177_var;
27785 if (
27786 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27787 &&
27788 (_tmp_177_var = _tmp_177_rule(p)) // ')' | '**'
27789 )
27790 {
27791 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
27792 _res = _PyPegen_dummy_name(p, _literal, _tmp_177_var);
27793 goto done;
27794 }
27795 p->mark = _mark;
27796 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
27797 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
27798 }
27799 _res = NULL;
27800 done:
27801 D(p->level--);
27802 return _res;
27803}
27804
27805// _tmp_154: ':' | ',' (':' | '**')
27806static void *
27807_tmp_154_rule(Parser *p)
27808{
27809 D(p->level++);
27810 if (p->error_indicator) {
27811 D(p->level--);
27812 return NULL;
27813 }
27814 void * _res = NULL;
27815 int _mark = p->mark;
27816 { // ':'
27817 if (p->error_indicator) {
27818 D(p->level--);
27819 return NULL;
27820 }
27821 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
27822 Token * _literal;
27823 if (
27824 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
27825 )
27826 {
27827 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
27828 _res = _literal;
27829 goto done;
27830 }
27831 p->mark = _mark;
27832 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
27833 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
27834 }
27835 { // ',' (':' | '**')
27836 if (p->error_indicator) {
27837 D(p->level--);
27838 return NULL;
27839 }
27840 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
27841 Token * _literal;
27842 void *_tmp_178_var;
27843 if (
27844 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27845 &&
27846 (_tmp_178_var = _tmp_178_rule(p)) // ':' | '**'
27847 )
27848 {
27849 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
27850 _res = _PyPegen_dummy_name(p, _literal, _tmp_178_var);
27851 goto done;
27852 }
27853 p->mark = _mark;
27854 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
27855 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
27856 }
27857 _res = NULL;
27858 done:
27859 D(p->level--);
27860 return _res;
27861}
27862
27863// _tmp_155: ',' | ')' | ':'
27864static void *
27865_tmp_155_rule(Parser *p)
27866{
27867 D(p->level++);
27868 if (p->error_indicator) {
27869 D(p->level--);
27870 return NULL;
27871 }
27872 void * _res = NULL;
27873 int _mark = p->mark;
27874 { // ','
27875 if (p->error_indicator) {
27876 D(p->level--);
27877 return NULL;
27878 }
27879 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
27880 Token * _literal;
27881 if (
27882 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27883 )
27884 {
27885 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
27886 _res = _literal;
27887 goto done;
27888 }
27889 p->mark = _mark;
27890 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
27891 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
27892 }
27893 { // ')'
27894 if (p->error_indicator) {
27895 D(p->level--);
27896 return NULL;
27897 }
27898 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
27899 Token * _literal;
27900 if (
27901 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
27902 )
27903 {
27904 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
27905 _res = _literal;
27906 goto done;
27907 }
27908 p->mark = _mark;
27909 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
27910 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
27911 }
27912 { // ':'
27913 if (p->error_indicator) {
27914 D(p->level--);
27915 return NULL;
27916 }
27917 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
27918 Token * _literal;
27919 if (
27920 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
27921 )
27922 {
27923 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
27924 _res = _literal;
27925 goto done;
27926 }
27927 p->mark = _mark;
27928 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
27929 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
27930 }
27931 _res = NULL;
27932 done:
27933 D(p->level--);
27934 return _res;
27935}
27936
27937// _loop0_157: ',' (expression ['as' star_target])
27938static asdl_seq *
27939_loop0_157_rule(Parser *p)
27940{
27941 D(p->level++);
27942 if (p->error_indicator) {
27943 D(p->level--);
27944 return NULL;
27945 }
27946 void *_res = NULL;
27947 int _mark = p->mark;
27948 int _start_mark = p->mark;
27949 void **_children = PyMem_Malloc(sizeof(void *));
27950 if (!_children) {
27951 p->error_indicator = 1;
27952 PyErr_NoMemory();
27953 D(p->level--);
27954 return NULL;
27955 }
27956 ssize_t _children_capacity = 1;
27957 ssize_t _n = 0;
27958 { // ',' (expression ['as' star_target])
27959 if (p->error_indicator) {
27960 D(p->level--);
27961 return NULL;
27962 }
27963 D(fprintf(stderr, "%*c> _loop0_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000027964 Token * _literal;
27965 void *elem;
27966 while (
27967 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27968 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027969 (elem = _tmp_179_rule(p)) // expression ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000027970 )
27971 {
27972 _res = elem;
27973 if (_res == NULL && PyErr_Occurred()) {
27974 p->error_indicator = 1;
27975 PyMem_Free(_children);
27976 D(p->level--);
27977 return NULL;
27978 }
27979 if (_n == _children_capacity) {
27980 _children_capacity *= 2;
27981 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27982 if (!_new_children) {
27983 p->error_indicator = 1;
27984 PyErr_NoMemory();
27985 D(p->level--);
27986 return NULL;
27987 }
27988 _children = _new_children;
27989 }
27990 _children[_n++] = _res;
27991 _mark = p->mark;
27992 }
27993 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027994 D(fprintf(stderr, "%*c%s _loop0_157[%d-%d]: %s failed!\n", p->level, ' ',
27995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
27996 }
27997 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
27998 if (!_seq) {
27999 PyMem_Free(_children);
28000 p->error_indicator = 1;
28001 PyErr_NoMemory();
28002 D(p->level--);
28003 return NULL;
28004 }
28005 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28006 PyMem_Free(_children);
28007 _PyPegen_insert_memo(p, _start_mark, _loop0_157_type, _seq);
28008 D(p->level--);
28009 return _seq;
28010}
28011
28012// _gather_156: (expression ['as' star_target]) _loop0_157
28013static asdl_seq *
28014_gather_156_rule(Parser *p)
28015{
28016 D(p->level++);
28017 if (p->error_indicator) {
28018 D(p->level--);
28019 return NULL;
28020 }
28021 asdl_seq * _res = NULL;
28022 int _mark = p->mark;
28023 { // (expression ['as' star_target]) _loop0_157
28024 if (p->error_indicator) {
28025 D(p->level--);
28026 return NULL;
28027 }
28028 D(fprintf(stderr, "%*c> _gather_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_157"));
28029 void *elem;
28030 asdl_seq * seq;
28031 if (
28032 (elem = _tmp_179_rule(p)) // expression ['as' star_target]
28033 &&
28034 (seq = _loop0_157_rule(p)) // _loop0_157
28035 )
28036 {
28037 D(fprintf(stderr, "%*c+ _gather_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_157"));
28038 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28039 goto done;
28040 }
28041 p->mark = _mark;
28042 D(fprintf(stderr, "%*c%s _gather_156[%d-%d]: %s failed!\n", p->level, ' ',
28043 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_157"));
28044 }
28045 _res = NULL;
28046 done:
28047 D(p->level--);
28048 return _res;
28049}
28050
28051// _loop0_159: ',' (expressions ['as' star_target])
28052static asdl_seq *
28053_loop0_159_rule(Parser *p)
28054{
28055 D(p->level++);
28056 if (p->error_indicator) {
28057 D(p->level--);
28058 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();
28067 D(p->level--);
28068 return NULL;
28069 }
28070 ssize_t _children_capacity = 1;
28071 ssize_t _n = 0;
28072 { // ',' (expressions ['as' star_target])
28073 if (p->error_indicator) {
28074 D(p->level--);
28075 return NULL;
28076 }
28077 D(fprintf(stderr, "%*c> _loop0_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
28078 Token * _literal;
28079 void *elem;
28080 while (
28081 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28082 &&
28083 (elem = _tmp_180_rule(p)) // expressions ['as' star_target]
28084 )
28085 {
28086 _res = elem;
28087 if (_res == NULL && PyErr_Occurred()) {
28088 p->error_indicator = 1;
28089 PyMem_Free(_children);
28090 D(p->level--);
28091 return NULL;
28092 }
28093 if (_n == _children_capacity) {
28094 _children_capacity *= 2;
28095 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28096 if (!_new_children) {
28097 p->error_indicator = 1;
28098 PyErr_NoMemory();
28099 D(p->level--);
28100 return NULL;
28101 }
28102 _children = _new_children;
28103 }
28104 _children[_n++] = _res;
28105 _mark = p->mark;
28106 }
28107 p->mark = _mark;
28108 D(fprintf(stderr, "%*c%s _loop0_159[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000028109 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
28110 }
28111 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28112 if (!_seq) {
28113 PyMem_Free(_children);
28114 p->error_indicator = 1;
28115 PyErr_NoMemory();
28116 D(p->level--);
28117 return NULL;
28118 }
28119 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28120 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028121 _PyPegen_insert_memo(p, _start_mark, _loop0_159_type, _seq);
Pablo Galindo58fb1562021-02-02 19:54:22 +000028122 D(p->level--);
28123 return _seq;
28124}
28125
Brandt Bucher145bf262021-02-26 14:51:55 -080028126// _gather_158: (expressions ['as' star_target]) _loop0_159
Pablo Galindo58fb1562021-02-02 19:54:22 +000028127static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028128_gather_158_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000028129{
28130 D(p->level++);
28131 if (p->error_indicator) {
28132 D(p->level--);
28133 return NULL;
28134 }
28135 asdl_seq * _res = NULL;
28136 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028137 { // (expressions ['as' star_target]) _loop0_159
Pablo Galindo58fb1562021-02-02 19:54:22 +000028138 if (p->error_indicator) {
28139 D(p->level--);
28140 return NULL;
28141 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028142 D(fprintf(stderr, "%*c> _gather_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_159"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000028143 void *elem;
28144 asdl_seq * seq;
28145 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028146 (elem = _tmp_180_rule(p)) // expressions ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000028147 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028148 (seq = _loop0_159_rule(p)) // _loop0_159
Pablo Galindo58fb1562021-02-02 19:54:22 +000028149 )
28150 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028151 D(fprintf(stderr, "%*c+ _gather_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_159"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000028152 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28153 goto done;
28154 }
28155 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028156 D(fprintf(stderr, "%*c%s _gather_158[%d-%d]: %s failed!\n", p->level, ' ',
28157 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_159"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000028158 }
28159 _res = NULL;
28160 done:
28161 D(p->level--);
28162 return _res;
28163}
28164
Brandt Bucher145bf262021-02-26 14:51:55 -080028165// _tmp_160: 'as' NAME
Pablo Galindo58fb1562021-02-02 19:54:22 +000028166static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028167_tmp_160_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000028168{
28169 D(p->level++);
28170 if (p->error_indicator) {
28171 D(p->level--);
28172 return NULL;
28173 }
28174 void * _res = NULL;
28175 int _mark = p->mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000028176 { // 'as' NAME
28177 if (p->error_indicator) {
28178 D(p->level--);
28179 return NULL;
28180 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028181 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028182 Token * _keyword;
28183 expr_ty name_var;
28184 if (
28185 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
28186 &&
28187 (name_var = _PyPegen_name_token(p)) // NAME
28188 )
28189 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028190 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028191 _res = _PyPegen_dummy_name(p, _keyword, name_var);
28192 goto done;
28193 }
28194 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028195 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000028196 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
28197 }
28198 _res = NULL;
28199 done:
28200 D(p->level--);
28201 return _res;
28202}
28203
Brandt Bucher145bf262021-02-26 14:51:55 -080028204// _tmp_161: 'as' NAME
Pablo Galindo206cbda2021-02-07 18:42:21 +000028205static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028206_tmp_161_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000028207{
28208 D(p->level++);
28209 if (p->error_indicator) {
28210 D(p->level--);
28211 return NULL;
28212 }
28213 void * _res = NULL;
28214 int _mark = p->mark;
28215 { // 'as' NAME
28216 if (p->error_indicator) {
28217 D(p->level--);
28218 return NULL;
28219 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028220 D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028221 Token * _keyword;
28222 expr_ty name_var;
28223 if (
28224 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
28225 &&
28226 (name_var = _PyPegen_name_token(p)) // NAME
28227 )
28228 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028229 D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028230 _res = _PyPegen_dummy_name(p, _keyword, name_var);
28231 goto done;
28232 }
28233 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028234 D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000028235 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
28236 }
28237 _res = NULL;
28238 done:
28239 D(p->level--);
28240 return _res;
28241}
28242
Brandt Bucher145bf262021-02-26 14:51:55 -080028243// _tmp_162: star_targets '='
Pablo Galindo206cbda2021-02-07 18:42:21 +000028244static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028245_tmp_162_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000028246{
28247 D(p->level++);
28248 if (p->error_indicator) {
28249 D(p->level--);
28250 return NULL;
28251 }
28252 void * _res = NULL;
28253 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028254 { // star_targets '='
28255 if (p->error_indicator) {
28256 D(p->level--);
28257 return NULL;
28258 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028259 D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028260 Token * _literal;
28261 expr_ty z;
28262 if (
28263 (z = star_targets_rule(p)) // star_targets
28264 &&
28265 (_literal = _PyPegen_expect_token(p, 22)) // token='='
28266 )
28267 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028268 D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028269 _res = z;
28270 if (_res == NULL && PyErr_Occurred()) {
28271 p->error_indicator = 1;
28272 D(p->level--);
28273 return NULL;
28274 }
28275 goto done;
28276 }
28277 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028278 D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028279 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
28280 }
28281 _res = NULL;
28282 done:
28283 D(p->level--);
28284 return _res;
28285}
28286
Brandt Bucher145bf262021-02-26 14:51:55 -080028287// _tmp_163: '.' | '...'
Pablo Galindo835f14f2021-01-31 22:52:56 +000028288static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028289_tmp_163_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000028290{
28291 D(p->level++);
28292 if (p->error_indicator) {
28293 D(p->level--);
28294 return NULL;
28295 }
28296 void * _res = NULL;
28297 int _mark = p->mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000028298 { // '.'
28299 if (p->error_indicator) {
28300 D(p->level--);
28301 return NULL;
28302 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028303 D(fprintf(stderr, "%*c> _tmp_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028304 Token * _literal;
28305 if (
28306 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
28307 )
28308 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028309 D(fprintf(stderr, "%*c+ _tmp_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028310 _res = _literal;
28311 goto done;
28312 }
28313 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028314 D(fprintf(stderr, "%*c%s _tmp_163[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000028315 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
28316 }
28317 { // '...'
28318 if (p->error_indicator) {
28319 D(p->level--);
28320 return NULL;
28321 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028322 D(fprintf(stderr, "%*c> _tmp_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028323 Token * _literal;
28324 if (
28325 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
28326 )
28327 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028328 D(fprintf(stderr, "%*c+ _tmp_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028329 _res = _literal;
28330 goto done;
28331 }
28332 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028333 D(fprintf(stderr, "%*c%s _tmp_163[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000028334 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
28335 }
28336 _res = NULL;
28337 done:
28338 D(p->level--);
28339 return _res;
28340}
28341
Brandt Bucher145bf262021-02-26 14:51:55 -080028342// _tmp_164: '.' | '...'
Pablo Galindo206cbda2021-02-07 18:42:21 +000028343static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028344_tmp_164_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000028345{
28346 D(p->level++);
28347 if (p->error_indicator) {
28348 D(p->level--);
28349 return NULL;
28350 }
28351 void * _res = NULL;
28352 int _mark = p->mark;
28353 { // '.'
28354 if (p->error_indicator) {
28355 D(p->level--);
28356 return NULL;
28357 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028358 D(fprintf(stderr, "%*c> _tmp_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028359 Token * _literal;
28360 if (
28361 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
28362 )
28363 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028364 D(fprintf(stderr, "%*c+ _tmp_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028365 _res = _literal;
28366 goto done;
28367 }
28368 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028369 D(fprintf(stderr, "%*c%s _tmp_164[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000028370 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
28371 }
28372 { // '...'
28373 if (p->error_indicator) {
28374 D(p->level--);
28375 return NULL;
28376 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028377 D(fprintf(stderr, "%*c> _tmp_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028378 Token * _literal;
28379 if (
28380 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
28381 )
28382 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028383 D(fprintf(stderr, "%*c+ _tmp_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028384 _res = _literal;
28385 goto done;
28386 }
28387 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028388 D(fprintf(stderr, "%*c%s _tmp_164[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000028389 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
28390 }
28391 _res = NULL;
28392 done:
28393 D(p->level--);
28394 return _res;
28395}
28396
Brandt Bucher145bf262021-02-26 14:51:55 -080028397// _tmp_165: '@' named_expression NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000028398static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028399_tmp_165_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000028400{
28401 D(p->level++);
28402 if (p->error_indicator) {
28403 D(p->level--);
28404 return NULL;
28405 }
28406 void * _res = NULL;
28407 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028408 { // '@' named_expression NEWLINE
28409 if (p->error_indicator) {
28410 D(p->level--);
28411 return NULL;
28412 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028413 D(fprintf(stderr, "%*c> _tmp_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028414 Token * _literal;
28415 expr_ty f;
28416 Token * newline_var;
28417 if (
28418 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
28419 &&
28420 (f = named_expression_rule(p)) // named_expression
28421 &&
28422 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
28423 )
28424 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028425 D(fprintf(stderr, "%*c+ _tmp_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028426 _res = f;
28427 if (_res == NULL && PyErr_Occurred()) {
28428 p->error_indicator = 1;
28429 D(p->level--);
28430 return NULL;
28431 }
28432 goto done;
28433 }
28434 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028435 D(fprintf(stderr, "%*c%s _tmp_165[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028436 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
28437 }
28438 _res = NULL;
28439 done:
28440 D(p->level--);
28441 return _res;
28442}
28443
Brandt Bucher145bf262021-02-26 14:51:55 -080028444// _tmp_166: ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028445static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028446_tmp_166_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028447{
28448 D(p->level++);
28449 if (p->error_indicator) {
28450 D(p->level--);
28451 return NULL;
28452 }
28453 void * _res = NULL;
28454 int _mark = p->mark;
28455 { // ',' star_expression
28456 if (p->error_indicator) {
28457 D(p->level--);
28458 return NULL;
28459 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028460 D(fprintf(stderr, "%*c> _tmp_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028461 Token * _literal;
28462 expr_ty c;
28463 if (
28464 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28465 &&
28466 (c = star_expression_rule(p)) // star_expression
28467 )
28468 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028469 D(fprintf(stderr, "%*c+ _tmp_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028470 _res = c;
28471 if (_res == NULL && PyErr_Occurred()) {
28472 p->error_indicator = 1;
28473 D(p->level--);
28474 return NULL;
28475 }
28476 goto done;
28477 }
28478 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028479 D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028480 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
28481 }
28482 _res = NULL;
28483 done:
28484 D(p->level--);
28485 return _res;
28486}
28487
Brandt Bucher145bf262021-02-26 14:51:55 -080028488// _tmp_167: ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028489static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028490_tmp_167_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028491{
28492 D(p->level++);
28493 if (p->error_indicator) {
28494 D(p->level--);
28495 return NULL;
28496 }
28497 void * _res = NULL;
28498 int _mark = p->mark;
28499 { // ',' expression
28500 if (p->error_indicator) {
28501 D(p->level--);
28502 return NULL;
28503 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028504 D(fprintf(stderr, "%*c> _tmp_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028505 Token * _literal;
28506 expr_ty c;
28507 if (
28508 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28509 &&
28510 (c = expression_rule(p)) // expression
28511 )
28512 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028513 D(fprintf(stderr, "%*c+ _tmp_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028514 _res = c;
28515 if (_res == NULL && PyErr_Occurred()) {
28516 p->error_indicator = 1;
28517 D(p->level--);
28518 return NULL;
28519 }
28520 goto done;
28521 }
28522 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028523 D(fprintf(stderr, "%*c%s _tmp_167[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028524 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
28525 }
28526 _res = NULL;
28527 done:
28528 D(p->level--);
28529 return _res;
28530}
28531
Brandt Bucher145bf262021-02-26 14:51:55 -080028532// _tmp_168: 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028533static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028534_tmp_168_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028535{
28536 D(p->level++);
28537 if (p->error_indicator) {
28538 D(p->level--);
28539 return NULL;
28540 }
28541 void * _res = NULL;
28542 int _mark = p->mark;
28543 { // 'or' conjunction
28544 if (p->error_indicator) {
28545 D(p->level--);
28546 return NULL;
28547 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028548 D(fprintf(stderr, "%*c> _tmp_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028549 Token * _keyword;
28550 expr_ty c;
28551 if (
28552 (_keyword = _PyPegen_expect_token(p, 531)) // token='or'
28553 &&
28554 (c = conjunction_rule(p)) // conjunction
28555 )
28556 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028557 D(fprintf(stderr, "%*c+ _tmp_168[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028558 _res = c;
28559 if (_res == NULL && PyErr_Occurred()) {
28560 p->error_indicator = 1;
28561 D(p->level--);
28562 return NULL;
28563 }
28564 goto done;
28565 }
28566 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028567 D(fprintf(stderr, "%*c%s _tmp_168[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028568 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
28569 }
28570 _res = NULL;
28571 done:
28572 D(p->level--);
28573 return _res;
28574}
28575
Brandt Bucher145bf262021-02-26 14:51:55 -080028576// _tmp_169: 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028577static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028578_tmp_169_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028579{
28580 D(p->level++);
28581 if (p->error_indicator) {
28582 D(p->level--);
28583 return NULL;
28584 }
28585 void * _res = NULL;
28586 int _mark = p->mark;
28587 { // 'and' inversion
28588 if (p->error_indicator) {
28589 D(p->level--);
28590 return NULL;
28591 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028592 D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028593 Token * _keyword;
28594 expr_ty c;
28595 if (
28596 (_keyword = _PyPegen_expect_token(p, 532)) // token='and'
28597 &&
28598 (c = inversion_rule(p)) // inversion
28599 )
28600 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028601 D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028602 _res = c;
28603 if (_res == NULL && PyErr_Occurred()) {
28604 p->error_indicator = 1;
28605 D(p->level--);
28606 return NULL;
28607 }
28608 goto done;
28609 }
28610 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028611 D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000028612 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028613 }
28614 _res = NULL;
28615 done:
28616 D(p->level--);
28617 return _res;
28618}
28619
Brandt Bucher145bf262021-02-26 14:51:55 -080028620// _tmp_170: 'if' disjunction
Pablo Galindo835f14f2021-01-31 22:52:56 +000028621static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028622_tmp_170_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000028623{
28624 D(p->level++);
28625 if (p->error_indicator) {
28626 D(p->level--);
28627 return NULL;
28628 }
28629 void * _res = NULL;
28630 int _mark = p->mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000028631 { // 'if' disjunction
28632 if (p->error_indicator) {
28633 D(p->level--);
28634 return NULL;
28635 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028636 D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028637 Token * _keyword;
28638 expr_ty z;
28639 if (
28640 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
28641 &&
28642 (z = disjunction_rule(p)) // disjunction
28643 )
28644 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028645 D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028646 _res = z;
28647 if (_res == NULL && PyErr_Occurred()) {
28648 p->error_indicator = 1;
28649 D(p->level--);
28650 return NULL;
28651 }
28652 goto done;
28653 }
28654 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028655 D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000028656 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
28657 }
28658 _res = NULL;
28659 done:
28660 D(p->level--);
28661 return _res;
28662}
28663
Brandt Bucher145bf262021-02-26 14:51:55 -080028664// _tmp_171: 'if' disjunction
Pablo Galindo206cbda2021-02-07 18:42:21 +000028665static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028666_tmp_171_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000028667{
28668 D(p->level++);
28669 if (p->error_indicator) {
28670 D(p->level--);
28671 return NULL;
28672 }
28673 void * _res = NULL;
28674 int _mark = p->mark;
28675 { // 'if' disjunction
28676 if (p->error_indicator) {
28677 D(p->level--);
28678 return NULL;
28679 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028680 D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028681 Token * _keyword;
28682 expr_ty z;
28683 if (
28684 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
28685 &&
28686 (z = disjunction_rule(p)) // disjunction
28687 )
28688 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028689 D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028690 _res = z;
28691 if (_res == NULL && PyErr_Occurred()) {
28692 p->error_indicator = 1;
28693 D(p->level--);
28694 return NULL;
28695 }
28696 goto done;
28697 }
28698 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028699 D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000028700 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
28701 }
28702 _res = NULL;
28703 done:
28704 D(p->level--);
28705 return _res;
28706}
28707
Brandt Bucher145bf262021-02-26 14:51:55 -080028708// _tmp_172: starred_expression | named_expression !'='
Pablo Galindo206cbda2021-02-07 18:42:21 +000028709static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028710_tmp_172_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000028711{
28712 D(p->level++);
28713 if (p->error_indicator) {
28714 D(p->level--);
28715 return NULL;
28716 }
28717 void * _res = NULL;
28718 int _mark = p->mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010028719 { // starred_expression
28720 if (p->error_indicator) {
28721 D(p->level--);
28722 return NULL;
28723 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028724 D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010028725 expr_ty starred_expression_var;
28726 if (
28727 (starred_expression_var = starred_expression_rule(p)) // starred_expression
28728 )
28729 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028730 D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010028731 _res = starred_expression_var;
28732 goto done;
28733 }
28734 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028735 D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010028736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
28737 }
28738 { // named_expression !'='
28739 if (p->error_indicator) {
28740 D(p->level--);
28741 return NULL;
28742 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028743 D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010028744 expr_ty named_expression_var;
28745 if (
28746 (named_expression_var = named_expression_rule(p)) // named_expression
28747 &&
28748 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
28749 )
28750 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028751 D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010028752 _res = named_expression_var;
28753 goto done;
28754 }
28755 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028756 D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000028757 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression !'='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028758 }
28759 _res = NULL;
28760 done:
28761 D(p->level--);
28762 return _res;
28763}
28764
Brandt Bucher145bf262021-02-26 14:51:55 -080028765// _tmp_173: ',' star_target
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028766static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028767_tmp_173_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028768{
28769 D(p->level++);
28770 if (p->error_indicator) {
28771 D(p->level--);
28772 return NULL;
28773 }
28774 void * _res = NULL;
28775 int _mark = p->mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000028776 { // ',' star_target
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028777 if (p->error_indicator) {
28778 D(p->level--);
28779 return NULL;
28780 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028781 D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028782 Token * _literal;
Pablo Galindo206cbda2021-02-07 18:42:21 +000028783 expr_ty c;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028784 if (
Pablo Galindo206cbda2021-02-07 18:42:21 +000028785 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028786 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +000028787 (c = star_target_rule(p)) // star_target
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028788 )
28789 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028790 D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028791 _res = c;
28792 if (_res == NULL && PyErr_Occurred()) {
28793 p->error_indicator = 1;
28794 D(p->level--);
28795 return NULL;
28796 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028797 goto done;
28798 }
28799 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028800 D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000028801 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028802 }
28803 _res = NULL;
28804 done:
28805 D(p->level--);
28806 return _res;
28807}
28808
Brandt Bucher145bf262021-02-26 14:51:55 -080028809// _tmp_174: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028810static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028811_tmp_174_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028812{
28813 D(p->level++);
28814 if (p->error_indicator) {
28815 D(p->level--);
28816 return NULL;
28817 }
28818 void * _res = NULL;
28819 int _mark = p->mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000028820 { // ',' star_target
28821 if (p->error_indicator) {
28822 D(p->level--);
28823 return NULL;
28824 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028825 D(fprintf(stderr, "%*c> _tmp_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028826 Token * _literal;
28827 expr_ty c;
28828 if (
28829 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28830 &&
28831 (c = star_target_rule(p)) // star_target
28832 )
28833 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028834 D(fprintf(stderr, "%*c+ _tmp_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028835 _res = c;
28836 if (_res == NULL && PyErr_Occurred()) {
28837 p->error_indicator = 1;
28838 D(p->level--);
28839 return NULL;
28840 }
28841 goto done;
28842 }
28843 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028844 D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000028845 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
28846 }
28847 _res = NULL;
28848 done:
28849 D(p->level--);
28850 return _res;
28851}
28852
Brandt Bucher145bf262021-02-26 14:51:55 -080028853// _tmp_175: star_targets '='
Pablo Galindo206cbda2021-02-07 18:42:21 +000028854static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028855_tmp_175_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000028856{
28857 D(p->level++);
28858 if (p->error_indicator) {
28859 D(p->level--);
28860 return NULL;
28861 }
28862 void * _res = NULL;
28863 int _mark = p->mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000028864 { // star_targets '='
28865 if (p->error_indicator) {
28866 D(p->level--);
28867 return NULL;
28868 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028869 D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000028870 Token * _literal;
28871 expr_ty star_targets_var;
28872 if (
28873 (star_targets_var = star_targets_rule(p)) // star_targets
28874 &&
28875 (_literal = _PyPegen_expect_token(p, 22)) // token='='
28876 )
28877 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028878 D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000028879 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
28880 goto done;
28881 }
28882 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028883 D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000028884 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
28885 }
28886 _res = NULL;
28887 done:
28888 D(p->level--);
28889 return _res;
28890}
28891
Brandt Bucher145bf262021-02-26 14:51:55 -080028892// _tmp_176: star_targets '='
Pablo Galindo835f14f2021-01-31 22:52:56 +000028893static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028894_tmp_176_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000028895{
28896 D(p->level++);
28897 if (p->error_indicator) {
28898 D(p->level--);
28899 return NULL;
28900 }
28901 void * _res = NULL;
28902 int _mark = p->mark;
28903 { // star_targets '='
28904 if (p->error_indicator) {
28905 D(p->level--);
28906 return NULL;
28907 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028908 D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028909 Token * _literal;
28910 expr_ty star_targets_var;
28911 if (
28912 (star_targets_var = star_targets_rule(p)) // star_targets
28913 &&
28914 (_literal = _PyPegen_expect_token(p, 22)) // token='='
28915 )
28916 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028917 D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000028918 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
28919 goto done;
28920 }
28921 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028922 D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000028923 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
28924 }
28925 _res = NULL;
28926 done:
28927 D(p->level--);
28928 return _res;
28929}
28930
Brandt Bucher145bf262021-02-26 14:51:55 -080028931// _tmp_177: ')' | '**'
Pablo Galindo206cbda2021-02-07 18:42:21 +000028932static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028933_tmp_177_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000028934{
28935 D(p->level++);
28936 if (p->error_indicator) {
28937 D(p->level--);
28938 return NULL;
28939 }
28940 void * _res = NULL;
28941 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028942 { // ')'
28943 if (p->error_indicator) {
28944 D(p->level--);
28945 return NULL;
28946 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028947 D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028948 Token * _literal;
28949 if (
28950 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
28951 )
28952 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028953 D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028954 _res = _literal;
28955 goto done;
28956 }
28957 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028958 D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000028959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028960 }
28961 { // '**'
28962 if (p->error_indicator) {
28963 D(p->level--);
28964 return NULL;
28965 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028966 D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028967 Token * _literal;
28968 if (
28969 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
28970 )
28971 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028972 D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028973 _res = _literal;
28974 goto done;
28975 }
28976 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028977 D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028978 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
28979 }
28980 _res = NULL;
28981 done:
28982 D(p->level--);
28983 return _res;
28984}
28985
Brandt Bucher145bf262021-02-26 14:51:55 -080028986// _tmp_178: ':' | '**'
Pablo Galindo835f14f2021-01-31 22:52:56 +000028987static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028988_tmp_178_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000028989{
28990 D(p->level++);
28991 if (p->error_indicator) {
28992 D(p->level--);
28993 return NULL;
28994 }
28995 void * _res = NULL;
28996 int _mark = p->mark;
28997 { // ':'
28998 if (p->error_indicator) {
28999 D(p->level--);
29000 return NULL;
29001 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029002 D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000029003 Token * _literal;
29004 if (
29005 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
29006 )
29007 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029008 D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000029009 _res = _literal;
29010 goto done;
29011 }
29012 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029013 D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000029014 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
29015 }
29016 { // '**'
29017 if (p->error_indicator) {
29018 D(p->level--);
29019 return NULL;
29020 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029021 D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000029022 Token * _literal;
29023 if (
29024 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
29025 )
29026 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029027 D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000029028 _res = _literal;
29029 goto done;
29030 }
29031 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029032 D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000029033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
29034 }
29035 _res = NULL;
29036 done:
29037 D(p->level--);
29038 return _res;
29039}
29040
Brandt Bucher145bf262021-02-26 14:51:55 -080029041// _tmp_179: expression ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000029042static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080029043_tmp_179_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000029044{
29045 D(p->level++);
29046 if (p->error_indicator) {
29047 D(p->level--);
29048 return NULL;
29049 }
29050 void * _res = NULL;
29051 int _mark = p->mark;
29052 { // expression ['as' star_target]
29053 if (p->error_indicator) {
29054 D(p->level--);
29055 return NULL;
29056 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029057 D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029058 void *_opt_var;
29059 UNUSED(_opt_var); // Silence compiler warnings
29060 expr_ty expression_var;
29061 if (
29062 (expression_var = expression_rule(p)) // expression
29063 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029064 (_opt_var = _tmp_181_rule(p), 1) // ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000029065 )
29066 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029067 D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029068 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
29069 goto done;
29070 }
29071 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029072 D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000029073 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
29074 }
29075 _res = NULL;
29076 done:
29077 D(p->level--);
29078 return _res;
29079}
29080
Brandt Bucher145bf262021-02-26 14:51:55 -080029081// _tmp_180: expressions ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000029082static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080029083_tmp_180_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000029084{
29085 D(p->level++);
29086 if (p->error_indicator) {
29087 D(p->level--);
29088 return NULL;
29089 }
29090 void * _res = NULL;
29091 int _mark = p->mark;
29092 { // expressions ['as' star_target]
29093 if (p->error_indicator) {
29094 D(p->level--);
29095 return NULL;
29096 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029097 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029098 void *_opt_var;
29099 UNUSED(_opt_var); // Silence compiler warnings
29100 expr_ty expressions_var;
29101 if (
29102 (expressions_var = expressions_rule(p)) // expressions
29103 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029104 (_opt_var = _tmp_182_rule(p), 1) // ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000029105 )
29106 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029107 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029108 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
29109 goto done;
29110 }
29111 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029112 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000029113 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
29114 }
29115 _res = NULL;
29116 done:
29117 D(p->level--);
29118 return _res;
29119}
29120
Brandt Bucher145bf262021-02-26 14:51:55 -080029121// _tmp_181: 'as' star_target
Pablo Galindo58fb1562021-02-02 19:54:22 +000029122static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080029123_tmp_181_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000029124{
29125 D(p->level++);
29126 if (p->error_indicator) {
29127 D(p->level--);
29128 return NULL;
29129 }
29130 void * _res = NULL;
29131 int _mark = p->mark;
29132 { // 'as' star_target
29133 if (p->error_indicator) {
29134 D(p->level--);
29135 return NULL;
29136 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029137 D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029138 Token * _keyword;
29139 expr_ty star_target_var;
29140 if (
29141 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
29142 &&
29143 (star_target_var = star_target_rule(p)) // star_target
29144 )
29145 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029146 D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029147 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
29148 goto done;
29149 }
29150 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029151 D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000029152 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
29153 }
29154 _res = NULL;
29155 done:
29156 D(p->level--);
29157 return _res;
29158}
29159
Brandt Bucher145bf262021-02-26 14:51:55 -080029160// _tmp_182: 'as' star_target
Pablo Galindo58fb1562021-02-02 19:54:22 +000029161static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080029162_tmp_182_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000029163{
29164 D(p->level++);
29165 if (p->error_indicator) {
29166 D(p->level--);
29167 return NULL;
29168 }
29169 void * _res = NULL;
29170 int _mark = p->mark;
29171 { // 'as' star_target
29172 if (p->error_indicator) {
29173 D(p->level--);
29174 return NULL;
29175 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029176 D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029177 Token * _keyword;
29178 expr_ty star_target_var;
29179 if (
29180 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
29181 &&
29182 (star_target_var = star_target_rule(p)) // star_target
29183 )
29184 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029185 D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029186 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
29187 goto done;
29188 }
29189 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029190 D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000029191 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
29192 }
29193 _res = NULL;
29194 done:
29195 D(p->level--);
29196 return _res;
29197}
29198
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029199void *
29200_PyPegen_parse(Parser *p)
29201{
29202 // Initialize keywords
29203 p->keywords = reserved_keywords;
29204 p->n_keyword_lists = n_keyword_lists;
29205
29206 // Run parser
29207 void *result = NULL;
29208 if (p->start_rule == Py_file_input) {
29209 result = file_rule(p);
29210 } else if (p->start_rule == Py_single_input) {
29211 result = interactive_rule(p);
29212 } else if (p->start_rule == Py_eval_input) {
29213 result = eval_rule(p);
29214 } else if (p->start_rule == Py_func_type_input) {
29215 result = func_type_rule(p);
29216 } else if (p->start_rule == Py_fstring_input) {
29217 result = fstring_rule(p);
29218 }
29219
29220 return result;
29221}
29222
29223// The end