blob: 3f0d06fc833e08d6d5983163c6c17d8b314aad17 [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},
18 {"is", 527},
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},
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026 {"def", 523},
27 {"not", 526},
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},
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030037 {"True", 528},
38 {"None", 530},
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},
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030046 {"class", 524},
47 {"False", 529},
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},
56 {"lambda", 525},
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
107#define return_stmt_type 1038
108#define raise_stmt_type 1039
109#define function_def_type 1040
110#define function_def_raw_type 1041
111#define func_type_comment_type 1042
112#define params_type 1043
113#define parameters_type 1044
114#define slash_no_default_type 1045
115#define slash_with_default_type 1046
116#define star_etc_type 1047
117#define kwds_type 1048
118#define param_no_default_type 1049
119#define param_with_default_type 1050
120#define param_maybe_default_type 1051
121#define param_type 1052
122#define annotation_type 1053
123#define default_type 1054
124#define decorators_type 1055
125#define class_def_type 1056
126#define class_def_raw_type 1057
127#define block_type 1058
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000128#define star_expressions_type 1059
129#define star_expression_type 1060
130#define star_named_expressions_type 1061
131#define star_named_expression_type 1062
132#define named_expression_type 1063
133#define annotated_rhs_type 1064
134#define expressions_type 1065
135#define expression_type 1066
136#define lambdef_type 1067
137#define lambda_params_type 1068
138#define lambda_parameters_type 1069
139#define lambda_slash_no_default_type 1070
140#define lambda_slash_with_default_type 1071
141#define lambda_star_etc_type 1072
142#define lambda_kwds_type 1073
143#define lambda_param_no_default_type 1074
144#define lambda_param_with_default_type 1075
145#define lambda_param_maybe_default_type 1076
146#define lambda_param_type 1077
147#define disjunction_type 1078
148#define conjunction_type 1079
149#define inversion_type 1080
150#define comparison_type 1081
151#define compare_op_bitwise_or_pair_type 1082
152#define eq_bitwise_or_type 1083
153#define noteq_bitwise_or_type 1084
154#define lte_bitwise_or_type 1085
155#define lt_bitwise_or_type 1086
156#define gte_bitwise_or_type 1087
157#define gt_bitwise_or_type 1088
158#define notin_bitwise_or_type 1089
159#define in_bitwise_or_type 1090
160#define isnot_bitwise_or_type 1091
161#define is_bitwise_or_type 1092
162#define bitwise_or_type 1093 // Left-recursive
163#define bitwise_xor_type 1094 // Left-recursive
164#define bitwise_and_type 1095 // Left-recursive
165#define shift_expr_type 1096 // Left-recursive
166#define sum_type 1097 // Left-recursive
167#define term_type 1098 // Left-recursive
168#define factor_type 1099
169#define power_type 1100
170#define await_primary_type 1101
171#define primary_type 1102 // Left-recursive
172#define slices_type 1103
173#define slice_type 1104
174#define atom_type 1105
175#define strings_type 1106
176#define list_type 1107
177#define listcomp_type 1108
178#define tuple_type 1109
179#define group_type 1110
180#define genexp_type 1111
181#define set_type 1112
182#define setcomp_type 1113
183#define dict_type 1114
184#define dictcomp_type 1115
185#define double_starred_kvpairs_type 1116
186#define double_starred_kvpair_type 1117
187#define kvpair_type 1118
188#define for_if_clauses_type 1119
189#define for_if_clause_type 1120
190#define yield_expr_type 1121
191#define arguments_type 1122
192#define args_type 1123
193#define kwargs_type 1124
194#define starred_expression_type 1125
195#define kwarg_or_starred_type 1126
196#define kwarg_or_double_starred_type 1127
197#define star_targets_type 1128
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200198#define star_targets_list_seq_type 1129
199#define star_targets_tuple_seq_type 1130
200#define star_target_type 1131
201#define target_with_star_atom_type 1132
202#define star_atom_type 1133
203#define single_target_type 1134
204#define single_subscript_attribute_target_type 1135
205#define del_targets_type 1136
206#define del_target_type 1137
207#define del_t_atom_type 1138
208#define targets_type 1139
209#define target_type 1140
210#define t_primary_type 1141 // Left-recursive
211#define t_lookahead_type 1142
212#define t_atom_type 1143
213#define invalid_arguments_type 1144
214#define invalid_kwarg_type 1145
215#define invalid_named_expression_type 1146
216#define invalid_assignment_type 1147
217#define invalid_ann_assign_target_type 1148
218#define invalid_del_stmt_type 1149
219#define invalid_block_type 1150
220#define invalid_primary_type 1151 // Left-recursive
221#define invalid_comprehension_type 1152
222#define invalid_dict_comprehension_type 1153
223#define invalid_parameters_type 1154
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200224#define invalid_parameters_helper_type 1155
225#define invalid_lambda_parameters_type 1156
226#define invalid_lambda_parameters_helper_type 1157
227#define invalid_star_etc_type 1158
228#define invalid_lambda_star_etc_type 1159
229#define invalid_double_type_comments_type 1160
230#define invalid_with_item_type 1161
231#define invalid_for_target_type 1162
232#define invalid_group_type 1163
233#define invalid_import_from_targets_type 1164
Pablo Galindo58fb1562021-02-02 19:54:22 +0000234#define invalid_with_stmt_type 1165
Pablo Galindo206cbda2021-02-07 18:42:21 +0000235#define invalid_except_block_type 1166
236#define _loop0_1_type 1167
237#define _loop0_2_type 1168
238#define _loop0_4_type 1169
239#define _gather_3_type 1170
240#define _loop0_6_type 1171
241#define _gather_5_type 1172
242#define _loop0_8_type 1173
243#define _gather_7_type 1174
244#define _loop0_10_type 1175
245#define _gather_9_type 1176
246#define _loop1_11_type 1177
247#define _loop0_13_type 1178
248#define _gather_12_type 1179
249#define _tmp_14_type 1180
250#define _tmp_15_type 1181
251#define _tmp_16_type 1182
252#define _tmp_17_type 1183
253#define _tmp_18_type 1184
254#define _tmp_19_type 1185
255#define _tmp_20_type 1186
256#define _tmp_21_type 1187
257#define _loop1_22_type 1188
258#define _tmp_23_type 1189
259#define _tmp_24_type 1190
260#define _loop0_26_type 1191
261#define _gather_25_type 1192
262#define _loop0_28_type 1193
263#define _gather_27_type 1194
264#define _tmp_29_type 1195
265#define _tmp_30_type 1196
266#define _loop0_31_type 1197
267#define _loop1_32_type 1198
268#define _loop0_34_type 1199
269#define _gather_33_type 1200
270#define _tmp_35_type 1201
271#define _loop0_37_type 1202
272#define _gather_36_type 1203
273#define _tmp_38_type 1204
274#define _loop0_40_type 1205
275#define _gather_39_type 1206
276#define _loop0_42_type 1207
277#define _gather_41_type 1208
278#define _loop0_44_type 1209
279#define _gather_43_type 1210
280#define _loop0_46_type 1211
281#define _gather_45_type 1212
282#define _tmp_47_type 1213
283#define _loop1_48_type 1214
284#define _tmp_49_type 1215
285#define _tmp_50_type 1216
286#define _tmp_51_type 1217
287#define _tmp_52_type 1218
288#define _tmp_53_type 1219
289#define _loop0_54_type 1220
290#define _loop0_55_type 1221
291#define _loop0_56_type 1222
292#define _loop1_57_type 1223
293#define _loop0_58_type 1224
294#define _loop1_59_type 1225
295#define _loop1_60_type 1226
296#define _loop1_61_type 1227
297#define _loop0_62_type 1228
298#define _loop1_63_type 1229
299#define _loop0_64_type 1230
300#define _loop1_65_type 1231
301#define _loop0_66_type 1232
302#define _loop1_67_type 1233
303#define _loop1_68_type 1234
304#define _tmp_69_type 1235
305#define _loop1_70_type 1236
306#define _loop0_72_type 1237
307#define _gather_71_type 1238
308#define _loop1_73_type 1239
309#define _loop0_74_type 1240
310#define _loop0_75_type 1241
311#define _loop0_76_type 1242
312#define _loop1_77_type 1243
313#define _loop0_78_type 1244
314#define _loop1_79_type 1245
315#define _loop1_80_type 1246
316#define _loop1_81_type 1247
317#define _loop0_82_type 1248
318#define _loop1_83_type 1249
319#define _loop0_84_type 1250
320#define _loop1_85_type 1251
321#define _loop0_86_type 1252
322#define _loop1_87_type 1253
323#define _loop1_88_type 1254
324#define _loop1_89_type 1255
325#define _loop1_90_type 1256
326#define _tmp_91_type 1257
327#define _loop0_93_type 1258
328#define _gather_92_type 1259
329#define _tmp_94_type 1260
330#define _tmp_95_type 1261
331#define _tmp_96_type 1262
332#define _tmp_97_type 1263
333#define _loop1_98_type 1264
334#define _tmp_99_type 1265
335#define _tmp_100_type 1266
336#define _loop0_102_type 1267
337#define _gather_101_type 1268
338#define _loop1_103_type 1269
339#define _loop0_104_type 1270
340#define _loop0_105_type 1271
341#define _loop0_107_type 1272
342#define _gather_106_type 1273
343#define _tmp_108_type 1274
344#define _loop0_110_type 1275
345#define _gather_109_type 1276
346#define _loop0_112_type 1277
347#define _gather_111_type 1278
348#define _loop0_114_type 1279
349#define _gather_113_type 1280
350#define _loop0_116_type 1281
351#define _gather_115_type 1282
352#define _loop0_117_type 1283
353#define _loop0_119_type 1284
354#define _gather_118_type 1285
355#define _loop1_120_type 1286
356#define _tmp_121_type 1287
357#define _loop0_123_type 1288
358#define _gather_122_type 1289
359#define _loop0_125_type 1290
360#define _gather_124_type 1291
361#define _tmp_126_type 1292
362#define _loop0_127_type 1293
363#define _loop0_128_type 1294
364#define _loop0_129_type 1295
365#define _tmp_130_type 1296
366#define _tmp_131_type 1297
367#define _tmp_132_type 1298
368#define _loop0_133_type 1299
369#define _loop1_134_type 1300
370#define _loop0_135_type 1301
371#define _loop1_136_type 1302
372#define _tmp_137_type 1303
373#define _tmp_138_type 1304
374#define _tmp_139_type 1305
375#define _loop0_141_type 1306
376#define _gather_140_type 1307
377#define _loop0_143_type 1308
378#define _gather_142_type 1309
379#define _tmp_144_type 1310
380#define _tmp_145_type 1311
381#define _tmp_146_type 1312
382#define _tmp_147_type 1313
383#define _tmp_148_type 1314
384#define _tmp_149_type 1315
385#define _tmp_150_type 1316
386#define _tmp_151_type 1317
387#define _tmp_152_type 1318
388#define _tmp_153_type 1319
389#define _tmp_154_type 1320
390#define _tmp_155_type 1321
391#define _tmp_156_type 1322
392#define _tmp_157_type 1323
393#define _tmp_158_type 1324
394#define _tmp_159_type 1325
395#define _tmp_160_type 1326
396#define _tmp_161_type 1327
397#define _tmp_162_type 1328
398#define _tmp_163_type 1329
399#define _tmp_164_type 1330
400#define _tmp_165_type 1331
401#define _tmp_166_type 1332
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100402
403static mod_ty file_rule(Parser *p);
404static mod_ty interactive_rule(Parser *p);
405static mod_ty eval_rule(Parser *p);
406static mod_ty func_type_rule(Parser *p);
407static expr_ty fstring_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100408static asdl_expr_seq* type_expressions_rule(Parser *p);
409static asdl_stmt_seq* statements_rule(Parser *p);
410static asdl_stmt_seq* statement_rule(Parser *p);
411static asdl_stmt_seq* statement_newline_rule(Parser *p);
Pablo Galindo9bdc40e2020-11-30 19:42:38 +0000412static asdl_stmt_seq* simple_stmts_rule(Parser *p);
413static stmt_ty simple_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100414static stmt_ty compound_stmt_rule(Parser *p);
415static stmt_ty assignment_rule(Parser *p);
416static AugOperator* augassign_rule(Parser *p);
417static stmt_ty global_stmt_rule(Parser *p);
418static stmt_ty nonlocal_stmt_rule(Parser *p);
419static stmt_ty yield_stmt_rule(Parser *p);
420static stmt_ty assert_stmt_rule(Parser *p);
421static stmt_ty del_stmt_rule(Parser *p);
422static stmt_ty import_stmt_rule(Parser *p);
423static stmt_ty import_name_rule(Parser *p);
424static stmt_ty import_from_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100425static asdl_alias_seq* import_from_targets_rule(Parser *p);
426static asdl_alias_seq* import_from_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100427static alias_ty import_from_as_name_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100428static asdl_alias_seq* dotted_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100429static alias_ty dotted_as_name_rule(Parser *p);
430static expr_ty dotted_name_rule(Parser *p);
431static stmt_ty if_stmt_rule(Parser *p);
432static stmt_ty elif_stmt_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100433static asdl_stmt_seq* else_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100434static stmt_ty while_stmt_rule(Parser *p);
435static stmt_ty for_stmt_rule(Parser *p);
436static stmt_ty with_stmt_rule(Parser *p);
437static withitem_ty with_item_rule(Parser *p);
438static stmt_ty try_stmt_rule(Parser *p);
439static excepthandler_ty except_block_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100440static asdl_stmt_seq* finally_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100441static stmt_ty return_stmt_rule(Parser *p);
442static stmt_ty raise_stmt_rule(Parser *p);
443static stmt_ty function_def_rule(Parser *p);
444static stmt_ty function_def_raw_rule(Parser *p);
445static Token* func_type_comment_rule(Parser *p);
446static arguments_ty params_rule(Parser *p);
447static arguments_ty parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100448static asdl_arg_seq* slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100449static SlashWithDefault* slash_with_default_rule(Parser *p);
450static StarEtc* star_etc_rule(Parser *p);
451static arg_ty kwds_rule(Parser *p);
452static arg_ty param_no_default_rule(Parser *p);
453static NameDefaultPair* param_with_default_rule(Parser *p);
454static NameDefaultPair* param_maybe_default_rule(Parser *p);
455static arg_ty param_rule(Parser *p);
456static expr_ty annotation_rule(Parser *p);
457static expr_ty default_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100458static asdl_expr_seq* decorators_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100459static stmt_ty class_def_rule(Parser *p);
460static stmt_ty class_def_raw_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100461static asdl_stmt_seq* block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100462static expr_ty star_expressions_rule(Parser *p);
463static expr_ty star_expression_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100464static asdl_expr_seq* star_named_expressions_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100465static expr_ty star_named_expression_rule(Parser *p);
466static expr_ty named_expression_rule(Parser *p);
467static expr_ty annotated_rhs_rule(Parser *p);
468static expr_ty expressions_rule(Parser *p);
469static expr_ty expression_rule(Parser *p);
470static expr_ty lambdef_rule(Parser *p);
471static arguments_ty lambda_params_rule(Parser *p);
472static arguments_ty lambda_parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100473static asdl_arg_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100474static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
475static StarEtc* lambda_star_etc_rule(Parser *p);
476static arg_ty lambda_kwds_rule(Parser *p);
477static arg_ty lambda_param_no_default_rule(Parser *p);
478static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
479static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
480static arg_ty lambda_param_rule(Parser *p);
481static expr_ty disjunction_rule(Parser *p);
482static expr_ty conjunction_rule(Parser *p);
483static expr_ty inversion_rule(Parser *p);
484static expr_ty comparison_rule(Parser *p);
485static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
486static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
487static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
488static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
489static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
490static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
491static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
492static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
493static CmpopExprPair* in_bitwise_or_rule(Parser *p);
494static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
495static CmpopExprPair* is_bitwise_or_rule(Parser *p);
496static expr_ty bitwise_or_rule(Parser *p);
497static expr_ty bitwise_xor_rule(Parser *p);
498static expr_ty bitwise_and_rule(Parser *p);
499static expr_ty shift_expr_rule(Parser *p);
500static expr_ty sum_rule(Parser *p);
501static expr_ty term_rule(Parser *p);
502static expr_ty factor_rule(Parser *p);
503static expr_ty power_rule(Parser *p);
504static expr_ty await_primary_rule(Parser *p);
505static expr_ty primary_rule(Parser *p);
506static expr_ty slices_rule(Parser *p);
507static expr_ty slice_rule(Parser *p);
508static expr_ty atom_rule(Parser *p);
509static expr_ty strings_rule(Parser *p);
510static expr_ty list_rule(Parser *p);
511static expr_ty listcomp_rule(Parser *p);
512static expr_ty tuple_rule(Parser *p);
513static expr_ty group_rule(Parser *p);
514static expr_ty genexp_rule(Parser *p);
515static expr_ty set_rule(Parser *p);
516static expr_ty setcomp_rule(Parser *p);
517static expr_ty dict_rule(Parser *p);
518static expr_ty dictcomp_rule(Parser *p);
519static asdl_seq* double_starred_kvpairs_rule(Parser *p);
520static KeyValuePair* double_starred_kvpair_rule(Parser *p);
521static KeyValuePair* kvpair_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100522static asdl_comprehension_seq* for_if_clauses_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100523static comprehension_ty for_if_clause_rule(Parser *p);
524static expr_ty yield_expr_rule(Parser *p);
525static expr_ty arguments_rule(Parser *p);
526static expr_ty args_rule(Parser *p);
527static asdl_seq* kwargs_rule(Parser *p);
528static expr_ty starred_expression_rule(Parser *p);
529static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
530static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
531static expr_ty star_targets_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200532static asdl_expr_seq* star_targets_list_seq_rule(Parser *p);
533static asdl_expr_seq* star_targets_tuple_seq_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100534static expr_ty star_target_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200535static expr_ty target_with_star_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100536static expr_ty star_atom_rule(Parser *p);
537static expr_ty single_target_rule(Parser *p);
538static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100539static asdl_expr_seq* del_targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100540static expr_ty del_target_rule(Parser *p);
541static expr_ty del_t_atom_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100542static asdl_expr_seq* targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100543static expr_ty target_rule(Parser *p);
544static expr_ty t_primary_rule(Parser *p);
545static void *t_lookahead_rule(Parser *p);
546static expr_ty t_atom_rule(Parser *p);
Lysandros Nikolaoubca70142020-10-27 00:42:04 +0200547static void *invalid_arguments_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100548static void *invalid_kwarg_rule(Parser *p);
549static void *invalid_named_expression_rule(Parser *p);
550static void *invalid_assignment_rule(Parser *p);
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +0300551static expr_ty invalid_ann_assign_target_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300552static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100553static void *invalid_block_rule(Parser *p);
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +0200554static void *invalid_primary_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100555static void *invalid_comprehension_rule(Parser *p);
556static void *invalid_dict_comprehension_rule(Parser *p);
557static void *invalid_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200558static void *invalid_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100559static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200560static void *invalid_lambda_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100561static void *invalid_star_etc_rule(Parser *p);
562static void *invalid_lambda_star_etc_rule(Parser *p);
563static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300564static void *invalid_with_item_rule(Parser *p);
565static void *invalid_for_target_rule(Parser *p);
566static void *invalid_group_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100567static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000568static void *invalid_with_stmt_rule(Parser *p);
Pablo Galindo206cbda2021-02-07 18:42:21 +0000569static void *invalid_except_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100570static asdl_seq *_loop0_1_rule(Parser *p);
571static asdl_seq *_loop0_2_rule(Parser *p);
572static asdl_seq *_loop0_4_rule(Parser *p);
573static asdl_seq *_gather_3_rule(Parser *p);
574static asdl_seq *_loop0_6_rule(Parser *p);
575static asdl_seq *_gather_5_rule(Parser *p);
576static asdl_seq *_loop0_8_rule(Parser *p);
577static asdl_seq *_gather_7_rule(Parser *p);
578static asdl_seq *_loop0_10_rule(Parser *p);
579static asdl_seq *_gather_9_rule(Parser *p);
580static asdl_seq *_loop1_11_rule(Parser *p);
581static asdl_seq *_loop0_13_rule(Parser *p);
582static asdl_seq *_gather_12_rule(Parser *p);
583static void *_tmp_14_rule(Parser *p);
584static void *_tmp_15_rule(Parser *p);
585static void *_tmp_16_rule(Parser *p);
586static void *_tmp_17_rule(Parser *p);
587static void *_tmp_18_rule(Parser *p);
588static void *_tmp_19_rule(Parser *p);
589static void *_tmp_20_rule(Parser *p);
590static void *_tmp_21_rule(Parser *p);
591static asdl_seq *_loop1_22_rule(Parser *p);
592static void *_tmp_23_rule(Parser *p);
593static void *_tmp_24_rule(Parser *p);
594static asdl_seq *_loop0_26_rule(Parser *p);
595static asdl_seq *_gather_25_rule(Parser *p);
596static asdl_seq *_loop0_28_rule(Parser *p);
597static asdl_seq *_gather_27_rule(Parser *p);
598static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300599static void *_tmp_30_rule(Parser *p);
600static asdl_seq *_loop0_31_rule(Parser *p);
601static asdl_seq *_loop1_32_rule(Parser *p);
602static asdl_seq *_loop0_34_rule(Parser *p);
603static asdl_seq *_gather_33_rule(Parser *p);
604static void *_tmp_35_rule(Parser *p);
605static asdl_seq *_loop0_37_rule(Parser *p);
606static asdl_seq *_gather_36_rule(Parser *p);
607static void *_tmp_38_rule(Parser *p);
608static asdl_seq *_loop0_40_rule(Parser *p);
609static asdl_seq *_gather_39_rule(Parser *p);
610static asdl_seq *_loop0_42_rule(Parser *p);
611static asdl_seq *_gather_41_rule(Parser *p);
612static asdl_seq *_loop0_44_rule(Parser *p);
613static asdl_seq *_gather_43_rule(Parser *p);
614static asdl_seq *_loop0_46_rule(Parser *p);
615static asdl_seq *_gather_45_rule(Parser *p);
616static void *_tmp_47_rule(Parser *p);
617static asdl_seq *_loop1_48_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100618static void *_tmp_49_rule(Parser *p);
619static void *_tmp_50_rule(Parser *p);
620static void *_tmp_51_rule(Parser *p);
621static void *_tmp_52_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300622static void *_tmp_53_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100623static asdl_seq *_loop0_54_rule(Parser *p);
624static asdl_seq *_loop0_55_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300625static asdl_seq *_loop0_56_rule(Parser *p);
626static asdl_seq *_loop1_57_rule(Parser *p);
627static asdl_seq *_loop0_58_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100628static asdl_seq *_loop1_59_rule(Parser *p);
629static asdl_seq *_loop1_60_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300630static asdl_seq *_loop1_61_rule(Parser *p);
631static asdl_seq *_loop0_62_rule(Parser *p);
632static asdl_seq *_loop1_63_rule(Parser *p);
633static asdl_seq *_loop0_64_rule(Parser *p);
634static asdl_seq *_loop1_65_rule(Parser *p);
635static asdl_seq *_loop0_66_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100636static asdl_seq *_loop1_67_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300637static asdl_seq *_loop1_68_rule(Parser *p);
638static void *_tmp_69_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000639static asdl_seq *_loop1_70_rule(Parser *p);
640static asdl_seq *_loop0_72_rule(Parser *p);
641static asdl_seq *_gather_71_rule(Parser *p);
642static asdl_seq *_loop1_73_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300643static asdl_seq *_loop0_74_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000644static asdl_seq *_loop0_75_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100645static asdl_seq *_loop0_76_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000646static asdl_seq *_loop1_77_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300647static asdl_seq *_loop0_78_rule(Parser *p);
648static asdl_seq *_loop1_79_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000649static asdl_seq *_loop1_80_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100650static asdl_seq *_loop1_81_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000651static asdl_seq *_loop0_82_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300652static asdl_seq *_loop1_83_rule(Parser *p);
653static asdl_seq *_loop0_84_rule(Parser *p);
654static asdl_seq *_loop1_85_rule(Parser *p);
655static asdl_seq *_loop0_86_rule(Parser *p);
656static asdl_seq *_loop1_87_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000657static asdl_seq *_loop1_88_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100658static asdl_seq *_loop1_89_rule(Parser *p);
659static asdl_seq *_loop1_90_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000660static void *_tmp_91_rule(Parser *p);
661static asdl_seq *_loop0_93_rule(Parser *p);
662static asdl_seq *_gather_92_rule(Parser *p);
663static void *_tmp_94_rule(Parser *p);
664static void *_tmp_95_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100665static void *_tmp_96_rule(Parser *p);
666static void *_tmp_97_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000667static asdl_seq *_loop1_98_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300668static void *_tmp_99_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000669static void *_tmp_100_rule(Parser *p);
670static asdl_seq *_loop0_102_rule(Parser *p);
671static asdl_seq *_gather_101_rule(Parser *p);
672static asdl_seq *_loop1_103_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300673static asdl_seq *_loop0_104_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000674static asdl_seq *_loop0_105_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300675static asdl_seq *_loop0_107_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000676static asdl_seq *_gather_106_rule(Parser *p);
677static void *_tmp_108_rule(Parser *p);
678static asdl_seq *_loop0_110_rule(Parser *p);
679static asdl_seq *_gather_109_rule(Parser *p);
Pablo Galindo4a97b152020-09-02 17:44:19 +0100680static asdl_seq *_loop0_112_rule(Parser *p);
681static asdl_seq *_gather_111_rule(Parser *p);
682static asdl_seq *_loop0_114_rule(Parser *p);
683static asdl_seq *_gather_113_rule(Parser *p);
684static asdl_seq *_loop0_116_rule(Parser *p);
685static asdl_seq *_gather_115_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000686static asdl_seq *_loop0_117_rule(Parser *p);
Pablo Galindo4a97b152020-09-02 17:44:19 +0100687static asdl_seq *_loop0_119_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000688static asdl_seq *_gather_118_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200689static asdl_seq *_loop1_120_rule(Parser *p);
690static void *_tmp_121_rule(Parser *p);
691static asdl_seq *_loop0_123_rule(Parser *p);
692static asdl_seq *_gather_122_rule(Parser *p);
693static asdl_seq *_loop0_125_rule(Parser *p);
694static asdl_seq *_gather_124_rule(Parser *p);
695static void *_tmp_126_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000696static asdl_seq *_loop0_127_rule(Parser *p);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +0300697static asdl_seq *_loop0_128_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200698static asdl_seq *_loop0_129_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000699static void *_tmp_130_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200700static void *_tmp_131_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000701static void *_tmp_132_rule(Parser *p);
702static asdl_seq *_loop0_133_rule(Parser *p);
703static asdl_seq *_loop1_134_rule(Parser *p);
704static asdl_seq *_loop0_135_rule(Parser *p);
705static asdl_seq *_loop1_136_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100706static void *_tmp_137_rule(Parser *p);
707static void *_tmp_138_rule(Parser *p);
708static void *_tmp_139_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000709static asdl_seq *_loop0_141_rule(Parser *p);
710static asdl_seq *_gather_140_rule(Parser *p);
711static asdl_seq *_loop0_143_rule(Parser *p);
712static asdl_seq *_gather_142_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100713static void *_tmp_144_rule(Parser *p);
714static void *_tmp_145_rule(Parser *p);
715static void *_tmp_146_rule(Parser *p);
716static void *_tmp_147_rule(Parser *p);
717static void *_tmp_148_rule(Parser *p);
718static void *_tmp_149_rule(Parser *p);
719static void *_tmp_150_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200720static void *_tmp_151_rule(Parser *p);
721static void *_tmp_152_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200722static void *_tmp_153_rule(Parser *p);
723static void *_tmp_154_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000724static void *_tmp_155_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000725static void *_tmp_156_rule(Parser *p);
726static void *_tmp_157_rule(Parser *p);
727static void *_tmp_158_rule(Parser *p);
728static void *_tmp_159_rule(Parser *p);
729static void *_tmp_160_rule(Parser *p);
730static void *_tmp_161_rule(Parser *p);
731static void *_tmp_162_rule(Parser *p);
732static void *_tmp_163_rule(Parser *p);
733static void *_tmp_164_rule(Parser *p);
Pablo Galindo206cbda2021-02-07 18:42:21 +0000734static void *_tmp_165_rule(Parser *p);
735static void *_tmp_166_rule(Parser *p);
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000736
737
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100738// file: statements? $
739static mod_ty
740file_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000741{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100742 D(p->level++);
743 if (p->error_indicator) {
744 D(p->level--);
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000745 return NULL;
746 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100747 mod_ty _res = NULL;
748 int _mark = p->mark;
749 { // statements? $
750 if (p->error_indicator) {
751 D(p->level--);
752 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000753 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100754 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
755 void *a;
756 Token * endmarker_var;
757 if (
758 (a = statements_rule(p), 1) // statements?
759 &&
760 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
761 )
762 {
763 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
764 _res = _PyPegen_make_module ( p , a );
765 if (_res == NULL && PyErr_Occurred()) {
766 p->error_indicator = 1;
767 D(p->level--);
768 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000769 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100770 goto done;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000771 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100772 p->mark = _mark;
773 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
774 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000775 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100776 _res = NULL;
777 done:
778 D(p->level--);
779 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000780}
781
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100782// interactive: statement_newline
783static mod_ty
784interactive_rule(Parser *p)
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000785{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100786 D(p->level++);
787 if (p->error_indicator) {
788 D(p->level--);
789 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000790 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100791 mod_ty _res = NULL;
792 int _mark = p->mark;
793 { // statement_newline
794 if (p->error_indicator) {
795 D(p->level--);
796 return NULL;
797 }
798 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoa5634c42020-09-16 19:42:00 +0100799 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100800 if (
801 (a = statement_newline_rule(p)) // statement_newline
802 )
803 {
804 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
805 _res = Interactive ( a , p -> arena );
806 if (_res == NULL && PyErr_Occurred()) {
807 p->error_indicator = 1;
808 D(p->level--);
809 return NULL;
810 }
811 goto done;
812 }
813 p->mark = _mark;
814 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
815 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
816 }
817 _res = NULL;
818 done:
819 D(p->level--);
820 return _res;
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000821}
822
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100823// eval: expressions NEWLINE* $
824static mod_ty
825eval_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000826{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100827 D(p->level++);
828 if (p->error_indicator) {
829 D(p->level--);
830 return NULL;
831 }
832 mod_ty _res = NULL;
833 int _mark = p->mark;
834 { // expressions NEWLINE* $
835 if (p->error_indicator) {
836 D(p->level--);
837 return NULL;
838 }
839 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
840 asdl_seq * _loop0_1_var;
841 expr_ty a;
842 Token * endmarker_var;
843 if (
844 (a = expressions_rule(p)) // expressions
845 &&
846 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
847 &&
848 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
849 )
850 {
851 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
852 _res = Expression ( a , p -> arena );
853 if (_res == NULL && PyErr_Occurred()) {
854 p->error_indicator = 1;
855 D(p->level--);
856 return NULL;
857 }
858 goto done;
859 }
860 p->mark = _mark;
861 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
862 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
863 }
864 _res = NULL;
865 done:
866 D(p->level--);
867 return _res;
868}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000869
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100870// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
871static mod_ty
872func_type_rule(Parser *p)
873{
874 D(p->level++);
875 if (p->error_indicator) {
876 D(p->level--);
877 return NULL;
878 }
879 mod_ty _res = NULL;
880 int _mark = p->mark;
881 { // '(' type_expressions? ')' '->' expression NEWLINE* $
882 if (p->error_indicator) {
883 D(p->level--);
884 return NULL;
885 }
886 D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
887 Token * _literal;
888 Token * _literal_1;
889 Token * _literal_2;
890 asdl_seq * _loop0_2_var;
891 void *a;
892 expr_ty b;
893 Token * endmarker_var;
894 if (
895 (_literal = _PyPegen_expect_token(p, 7)) // token='('
896 &&
897 (a = type_expressions_rule(p), 1) // type_expressions?
898 &&
899 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
900 &&
901 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
902 &&
903 (b = expression_rule(p)) // expression
904 &&
905 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
906 &&
907 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
908 )
909 {
910 D(fprintf(stderr, "%*c+ func_type[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
911 _res = FunctionType ( a , b , p -> arena );
912 if (_res == NULL && PyErr_Occurred()) {
913 p->error_indicator = 1;
914 D(p->level--);
915 return NULL;
916 }
917 goto done;
918 }
919 p->mark = _mark;
920 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
921 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
922 }
923 _res = NULL;
924 done:
925 D(p->level--);
926 return _res;
927}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000928
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100929// fstring: star_expressions
930static expr_ty
931fstring_rule(Parser *p)
932{
933 D(p->level++);
934 if (p->error_indicator) {
935 D(p->level--);
936 return NULL;
937 }
938 expr_ty _res = NULL;
939 int _mark = p->mark;
940 { // star_expressions
941 if (p->error_indicator) {
942 D(p->level--);
943 return NULL;
944 }
945 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
946 expr_ty star_expressions_var;
947 if (
948 (star_expressions_var = star_expressions_rule(p)) // star_expressions
949 )
950 {
951 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
952 _res = star_expressions_var;
953 goto done;
954 }
955 p->mark = _mark;
956 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
957 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
958 }
959 _res = NULL;
960 done:
961 D(p->level--);
962 return _res;
963}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000964
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100965// type_expressions:
966// | ','.expression+ ',' '*' expression ',' '**' expression
967// | ','.expression+ ',' '*' expression
968// | ','.expression+ ',' '**' expression
969// | '*' expression ',' '**' expression
970// | '*' expression
971// | '**' expression
972// | ','.expression+
Pablo Galindoa5634c42020-09-16 19:42:00 +0100973static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100974type_expressions_rule(Parser *p)
975{
976 D(p->level++);
977 if (p->error_indicator) {
978 D(p->level--);
979 return NULL;
980 }
Pablo Galindoa5634c42020-09-16 19:42:00 +0100981 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100982 int _mark = p->mark;
983 { // ','.expression+ ',' '*' expression ',' '**' expression
984 if (p->error_indicator) {
985 D(p->level--);
986 return NULL;
987 }
988 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
989 Token * _literal;
990 Token * _literal_1;
991 Token * _literal_2;
992 Token * _literal_3;
993 asdl_seq * a;
994 expr_ty b;
995 expr_ty c;
996 if (
997 (a = _gather_3_rule(p)) // ','.expression+
998 &&
999 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1000 &&
1001 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1002 &&
1003 (b = expression_rule(p)) // expression
1004 &&
1005 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
1006 &&
1007 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
1008 &&
1009 (c = expression_rule(p)) // expression
1010 )
1011 {
1012 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 +03001013 _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 +01001014 if (_res == NULL && PyErr_Occurred()) {
1015 p->error_indicator = 1;
1016 D(p->level--);
1017 return NULL;
1018 }
1019 goto done;
1020 }
1021 p->mark = _mark;
1022 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1023 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1024 }
1025 { // ','.expression+ ',' '*' expression
1026 if (p->error_indicator) {
1027 D(p->level--);
1028 return NULL;
1029 }
1030 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
1031 Token * _literal;
1032 Token * _literal_1;
1033 asdl_seq * a;
1034 expr_ty b;
1035 if (
1036 (a = _gather_5_rule(p)) // ','.expression+
1037 &&
1038 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1039 &&
1040 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1041 &&
1042 (b = expression_rule(p)) // expression
1043 )
1044 {
1045 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 +01001046 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001047 if (_res == NULL && PyErr_Occurred()) {
1048 p->error_indicator = 1;
1049 D(p->level--);
1050 return NULL;
1051 }
1052 goto done;
1053 }
1054 p->mark = _mark;
1055 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1056 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
1057 }
1058 { // ','.expression+ ',' '**' expression
1059 if (p->error_indicator) {
1060 D(p->level--);
1061 return NULL;
1062 }
1063 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
1064 Token * _literal;
1065 Token * _literal_1;
1066 asdl_seq * a;
1067 expr_ty b;
1068 if (
1069 (a = _gather_7_rule(p)) // ','.expression+
1070 &&
1071 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1072 &&
1073 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
1074 &&
1075 (b = expression_rule(p)) // expression
1076 )
1077 {
1078 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 +01001079 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001080 if (_res == NULL && PyErr_Occurred()) {
1081 p->error_indicator = 1;
1082 D(p->level--);
1083 return NULL;
1084 }
1085 goto done;
1086 }
1087 p->mark = _mark;
1088 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1089 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
1090 }
1091 { // '*' expression ',' '**' expression
1092 if (p->error_indicator) {
1093 D(p->level--);
1094 return NULL;
1095 }
1096 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
1097 Token * _literal;
1098 Token * _literal_1;
1099 Token * _literal_2;
1100 expr_ty a;
1101 expr_ty b;
1102 if (
1103 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1104 &&
1105 (a = expression_rule(p)) // expression
1106 &&
1107 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
1108 &&
1109 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
1110 &&
1111 (b = expression_rule(p)) // expression
1112 )
1113 {
1114 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 +03001115 _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 +01001116 if (_res == NULL && PyErr_Occurred()) {
1117 p->error_indicator = 1;
1118 D(p->level--);
1119 return NULL;
1120 }
1121 goto done;
1122 }
1123 p->mark = _mark;
1124 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1125 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
1126 }
1127 { // '*' expression
1128 if (p->error_indicator) {
1129 D(p->level--);
1130 return NULL;
1131 }
1132 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
1133 Token * _literal;
1134 expr_ty a;
1135 if (
1136 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1137 &&
1138 (a = expression_rule(p)) // expression
1139 )
1140 {
1141 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001142 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001143 if (_res == NULL && PyErr_Occurred()) {
1144 p->error_indicator = 1;
1145 D(p->level--);
1146 return NULL;
1147 }
1148 goto done;
1149 }
1150 p->mark = _mark;
1151 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1152 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
1153 }
1154 { // '**' expression
1155 if (p->error_indicator) {
1156 D(p->level--);
1157 return NULL;
1158 }
1159 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
1160 Token * _literal;
1161 expr_ty a;
1162 if (
1163 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
1164 &&
1165 (a = expression_rule(p)) // expression
1166 )
1167 {
1168 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001169 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001170 if (_res == NULL && PyErr_Occurred()) {
1171 p->error_indicator = 1;
1172 D(p->level--);
1173 return NULL;
1174 }
1175 goto done;
1176 }
1177 p->mark = _mark;
1178 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1179 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
1180 }
1181 { // ','.expression+
1182 if (p->error_indicator) {
1183 D(p->level--);
1184 return NULL;
1185 }
1186 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001187 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001188 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01001189 (a = (asdl_expr_seq*)_gather_9_rule(p)) // ','.expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001190 )
1191 {
1192 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001193 _res = a;
1194 if (_res == NULL && PyErr_Occurred()) {
1195 p->error_indicator = 1;
1196 D(p->level--);
1197 return NULL;
1198 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001199 goto done;
1200 }
1201 p->mark = _mark;
1202 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1203 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
1204 }
1205 _res = NULL;
1206 done:
1207 D(p->level--);
1208 return _res;
1209}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001210
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001211// statements: statement+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001212static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001213statements_rule(Parser *p)
1214{
1215 D(p->level++);
1216 if (p->error_indicator) {
1217 D(p->level--);
1218 return NULL;
1219 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001220 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001221 int _mark = p->mark;
1222 { // statement+
1223 if (p->error_indicator) {
1224 D(p->level--);
1225 return NULL;
1226 }
1227 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
1228 asdl_seq * a;
1229 if (
1230 (a = _loop1_11_rule(p)) // statement+
1231 )
1232 {
1233 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001234 _res = ( asdl_stmt_seq * ) _PyPegen_seq_flatten ( 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 statements[%d-%d]: %s failed!\n", p->level, ' ',
1244 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
1245 }
1246 _res = NULL;
1247 done:
1248 D(p->level--);
1249 return _res;
1250}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001251
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001252// statement: compound_stmt | simple_stmts
Pablo Galindoa5634c42020-09-16 19:42:00 +01001253static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001254statement_rule(Parser *p)
1255{
1256 D(p->level++);
1257 if (p->error_indicator) {
1258 D(p->level--);
1259 return NULL;
1260 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001261 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001262 int _mark = p->mark;
1263 { // compound_stmt
1264 if (p->error_indicator) {
1265 D(p->level--);
1266 return NULL;
1267 }
1268 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
1269 stmt_ty a;
1270 if (
1271 (a = compound_stmt_rule(p)) // compound_stmt
1272 )
1273 {
1274 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001275 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001276 if (_res == NULL && PyErr_Occurred()) {
1277 p->error_indicator = 1;
1278 D(p->level--);
1279 return NULL;
1280 }
1281 goto done;
1282 }
1283 p->mark = _mark;
1284 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1285 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
1286 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001287 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001288 if (p->error_indicator) {
1289 D(p->level--);
1290 return NULL;
1291 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001292 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001293 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001294 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001295 (a = (asdl_stmt_seq*)simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001296 )
1297 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001298 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001299 _res = a;
1300 if (_res == NULL && PyErr_Occurred()) {
1301 p->error_indicator = 1;
1302 D(p->level--);
1303 return NULL;
1304 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001305 goto done;
1306 }
1307 p->mark = _mark;
1308 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001309 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001310 }
1311 _res = NULL;
1312 done:
1313 D(p->level--);
1314 return _res;
1315}
1316
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001317// statement_newline: compound_stmt NEWLINE | simple_stmts | NEWLINE | $
Pablo Galindoa5634c42020-09-16 19:42:00 +01001318static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001319statement_newline_rule(Parser *p)
1320{
1321 D(p->level++);
1322 if (p->error_indicator) {
1323 D(p->level--);
1324 return NULL;
1325 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001326 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001327 int _mark = p->mark;
1328 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1329 p->error_indicator = 1;
1330 D(p->level--);
1331 return NULL;
1332 }
1333 int _start_lineno = p->tokens[_mark]->lineno;
1334 UNUSED(_start_lineno); // Only used by EXTRA macro
1335 int _start_col_offset = p->tokens[_mark]->col_offset;
1336 UNUSED(_start_col_offset); // Only used by EXTRA macro
1337 { // compound_stmt NEWLINE
1338 if (p->error_indicator) {
1339 D(p->level--);
1340 return NULL;
1341 }
1342 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
1343 stmt_ty a;
1344 Token * newline_var;
1345 if (
1346 (a = compound_stmt_rule(p)) // compound_stmt
1347 &&
1348 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1349 )
1350 {
1351 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 +01001352 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001353 if (_res == NULL && PyErr_Occurred()) {
1354 p->error_indicator = 1;
1355 D(p->level--);
1356 return NULL;
1357 }
1358 goto done;
1359 }
1360 p->mark = _mark;
1361 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
1363 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001364 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001365 if (p->error_indicator) {
1366 D(p->level--);
1367 return NULL;
1368 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001369 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1370 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001371 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001372 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001373 )
1374 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001375 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1376 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001377 goto done;
1378 }
1379 p->mark = _mark;
1380 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001381 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001382 }
1383 { // NEWLINE
1384 if (p->error_indicator) {
1385 D(p->level--);
1386 return NULL;
1387 }
1388 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1389 Token * newline_var;
1390 if (
1391 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1392 )
1393 {
1394 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1395 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1396 if (_token == NULL) {
1397 D(p->level--);
1398 return NULL;
1399 }
1400 int _end_lineno = _token->end_lineno;
1401 UNUSED(_end_lineno); // Only used by EXTRA macro
1402 int _end_col_offset = _token->end_col_offset;
1403 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03001404 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , CHECK ( stmt_ty , _Py_Pass ( EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001405 if (_res == NULL && PyErr_Occurred()) {
1406 p->error_indicator = 1;
1407 D(p->level--);
1408 return NULL;
1409 }
1410 goto done;
1411 }
1412 p->mark = _mark;
1413 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
1415 }
1416 { // $
1417 if (p->error_indicator) {
1418 D(p->level--);
1419 return NULL;
1420 }
1421 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
1422 Token * endmarker_var;
1423 if (
1424 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1425 )
1426 {
1427 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
1428 _res = _PyPegen_interactive_exit ( p );
1429 if (_res == NULL && PyErr_Occurred()) {
1430 p->error_indicator = 1;
1431 D(p->level--);
1432 return NULL;
1433 }
1434 goto done;
1435 }
1436 p->mark = _mark;
1437 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
1439 }
1440 _res = NULL;
1441 done:
1442 D(p->level--);
1443 return _res;
1444}
1445
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001446// simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindoa5634c42020-09-16 19:42:00 +01001447static asdl_stmt_seq*
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001448simple_stmts_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001449{
1450 D(p->level++);
1451 if (p->error_indicator) {
1452 D(p->level--);
1453 return NULL;
1454 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001455 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001456 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001457 { // simple_stmt !';' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001458 if (p->error_indicator) {
1459 D(p->level--);
1460 return NULL;
1461 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001462 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 +01001463 stmt_ty a;
1464 Token * newline_var;
1465 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001466 (a = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001467 &&
1468 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
1469 &&
1470 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1471 )
1472 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001473 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 +01001474 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001475 if (_res == NULL && PyErr_Occurred()) {
1476 p->error_indicator = 1;
1477 D(p->level--);
1478 return NULL;
1479 }
1480 goto done;
1481 }
1482 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001483 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001485 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001486 { // ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001487 if (p->error_indicator) {
1488 D(p->level--);
1489 return NULL;
1490 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001491 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 +01001492 void *_opt_var;
1493 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01001494 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001495 Token * newline_var;
1496 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001497 (a = (asdl_stmt_seq*)_gather_12_rule(p)) // ';'.simple_stmt+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001498 &&
1499 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
1500 &&
1501 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1502 )
1503 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001504 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 +01001505 _res = a;
1506 if (_res == NULL && PyErr_Occurred()) {
1507 p->error_indicator = 1;
1508 D(p->level--);
1509 return NULL;
1510 }
1511 goto done;
1512 }
1513 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001514 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1515 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001516 }
1517 _res = NULL;
1518 done:
1519 D(p->level--);
1520 return _res;
1521}
1522
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001523// simple_stmt:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001524// | assignment
1525// | star_expressions
1526// | &'return' return_stmt
1527// | &('import' | 'from') import_stmt
1528// | &'raise' raise_stmt
1529// | 'pass'
1530// | &'del' del_stmt
1531// | &'yield' yield_stmt
1532// | &'assert' assert_stmt
1533// | 'break'
1534// | 'continue'
1535// | &'global' global_stmt
1536// | &'nonlocal' nonlocal_stmt
1537static stmt_ty
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001538simple_stmt_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001539{
1540 D(p->level++);
1541 if (p->error_indicator) {
1542 D(p->level--);
1543 return NULL;
1544 }
1545 stmt_ty _res = NULL;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001546 if (_PyPegen_is_memoized(p, simple_stmt_type, &_res)) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001547 D(p->level--);
1548 return _res;
1549 }
1550 int _mark = p->mark;
1551 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1552 p->error_indicator = 1;
1553 D(p->level--);
1554 return NULL;
1555 }
1556 int _start_lineno = p->tokens[_mark]->lineno;
1557 UNUSED(_start_lineno); // Only used by EXTRA macro
1558 int _start_col_offset = p->tokens[_mark]->col_offset;
1559 UNUSED(_start_col_offset); // Only used by EXTRA macro
1560 { // assignment
1561 if (p->error_indicator) {
1562 D(p->level--);
1563 return NULL;
1564 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001565 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001566 stmt_ty assignment_var;
1567 if (
1568 (assignment_var = assignment_rule(p)) // assignment
1569 )
1570 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001571 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001572 _res = assignment_var;
1573 goto done;
1574 }
1575 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001576 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001577 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
1578 }
1579 { // star_expressions
1580 if (p->error_indicator) {
1581 D(p->level--);
1582 return NULL;
1583 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001584 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001585 expr_ty e;
1586 if (
1587 (e = star_expressions_rule(p)) // star_expressions
1588 )
1589 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001590 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 +01001591 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1592 if (_token == NULL) {
1593 D(p->level--);
1594 return NULL;
1595 }
1596 int _end_lineno = _token->end_lineno;
1597 UNUSED(_end_lineno); // Only used by EXTRA macro
1598 int _end_col_offset = _token->end_col_offset;
1599 UNUSED(_end_col_offset); // Only used by EXTRA macro
1600 _res = _Py_Expr ( e , EXTRA );
1601 if (_res == NULL && PyErr_Occurred()) {
1602 p->error_indicator = 1;
1603 D(p->level--);
1604 return NULL;
1605 }
1606 goto done;
1607 }
1608 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001609 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001610 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1611 }
1612 { // &'return' return_stmt
1613 if (p->error_indicator) {
1614 D(p->level--);
1615 return NULL;
1616 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001617 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 +01001618 stmt_ty return_stmt_var;
1619 if (
1620 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
1621 &&
1622 (return_stmt_var = return_stmt_rule(p)) // return_stmt
1623 )
1624 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001625 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 +01001626 _res = return_stmt_var;
1627 goto done;
1628 }
1629 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001630 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001631 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
1632 }
1633 { // &('import' | 'from') import_stmt
1634 if (p->error_indicator) {
1635 D(p->level--);
1636 return NULL;
1637 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001638 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 +01001639 stmt_ty import_stmt_var;
1640 if (
1641 _PyPegen_lookahead(1, _tmp_14_rule, p)
1642 &&
1643 (import_stmt_var = import_stmt_rule(p)) // import_stmt
1644 )
1645 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001646 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 +01001647 _res = import_stmt_var;
1648 goto done;
1649 }
1650 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001651 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001652 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
1653 }
1654 { // &'raise' raise_stmt
1655 if (p->error_indicator) {
1656 D(p->level--);
1657 return NULL;
1658 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001659 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 +01001660 stmt_ty raise_stmt_var;
1661 if (
1662 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
1663 &&
1664 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
1665 )
1666 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001667 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 +01001668 _res = raise_stmt_var;
1669 goto done;
1670 }
1671 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001672 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001673 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
1674 }
1675 { // 'pass'
1676 if (p->error_indicator) {
1677 D(p->level--);
1678 return NULL;
1679 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001680 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001681 Token * _keyword;
1682 if (
1683 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
1684 )
1685 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001686 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001687 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1688 if (_token == NULL) {
1689 D(p->level--);
1690 return NULL;
1691 }
1692 int _end_lineno = _token->end_lineno;
1693 UNUSED(_end_lineno); // Only used by EXTRA macro
1694 int _end_col_offset = _token->end_col_offset;
1695 UNUSED(_end_col_offset); // Only used by EXTRA macro
1696 _res = _Py_Pass ( EXTRA );
1697 if (_res == NULL && PyErr_Occurred()) {
1698 p->error_indicator = 1;
1699 D(p->level--);
1700 return NULL;
1701 }
1702 goto done;
1703 }
1704 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001705 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001706 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
1707 }
1708 { // &'del' del_stmt
1709 if (p->error_indicator) {
1710 D(p->level--);
1711 return NULL;
1712 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001713 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 +01001714 stmt_ty del_stmt_var;
1715 if (
1716 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
1717 &&
1718 (del_stmt_var = del_stmt_rule(p)) // del_stmt
1719 )
1720 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001721 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 +01001722 _res = del_stmt_var;
1723 goto done;
1724 }
1725 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001726 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001727 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
1728 }
1729 { // &'yield' yield_stmt
1730 if (p->error_indicator) {
1731 D(p->level--);
1732 return NULL;
1733 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001734 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 +01001735 stmt_ty yield_stmt_var;
1736 if (
1737 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
1738 &&
1739 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
1740 )
1741 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001742 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 +01001743 _res = yield_stmt_var;
1744 goto done;
1745 }
1746 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001747 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001748 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
1749 }
1750 { // &'assert' assert_stmt
1751 if (p->error_indicator) {
1752 D(p->level--);
1753 return NULL;
1754 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001755 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 +01001756 stmt_ty assert_stmt_var;
1757 if (
1758 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
1759 &&
1760 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
1761 )
1762 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001763 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 +01001764 _res = assert_stmt_var;
1765 goto done;
1766 }
1767 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001768 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
1770 }
1771 { // 'break'
1772 if (p->error_indicator) {
1773 D(p->level--);
1774 return NULL;
1775 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001776 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001777 Token * _keyword;
1778 if (
1779 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
1780 )
1781 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001782 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001783 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1784 if (_token == NULL) {
1785 D(p->level--);
1786 return NULL;
1787 }
1788 int _end_lineno = _token->end_lineno;
1789 UNUSED(_end_lineno); // Only used by EXTRA macro
1790 int _end_col_offset = _token->end_col_offset;
1791 UNUSED(_end_col_offset); // Only used by EXTRA macro
1792 _res = _Py_Break ( EXTRA );
1793 if (_res == NULL && PyErr_Occurred()) {
1794 p->error_indicator = 1;
1795 D(p->level--);
1796 return NULL;
1797 }
1798 goto done;
1799 }
1800 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001801 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
1803 }
1804 { // 'continue'
1805 if (p->error_indicator) {
1806 D(p->level--);
1807 return NULL;
1808 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001809 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001810 Token * _keyword;
1811 if (
1812 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
1813 )
1814 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001815 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001816 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1817 if (_token == NULL) {
1818 D(p->level--);
1819 return NULL;
1820 }
1821 int _end_lineno = _token->end_lineno;
1822 UNUSED(_end_lineno); // Only used by EXTRA macro
1823 int _end_col_offset = _token->end_col_offset;
1824 UNUSED(_end_col_offset); // Only used by EXTRA macro
1825 _res = _Py_Continue ( EXTRA );
1826 if (_res == NULL && PyErr_Occurred()) {
1827 p->error_indicator = 1;
1828 D(p->level--);
1829 return NULL;
1830 }
1831 goto done;
1832 }
1833 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001834 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001835 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
1836 }
1837 { // &'global' global_stmt
1838 if (p->error_indicator) {
1839 D(p->level--);
1840 return NULL;
1841 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001842 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 +01001843 stmt_ty global_stmt_var;
1844 if (
1845 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
1846 &&
1847 (global_stmt_var = global_stmt_rule(p)) // global_stmt
1848 )
1849 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001850 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 +01001851 _res = global_stmt_var;
1852 goto done;
1853 }
1854 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001855 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001856 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
1857 }
1858 { // &'nonlocal' nonlocal_stmt
1859 if (p->error_indicator) {
1860 D(p->level--);
1861 return NULL;
1862 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001863 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 +01001864 stmt_ty nonlocal_stmt_var;
1865 if (
1866 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
1867 &&
1868 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
1869 )
1870 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001871 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 +01001872 _res = nonlocal_stmt_var;
1873 goto done;
1874 }
1875 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001876 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001877 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
1878 }
1879 _res = NULL;
1880 done:
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001881 _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001882 D(p->level--);
1883 return _res;
1884}
1885
1886// compound_stmt:
1887// | &('def' | '@' | ASYNC) function_def
1888// | &'if' if_stmt
1889// | &('class' | '@') class_def
1890// | &('with' | ASYNC) with_stmt
1891// | &('for' | ASYNC) for_stmt
1892// | &'try' try_stmt
1893// | &'while' while_stmt
1894static stmt_ty
1895compound_stmt_rule(Parser *p)
1896{
1897 D(p->level++);
1898 if (p->error_indicator) {
1899 D(p->level--);
1900 return NULL;
1901 }
1902 stmt_ty _res = NULL;
1903 int _mark = p->mark;
1904 { // &('def' | '@' | ASYNC) function_def
1905 if (p->error_indicator) {
1906 D(p->level--);
1907 return NULL;
1908 }
1909 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
1910 stmt_ty function_def_var;
1911 if (
1912 _PyPegen_lookahead(1, _tmp_15_rule, p)
1913 &&
1914 (function_def_var = function_def_rule(p)) // function_def
1915 )
1916 {
1917 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
1918 _res = function_def_var;
1919 goto done;
1920 }
1921 p->mark = _mark;
1922 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1923 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
1924 }
1925 { // &'if' if_stmt
1926 if (p->error_indicator) {
1927 D(p->level--);
1928 return NULL;
1929 }
1930 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
1931 stmt_ty if_stmt_var;
1932 if (
1933 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
1934 &&
1935 (if_stmt_var = if_stmt_rule(p)) // if_stmt
1936 )
1937 {
1938 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
1939 _res = if_stmt_var;
1940 goto done;
1941 }
1942 p->mark = _mark;
1943 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1944 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
1945 }
1946 { // &('class' | '@') class_def
1947 if (p->error_indicator) {
1948 D(p->level--);
1949 return NULL;
1950 }
1951 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
1952 stmt_ty class_def_var;
1953 if (
1954 _PyPegen_lookahead(1, _tmp_16_rule, p)
1955 &&
1956 (class_def_var = class_def_rule(p)) // class_def
1957 )
1958 {
1959 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
1960 _res = class_def_var;
1961 goto done;
1962 }
1963 p->mark = _mark;
1964 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
1966 }
1967 { // &('with' | ASYNC) with_stmt
1968 if (p->error_indicator) {
1969 D(p->level--);
1970 return NULL;
1971 }
1972 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
1973 stmt_ty with_stmt_var;
1974 if (
1975 _PyPegen_lookahead(1, _tmp_17_rule, p)
1976 &&
1977 (with_stmt_var = with_stmt_rule(p)) // with_stmt
1978 )
1979 {
1980 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
1981 _res = with_stmt_var;
1982 goto done;
1983 }
1984 p->mark = _mark;
1985 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1986 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
1987 }
1988 { // &('for' | ASYNC) for_stmt
1989 if (p->error_indicator) {
1990 D(p->level--);
1991 return NULL;
1992 }
1993 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
1994 stmt_ty for_stmt_var;
1995 if (
1996 _PyPegen_lookahead(1, _tmp_18_rule, p)
1997 &&
1998 (for_stmt_var = for_stmt_rule(p)) // for_stmt
1999 )
2000 {
2001 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2002 _res = for_stmt_var;
2003 goto done;
2004 }
2005 p->mark = _mark;
2006 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2007 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2008 }
2009 { // &'try' try_stmt
2010 if (p->error_indicator) {
2011 D(p->level--);
2012 return NULL;
2013 }
2014 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2015 stmt_ty try_stmt_var;
2016 if (
2017 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
2018 &&
2019 (try_stmt_var = try_stmt_rule(p)) // try_stmt
2020 )
2021 {
2022 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2023 _res = try_stmt_var;
2024 goto done;
2025 }
2026 p->mark = _mark;
2027 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2028 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
2029 }
2030 { // &'while' while_stmt
2031 if (p->error_indicator) {
2032 D(p->level--);
2033 return NULL;
2034 }
2035 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2036 stmt_ty while_stmt_var;
2037 if (
2038 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
2039 &&
2040 (while_stmt_var = while_stmt_rule(p)) // while_stmt
2041 )
2042 {
2043 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2044 _res = while_stmt_var;
2045 goto done;
2046 }
2047 p->mark = _mark;
2048 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2049 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
2050 }
2051 _res = NULL;
2052 done:
2053 D(p->level--);
2054 return _res;
2055}
2056
2057// assignment:
2058// | NAME ':' expression ['=' annotated_rhs]
2059// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2060// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002061// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002062// | invalid_assignment
2063static stmt_ty
2064assignment_rule(Parser *p)
2065{
2066 D(p->level++);
2067 if (p->error_indicator) {
2068 D(p->level--);
2069 return NULL;
2070 }
2071 stmt_ty _res = NULL;
2072 int _mark = p->mark;
2073 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2074 p->error_indicator = 1;
2075 D(p->level--);
2076 return NULL;
2077 }
2078 int _start_lineno = p->tokens[_mark]->lineno;
2079 UNUSED(_start_lineno); // Only used by EXTRA macro
2080 int _start_col_offset = p->tokens[_mark]->col_offset;
2081 UNUSED(_start_col_offset); // Only used by EXTRA macro
2082 { // NAME ':' expression ['=' annotated_rhs]
2083 if (p->error_indicator) {
2084 D(p->level--);
2085 return NULL;
2086 }
2087 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2088 Token * _literal;
2089 expr_ty a;
2090 expr_ty b;
2091 void *c;
2092 if (
2093 (a = _PyPegen_name_token(p)) // NAME
2094 &&
2095 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2096 &&
2097 (b = expression_rule(p)) // expression
2098 &&
2099 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
2100 )
2101 {
2102 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2103 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2104 if (_token == NULL) {
2105 D(p->level--);
2106 return NULL;
2107 }
2108 int _end_lineno = _token->end_lineno;
2109 UNUSED(_end_lineno); // Only used by EXTRA macro
2110 int _end_col_offset = _token->end_col_offset;
2111 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002112 _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 +01002113 if (_res == NULL && PyErr_Occurred()) {
2114 p->error_indicator = 1;
2115 D(p->level--);
2116 return NULL;
2117 }
2118 goto done;
2119 }
2120 p->mark = _mark;
2121 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2122 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2123 }
2124 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2125 if (p->error_indicator) {
2126 D(p->level--);
2127 return NULL;
2128 }
2129 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2130 Token * _literal;
2131 void *a;
2132 expr_ty b;
2133 void *c;
2134 if (
2135 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
2136 &&
2137 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2138 &&
2139 (b = expression_rule(p)) // expression
2140 &&
2141 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
2142 )
2143 {
2144 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2145 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2146 if (_token == NULL) {
2147 D(p->level--);
2148 return NULL;
2149 }
2150 int _end_lineno = _token->end_lineno;
2151 UNUSED(_end_lineno); // Only used by EXTRA macro
2152 int _end_col_offset = _token->end_col_offset;
2153 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002154 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotations syntax is" , _Py_AnnAssign ( a , b , c , 0 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002155 if (_res == NULL && PyErr_Occurred()) {
2156 p->error_indicator = 1;
2157 D(p->level--);
2158 return NULL;
2159 }
2160 goto done;
2161 }
2162 p->mark = _mark;
2163 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2164 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2165 }
2166 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
2167 if (p->error_indicator) {
2168 D(p->level--);
2169 return NULL;
2170 }
2171 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 +01002172 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002173 void *b;
2174 void *tc;
2175 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01002176 (a = (asdl_expr_seq*)_loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002177 &&
2178 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
2179 &&
2180 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2181 &&
2182 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
2183 )
2184 {
2185 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2186 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2187 if (_token == NULL) {
2188 D(p->level--);
2189 return NULL;
2190 }
2191 int _end_lineno = _token->end_lineno;
2192 UNUSED(_end_lineno); // Only used by EXTRA macro
2193 int _end_col_offset = _token->end_col_offset;
2194 UNUSED(_end_col_offset); // Only used by EXTRA macro
2195 _res = _Py_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
2196 if (_res == NULL && PyErr_Occurred()) {
2197 p->error_indicator = 1;
2198 D(p->level--);
2199 return NULL;
2200 }
2201 goto done;
2202 }
2203 p->mark = _mark;
2204 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2205 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2206 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002207 { // single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002208 if (p->error_indicator) {
2209 D(p->level--);
2210 return NULL;
2211 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002212 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2213 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002214 expr_ty a;
2215 AugOperator* b;
2216 void *c;
2217 if (
2218 (a = single_target_rule(p)) // single_target
2219 &&
2220 (b = augassign_rule(p)) // augassign
2221 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002222 (_cut_var = 1)
2223 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002224 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
2225 )
2226 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002227 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 +01002228 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2229 if (_token == NULL) {
2230 D(p->level--);
2231 return NULL;
2232 }
2233 int _end_lineno = _token->end_lineno;
2234 UNUSED(_end_lineno); // Only used by EXTRA macro
2235 int _end_col_offset = _token->end_col_offset;
2236 UNUSED(_end_col_offset); // Only used by EXTRA macro
2237 _res = _Py_AugAssign ( a , b -> kind , c , EXTRA );
2238 if (_res == NULL && PyErr_Occurred()) {
2239 p->error_indicator = 1;
2240 D(p->level--);
2241 return NULL;
2242 }
2243 goto done;
2244 }
2245 p->mark = _mark;
2246 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002247 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2248 if (_cut_var) {
2249 D(p->level--);
2250 return NULL;
2251 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002252 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002253 if (p->call_invalid_rules) { // invalid_assignment
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002254 if (p->error_indicator) {
2255 D(p->level--);
2256 return NULL;
2257 }
2258 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2259 void *invalid_assignment_var;
2260 if (
2261 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
2262 )
2263 {
2264 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2265 _res = invalid_assignment_var;
2266 goto done;
2267 }
2268 p->mark = _mark;
2269 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2270 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
2271 }
2272 _res = NULL;
2273 done:
2274 D(p->level--);
2275 return _res;
2276}
2277
2278// augassign:
2279// | '+='
2280// | '-='
2281// | '*='
2282// | '@='
2283// | '/='
2284// | '%='
2285// | '&='
2286// | '|='
2287// | '^='
2288// | '<<='
2289// | '>>='
2290// | '**='
2291// | '//='
2292static AugOperator*
2293augassign_rule(Parser *p)
2294{
2295 D(p->level++);
2296 if (p->error_indicator) {
2297 D(p->level--);
2298 return NULL;
2299 }
2300 AugOperator* _res = NULL;
2301 int _mark = p->mark;
2302 { // '+='
2303 if (p->error_indicator) {
2304 D(p->level--);
2305 return NULL;
2306 }
2307 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
2308 Token * _literal;
2309 if (
2310 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
2311 )
2312 {
2313 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
2314 _res = _PyPegen_augoperator ( p , Add );
2315 if (_res == NULL && PyErr_Occurred()) {
2316 p->error_indicator = 1;
2317 D(p->level--);
2318 return NULL;
2319 }
2320 goto done;
2321 }
2322 p->mark = _mark;
2323 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2324 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
2325 }
2326 { // '-='
2327 if (p->error_indicator) {
2328 D(p->level--);
2329 return NULL;
2330 }
2331 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
2332 Token * _literal;
2333 if (
2334 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
2335 )
2336 {
2337 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
2338 _res = _PyPegen_augoperator ( p , Sub );
2339 if (_res == NULL && PyErr_Occurred()) {
2340 p->error_indicator = 1;
2341 D(p->level--);
2342 return NULL;
2343 }
2344 goto done;
2345 }
2346 p->mark = _mark;
2347 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
2349 }
2350 { // '*='
2351 if (p->error_indicator) {
2352 D(p->level--);
2353 return NULL;
2354 }
2355 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
2356 Token * _literal;
2357 if (
2358 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
2359 )
2360 {
2361 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
2362 _res = _PyPegen_augoperator ( p , Mult );
2363 if (_res == NULL && PyErr_Occurred()) {
2364 p->error_indicator = 1;
2365 D(p->level--);
2366 return NULL;
2367 }
2368 goto done;
2369 }
2370 p->mark = _mark;
2371 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
2373 }
2374 { // '@='
2375 if (p->error_indicator) {
2376 D(p->level--);
2377 return NULL;
2378 }
2379 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
2380 Token * _literal;
2381 if (
2382 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
2383 )
2384 {
2385 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002386 _res = CHECK_VERSION ( AugOperator * , 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002387 if (_res == NULL && PyErr_Occurred()) {
2388 p->error_indicator = 1;
2389 D(p->level--);
2390 return NULL;
2391 }
2392 goto done;
2393 }
2394 p->mark = _mark;
2395 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
2397 }
2398 { // '/='
2399 if (p->error_indicator) {
2400 D(p->level--);
2401 return NULL;
2402 }
2403 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
2404 Token * _literal;
2405 if (
2406 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
2407 )
2408 {
2409 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
2410 _res = _PyPegen_augoperator ( p , Div );
2411 if (_res == NULL && PyErr_Occurred()) {
2412 p->error_indicator = 1;
2413 D(p->level--);
2414 return NULL;
2415 }
2416 goto done;
2417 }
2418 p->mark = _mark;
2419 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2420 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
2421 }
2422 { // '%='
2423 if (p->error_indicator) {
2424 D(p->level--);
2425 return NULL;
2426 }
2427 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
2428 Token * _literal;
2429 if (
2430 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
2431 )
2432 {
2433 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
2434 _res = _PyPegen_augoperator ( p , Mod );
2435 if (_res == NULL && PyErr_Occurred()) {
2436 p->error_indicator = 1;
2437 D(p->level--);
2438 return NULL;
2439 }
2440 goto done;
2441 }
2442 p->mark = _mark;
2443 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2444 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
2445 }
2446 { // '&='
2447 if (p->error_indicator) {
2448 D(p->level--);
2449 return NULL;
2450 }
2451 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
2452 Token * _literal;
2453 if (
2454 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
2455 )
2456 {
2457 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
2458 _res = _PyPegen_augoperator ( p , BitAnd );
2459 if (_res == NULL && PyErr_Occurred()) {
2460 p->error_indicator = 1;
2461 D(p->level--);
2462 return NULL;
2463 }
2464 goto done;
2465 }
2466 p->mark = _mark;
2467 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2468 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
2469 }
2470 { // '|='
2471 if (p->error_indicator) {
2472 D(p->level--);
2473 return NULL;
2474 }
2475 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
2476 Token * _literal;
2477 if (
2478 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
2479 )
2480 {
2481 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
2482 _res = _PyPegen_augoperator ( p , BitOr );
2483 if (_res == NULL && PyErr_Occurred()) {
2484 p->error_indicator = 1;
2485 D(p->level--);
2486 return NULL;
2487 }
2488 goto done;
2489 }
2490 p->mark = _mark;
2491 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2492 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
2493 }
2494 { // '^='
2495 if (p->error_indicator) {
2496 D(p->level--);
2497 return NULL;
2498 }
2499 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
2500 Token * _literal;
2501 if (
2502 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
2503 )
2504 {
2505 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
2506 _res = _PyPegen_augoperator ( p , BitXor );
2507 if (_res == NULL && PyErr_Occurred()) {
2508 p->error_indicator = 1;
2509 D(p->level--);
2510 return NULL;
2511 }
2512 goto done;
2513 }
2514 p->mark = _mark;
2515 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2516 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
2517 }
2518 { // '<<='
2519 if (p->error_indicator) {
2520 D(p->level--);
2521 return NULL;
2522 }
2523 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
2524 Token * _literal;
2525 if (
2526 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
2527 )
2528 {
2529 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
2530 _res = _PyPegen_augoperator ( p , LShift );
2531 if (_res == NULL && PyErr_Occurred()) {
2532 p->error_indicator = 1;
2533 D(p->level--);
2534 return NULL;
2535 }
2536 goto done;
2537 }
2538 p->mark = _mark;
2539 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2540 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
2541 }
2542 { // '>>='
2543 if (p->error_indicator) {
2544 D(p->level--);
2545 return NULL;
2546 }
2547 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
2548 Token * _literal;
2549 if (
2550 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
2551 )
2552 {
2553 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
2554 _res = _PyPegen_augoperator ( p , RShift );
2555 if (_res == NULL && PyErr_Occurred()) {
2556 p->error_indicator = 1;
2557 D(p->level--);
2558 return NULL;
2559 }
2560 goto done;
2561 }
2562 p->mark = _mark;
2563 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2564 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
2565 }
2566 { // '**='
2567 if (p->error_indicator) {
2568 D(p->level--);
2569 return NULL;
2570 }
2571 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
2572 Token * _literal;
2573 if (
2574 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
2575 )
2576 {
2577 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
2578 _res = _PyPegen_augoperator ( p , Pow );
2579 if (_res == NULL && PyErr_Occurred()) {
2580 p->error_indicator = 1;
2581 D(p->level--);
2582 return NULL;
2583 }
2584 goto done;
2585 }
2586 p->mark = _mark;
2587 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2588 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
2589 }
2590 { // '//='
2591 if (p->error_indicator) {
2592 D(p->level--);
2593 return NULL;
2594 }
2595 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
2596 Token * _literal;
2597 if (
2598 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
2599 )
2600 {
2601 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
2602 _res = _PyPegen_augoperator ( p , FloorDiv );
2603 if (_res == NULL && PyErr_Occurred()) {
2604 p->error_indicator = 1;
2605 D(p->level--);
2606 return NULL;
2607 }
2608 goto done;
2609 }
2610 p->mark = _mark;
2611 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2612 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
2613 }
2614 _res = NULL;
2615 done:
2616 D(p->level--);
2617 return _res;
2618}
2619
2620// global_stmt: 'global' ','.NAME+
2621static stmt_ty
2622global_stmt_rule(Parser *p)
2623{
2624 D(p->level++);
2625 if (p->error_indicator) {
2626 D(p->level--);
2627 return NULL;
2628 }
2629 stmt_ty _res = NULL;
2630 int _mark = p->mark;
2631 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2632 p->error_indicator = 1;
2633 D(p->level--);
2634 return NULL;
2635 }
2636 int _start_lineno = p->tokens[_mark]->lineno;
2637 UNUSED(_start_lineno); // Only used by EXTRA macro
2638 int _start_col_offset = p->tokens[_mark]->col_offset;
2639 UNUSED(_start_col_offset); // Only used by EXTRA macro
2640 { // 'global' ','.NAME+
2641 if (p->error_indicator) {
2642 D(p->level--);
2643 return NULL;
2644 }
2645 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2646 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002647 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002648 if (
2649 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
2650 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002651 (a = (asdl_expr_seq*)_gather_25_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002652 )
2653 {
2654 D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2655 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2656 if (_token == NULL) {
2657 D(p->level--);
2658 return NULL;
2659 }
2660 int _end_lineno = _token->end_lineno;
2661 UNUSED(_end_lineno); // Only used by EXTRA macro
2662 int _end_col_offset = _token->end_col_offset;
2663 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002664 _res = _Py_Global ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002665 if (_res == NULL && PyErr_Occurred()) {
2666 p->error_indicator = 1;
2667 D(p->level--);
2668 return NULL;
2669 }
2670 goto done;
2671 }
2672 p->mark = _mark;
2673 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2674 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
2675 }
2676 _res = NULL;
2677 done:
2678 D(p->level--);
2679 return _res;
2680}
2681
2682// nonlocal_stmt: 'nonlocal' ','.NAME+
2683static stmt_ty
2684nonlocal_stmt_rule(Parser *p)
2685{
2686 D(p->level++);
2687 if (p->error_indicator) {
2688 D(p->level--);
2689 return NULL;
2690 }
2691 stmt_ty _res = NULL;
2692 int _mark = p->mark;
2693 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2694 p->error_indicator = 1;
2695 D(p->level--);
2696 return NULL;
2697 }
2698 int _start_lineno = p->tokens[_mark]->lineno;
2699 UNUSED(_start_lineno); // Only used by EXTRA macro
2700 int _start_col_offset = p->tokens[_mark]->col_offset;
2701 UNUSED(_start_col_offset); // Only used by EXTRA macro
2702 { // 'nonlocal' ','.NAME+
2703 if (p->error_indicator) {
2704 D(p->level--);
2705 return NULL;
2706 }
2707 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2708 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002709 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002710 if (
2711 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
2712 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002713 (a = (asdl_expr_seq*)_gather_27_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002714 )
2715 {
2716 D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2717 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2718 if (_token == NULL) {
2719 D(p->level--);
2720 return NULL;
2721 }
2722 int _end_lineno = _token->end_lineno;
2723 UNUSED(_end_lineno); // Only used by EXTRA macro
2724 int _end_col_offset = _token->end_col_offset;
2725 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002726 _res = _Py_Nonlocal ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002727 if (_res == NULL && PyErr_Occurred()) {
2728 p->error_indicator = 1;
2729 D(p->level--);
2730 return NULL;
2731 }
2732 goto done;
2733 }
2734 p->mark = _mark;
2735 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
2737 }
2738 _res = NULL;
2739 done:
2740 D(p->level--);
2741 return _res;
2742}
2743
2744// yield_stmt: yield_expr
2745static stmt_ty
2746yield_stmt_rule(Parser *p)
2747{
2748 D(p->level++);
2749 if (p->error_indicator) {
2750 D(p->level--);
2751 return NULL;
2752 }
2753 stmt_ty _res = NULL;
2754 int _mark = p->mark;
2755 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2756 p->error_indicator = 1;
2757 D(p->level--);
2758 return NULL;
2759 }
2760 int _start_lineno = p->tokens[_mark]->lineno;
2761 UNUSED(_start_lineno); // Only used by EXTRA macro
2762 int _start_col_offset = p->tokens[_mark]->col_offset;
2763 UNUSED(_start_col_offset); // Only used by EXTRA macro
2764 { // yield_expr
2765 if (p->error_indicator) {
2766 D(p->level--);
2767 return NULL;
2768 }
2769 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2770 expr_ty y;
2771 if (
2772 (y = yield_expr_rule(p)) // yield_expr
2773 )
2774 {
2775 D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2776 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2777 if (_token == NULL) {
2778 D(p->level--);
2779 return NULL;
2780 }
2781 int _end_lineno = _token->end_lineno;
2782 UNUSED(_end_lineno); // Only used by EXTRA macro
2783 int _end_col_offset = _token->end_col_offset;
2784 UNUSED(_end_col_offset); // Only used by EXTRA macro
2785 _res = _Py_Expr ( y , EXTRA );
2786 if (_res == NULL && PyErr_Occurred()) {
2787 p->error_indicator = 1;
2788 D(p->level--);
2789 return NULL;
2790 }
2791 goto done;
2792 }
2793 p->mark = _mark;
2794 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
2796 }
2797 _res = NULL;
2798 done:
2799 D(p->level--);
2800 return _res;
2801}
2802
2803// assert_stmt: 'assert' expression [',' expression]
2804static stmt_ty
2805assert_stmt_rule(Parser *p)
2806{
2807 D(p->level++);
2808 if (p->error_indicator) {
2809 D(p->level--);
2810 return NULL;
2811 }
2812 stmt_ty _res = NULL;
2813 int _mark = p->mark;
2814 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2815 p->error_indicator = 1;
2816 D(p->level--);
2817 return NULL;
2818 }
2819 int _start_lineno = p->tokens[_mark]->lineno;
2820 UNUSED(_start_lineno); // Only used by EXTRA macro
2821 int _start_col_offset = p->tokens[_mark]->col_offset;
2822 UNUSED(_start_col_offset); // Only used by EXTRA macro
2823 { // 'assert' expression [',' expression]
2824 if (p->error_indicator) {
2825 D(p->level--);
2826 return NULL;
2827 }
2828 D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
2829 Token * _keyword;
2830 expr_ty a;
2831 void *b;
2832 if (
2833 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
2834 &&
2835 (a = expression_rule(p)) // expression
2836 &&
2837 (b = _tmp_29_rule(p), 1) // [',' expression]
2838 )
2839 {
2840 D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
2841 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2842 if (_token == NULL) {
2843 D(p->level--);
2844 return NULL;
2845 }
2846 int _end_lineno = _token->end_lineno;
2847 UNUSED(_end_lineno); // Only used by EXTRA macro
2848 int _end_col_offset = _token->end_col_offset;
2849 UNUSED(_end_col_offset); // Only used by EXTRA macro
2850 _res = _Py_Assert ( a , b , EXTRA );
2851 if (_res == NULL && PyErr_Occurred()) {
2852 p->error_indicator = 1;
2853 D(p->level--);
2854 return NULL;
2855 }
2856 goto done;
2857 }
2858 p->mark = _mark;
2859 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2860 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
2861 }
2862 _res = NULL;
2863 done:
2864 D(p->level--);
2865 return _res;
2866}
2867
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002868// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002869static stmt_ty
2870del_stmt_rule(Parser *p)
2871{
2872 D(p->level++);
2873 if (p->error_indicator) {
2874 D(p->level--);
2875 return NULL;
2876 }
2877 stmt_ty _res = NULL;
2878 int _mark = p->mark;
2879 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2880 p->error_indicator = 1;
2881 D(p->level--);
2882 return NULL;
2883 }
2884 int _start_lineno = p->tokens[_mark]->lineno;
2885 UNUSED(_start_lineno); // Only used by EXTRA macro
2886 int _start_col_offset = p->tokens[_mark]->col_offset;
2887 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002888 { // 'del' del_targets &(';' | NEWLINE)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002889 if (p->error_indicator) {
2890 D(p->level--);
2891 return NULL;
2892 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002893 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 +01002894 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002895 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002896 if (
2897 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
2898 &&
2899 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002900 &&
2901 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002902 )
2903 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002904 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 +01002905 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2906 if (_token == NULL) {
2907 D(p->level--);
2908 return NULL;
2909 }
2910 int _end_lineno = _token->end_lineno;
2911 UNUSED(_end_lineno); // Only used by EXTRA macro
2912 int _end_col_offset = _token->end_col_offset;
2913 UNUSED(_end_col_offset); // Only used by EXTRA macro
2914 _res = _Py_Delete ( a , EXTRA );
2915 if (_res == NULL && PyErr_Occurred()) {
2916 p->error_indicator = 1;
2917 D(p->level--);
2918 return NULL;
2919 }
2920 goto done;
2921 }
2922 p->mark = _mark;
2923 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
2925 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002926 if (p->call_invalid_rules) { // invalid_del_stmt
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002927 if (p->error_indicator) {
2928 D(p->level--);
2929 return NULL;
2930 }
2931 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
2932 void *invalid_del_stmt_var;
2933 if (
2934 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
2935 )
2936 {
2937 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
2938 _res = invalid_del_stmt_var;
2939 goto done;
2940 }
2941 p->mark = _mark;
2942 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2943 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002944 }
2945 _res = NULL;
2946 done:
2947 D(p->level--);
2948 return _res;
2949}
2950
2951// import_stmt: import_name | import_from
2952static stmt_ty
2953import_stmt_rule(Parser *p)
2954{
2955 D(p->level++);
2956 if (p->error_indicator) {
2957 D(p->level--);
2958 return NULL;
2959 }
2960 stmt_ty _res = NULL;
2961 int _mark = p->mark;
2962 { // import_name
2963 if (p->error_indicator) {
2964 D(p->level--);
2965 return NULL;
2966 }
2967 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
2968 stmt_ty import_name_var;
2969 if (
2970 (import_name_var = import_name_rule(p)) // import_name
2971 )
2972 {
2973 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
2974 _res = import_name_var;
2975 goto done;
2976 }
2977 p->mark = _mark;
2978 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2979 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
2980 }
2981 { // import_from
2982 if (p->error_indicator) {
2983 D(p->level--);
2984 return NULL;
2985 }
2986 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
2987 stmt_ty import_from_var;
2988 if (
2989 (import_from_var = import_from_rule(p)) // import_from
2990 )
2991 {
2992 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
2993 _res = import_from_var;
2994 goto done;
2995 }
2996 p->mark = _mark;
2997 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2998 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
2999 }
3000 _res = NULL;
3001 done:
3002 D(p->level--);
3003 return _res;
3004}
3005
3006// import_name: 'import' dotted_as_names
3007static stmt_ty
3008import_name_rule(Parser *p)
3009{
3010 D(p->level++);
3011 if (p->error_indicator) {
3012 D(p->level--);
3013 return NULL;
3014 }
3015 stmt_ty _res = NULL;
3016 int _mark = p->mark;
3017 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3018 p->error_indicator = 1;
3019 D(p->level--);
3020 return NULL;
3021 }
3022 int _start_lineno = p->tokens[_mark]->lineno;
3023 UNUSED(_start_lineno); // Only used by EXTRA macro
3024 int _start_col_offset = p->tokens[_mark]->col_offset;
3025 UNUSED(_start_col_offset); // Only used by EXTRA macro
3026 { // 'import' dotted_as_names
3027 if (p->error_indicator) {
3028 D(p->level--);
3029 return NULL;
3030 }
3031 D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3032 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003033 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003034 if (
3035 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
3036 &&
3037 (a = dotted_as_names_rule(p)) // dotted_as_names
3038 )
3039 {
3040 D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3041 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3042 if (_token == NULL) {
3043 D(p->level--);
3044 return NULL;
3045 }
3046 int _end_lineno = _token->end_lineno;
3047 UNUSED(_end_lineno); // Only used by EXTRA macro
3048 int _end_col_offset = _token->end_col_offset;
3049 UNUSED(_end_col_offset); // Only used by EXTRA macro
3050 _res = _Py_Import ( a , EXTRA );
3051 if (_res == NULL && PyErr_Occurred()) {
3052 p->error_indicator = 1;
3053 D(p->level--);
3054 return NULL;
3055 }
3056 goto done;
3057 }
3058 p->mark = _mark;
3059 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
3061 }
3062 _res = NULL;
3063 done:
3064 D(p->level--);
3065 return _res;
3066}
3067
3068// import_from:
3069// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3070// | 'from' (('.' | '...'))+ 'import' import_from_targets
3071static stmt_ty
3072import_from_rule(Parser *p)
3073{
3074 D(p->level++);
3075 if (p->error_indicator) {
3076 D(p->level--);
3077 return NULL;
3078 }
3079 stmt_ty _res = NULL;
3080 int _mark = p->mark;
3081 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3082 p->error_indicator = 1;
3083 D(p->level--);
3084 return NULL;
3085 }
3086 int _start_lineno = p->tokens[_mark]->lineno;
3087 UNUSED(_start_lineno); // Only used by EXTRA macro
3088 int _start_col_offset = p->tokens[_mark]->col_offset;
3089 UNUSED(_start_col_offset); // Only used by EXTRA macro
3090 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3091 if (p->error_indicator) {
3092 D(p->level--);
3093 return NULL;
3094 }
3095 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3096 Token * _keyword;
3097 Token * _keyword_1;
3098 asdl_seq * a;
3099 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003100 asdl_alias_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003101 if (
3102 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3103 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003104 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003105 &&
3106 (b = dotted_name_rule(p)) // dotted_name
3107 &&
3108 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3109 &&
3110 (c = import_from_targets_rule(p)) // import_from_targets
3111 )
3112 {
3113 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3114 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3115 if (_token == NULL) {
3116 D(p->level--);
3117 return NULL;
3118 }
3119 int _end_lineno = _token->end_lineno;
3120 UNUSED(_end_lineno); // Only used by EXTRA macro
3121 int _end_col_offset = _token->end_col_offset;
3122 UNUSED(_end_col_offset); // Only used by EXTRA macro
3123 _res = _Py_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
3124 if (_res == NULL && PyErr_Occurred()) {
3125 p->error_indicator = 1;
3126 D(p->level--);
3127 return NULL;
3128 }
3129 goto done;
3130 }
3131 p->mark = _mark;
3132 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3134 }
3135 { // 'from' (('.' | '...'))+ 'import' import_from_targets
3136 if (p->error_indicator) {
3137 D(p->level--);
3138 return NULL;
3139 }
3140 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3141 Token * _keyword;
3142 Token * _keyword_1;
3143 asdl_seq * a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003144 asdl_alias_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003145 if (
3146 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3147 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003148 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003149 &&
3150 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3151 &&
3152 (b = import_from_targets_rule(p)) // import_from_targets
3153 )
3154 {
3155 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3156 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3157 if (_token == NULL) {
3158 D(p->level--);
3159 return NULL;
3160 }
3161 int _end_lineno = _token->end_lineno;
3162 UNUSED(_end_lineno); // Only used by EXTRA macro
3163 int _end_col_offset = _token->end_col_offset;
3164 UNUSED(_end_col_offset); // Only used by EXTRA macro
3165 _res = _Py_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
3166 if (_res == NULL && PyErr_Occurred()) {
3167 p->error_indicator = 1;
3168 D(p->level--);
3169 return NULL;
3170 }
3171 goto done;
3172 }
3173 p->mark = _mark;
3174 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3176 }
3177 _res = NULL;
3178 done:
3179 D(p->level--);
3180 return _res;
3181}
3182
3183// import_from_targets:
3184// | '(' import_from_as_names ','? ')'
3185// | import_from_as_names !','
3186// | '*'
3187// | invalid_import_from_targets
Pablo Galindoa5634c42020-09-16 19:42:00 +01003188static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003189import_from_targets_rule(Parser *p)
3190{
3191 D(p->level++);
3192 if (p->error_indicator) {
3193 D(p->level--);
3194 return NULL;
3195 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003196 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003197 int _mark = p->mark;
3198 { // '(' import_from_as_names ','? ')'
3199 if (p->error_indicator) {
3200 D(p->level--);
3201 return NULL;
3202 }
3203 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3204 Token * _literal;
3205 Token * _literal_1;
3206 void *_opt_var;
3207 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01003208 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003209 if (
3210 (_literal = _PyPegen_expect_token(p, 7)) // token='('
3211 &&
3212 (a = import_from_as_names_rule(p)) // import_from_as_names
3213 &&
3214 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
3215 &&
3216 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
3217 )
3218 {
3219 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3220 _res = a;
3221 if (_res == NULL && PyErr_Occurred()) {
3222 p->error_indicator = 1;
3223 D(p->level--);
3224 return NULL;
3225 }
3226 goto done;
3227 }
3228 p->mark = _mark;
3229 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3230 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3231 }
3232 { // import_from_as_names !','
3233 if (p->error_indicator) {
3234 D(p->level--);
3235 return NULL;
3236 }
3237 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 +01003238 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003239 if (
3240 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
3241 &&
3242 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
3243 )
3244 {
3245 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
3246 _res = import_from_as_names_var;
3247 goto done;
3248 }
3249 p->mark = _mark;
3250 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3251 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
3252 }
3253 { // '*'
3254 if (p->error_indicator) {
3255 D(p->level--);
3256 return NULL;
3257 }
3258 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
3259 Token * _literal;
3260 if (
3261 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
3262 )
3263 {
3264 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03003265 _res = ( asdl_alias_seq * ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003266 if (_res == NULL && PyErr_Occurred()) {
3267 p->error_indicator = 1;
3268 D(p->level--);
3269 return NULL;
3270 }
3271 goto done;
3272 }
3273 p->mark = _mark;
3274 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3275 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
3276 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003277 if (p->call_invalid_rules) { // invalid_import_from_targets
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003278 if (p->error_indicator) {
3279 D(p->level--);
3280 return NULL;
3281 }
3282 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3283 void *invalid_import_from_targets_var;
3284 if (
3285 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3286 )
3287 {
3288 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3289 _res = invalid_import_from_targets_var;
3290 goto done;
3291 }
3292 p->mark = _mark;
3293 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3294 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
3295 }
3296 _res = NULL;
3297 done:
3298 D(p->level--);
3299 return _res;
3300}
3301
3302// import_from_as_names: ','.import_from_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003303static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003304import_from_as_names_rule(Parser *p)
3305{
3306 D(p->level++);
3307 if (p->error_indicator) {
3308 D(p->level--);
3309 return NULL;
3310 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003311 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003312 int _mark = p->mark;
3313 { // ','.import_from_as_name+
3314 if (p->error_indicator) {
3315 D(p->level--);
3316 return NULL;
3317 }
3318 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 +01003319 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003320 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003321 (a = (asdl_alias_seq*)_gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003322 )
3323 {
3324 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
3325 _res = a;
3326 if (_res == NULL && PyErr_Occurred()) {
3327 p->error_indicator = 1;
3328 D(p->level--);
3329 return NULL;
3330 }
3331 goto done;
3332 }
3333 p->mark = _mark;
3334 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
3336 }
3337 _res = NULL;
3338 done:
3339 D(p->level--);
3340 return _res;
3341}
3342
3343// import_from_as_name: NAME ['as' NAME]
3344static alias_ty
3345import_from_as_name_rule(Parser *p)
3346{
3347 D(p->level++);
3348 if (p->error_indicator) {
3349 D(p->level--);
3350 return NULL;
3351 }
3352 alias_ty _res = NULL;
3353 int _mark = p->mark;
3354 { // NAME ['as' NAME]
3355 if (p->error_indicator) {
3356 D(p->level--);
3357 return NULL;
3358 }
3359 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3360 expr_ty a;
3361 void *b;
3362 if (
3363 (a = _PyPegen_name_token(p)) // NAME
3364 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003365 (b = _tmp_35_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003366 )
3367 {
3368 D(fprintf(stderr, "%*c+ import_from_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3369 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3370 if (_res == NULL && PyErr_Occurred()) {
3371 p->error_indicator = 1;
3372 D(p->level--);
3373 return NULL;
3374 }
3375 goto done;
3376 }
3377 p->mark = _mark;
3378 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3379 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
3380 }
3381 _res = NULL;
3382 done:
3383 D(p->level--);
3384 return _res;
3385}
3386
3387// dotted_as_names: ','.dotted_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003388static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003389dotted_as_names_rule(Parser *p)
3390{
3391 D(p->level++);
3392 if (p->error_indicator) {
3393 D(p->level--);
3394 return NULL;
3395 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003396 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003397 int _mark = p->mark;
3398 { // ','.dotted_as_name+
3399 if (p->error_indicator) {
3400 D(p->level--);
3401 return NULL;
3402 }
3403 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 +01003404 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003405 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003406 (a = (asdl_alias_seq*)_gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003407 )
3408 {
3409 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
3410 _res = a;
3411 if (_res == NULL && PyErr_Occurred()) {
3412 p->error_indicator = 1;
3413 D(p->level--);
3414 return NULL;
3415 }
3416 goto done;
3417 }
3418 p->mark = _mark;
3419 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3420 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
3421 }
3422 _res = NULL;
3423 done:
3424 D(p->level--);
3425 return _res;
3426}
3427
3428// dotted_as_name: dotted_name ['as' NAME]
3429static alias_ty
3430dotted_as_name_rule(Parser *p)
3431{
3432 D(p->level++);
3433 if (p->error_indicator) {
3434 D(p->level--);
3435 return NULL;
3436 }
3437 alias_ty _res = NULL;
3438 int _mark = p->mark;
3439 { // dotted_name ['as' NAME]
3440 if (p->error_indicator) {
3441 D(p->level--);
3442 return NULL;
3443 }
3444 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3445 expr_ty a;
3446 void *b;
3447 if (
3448 (a = dotted_name_rule(p)) // dotted_name
3449 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003450 (b = _tmp_38_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003451 )
3452 {
3453 D(fprintf(stderr, "%*c+ dotted_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3454 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3455 if (_res == NULL && PyErr_Occurred()) {
3456 p->error_indicator = 1;
3457 D(p->level--);
3458 return NULL;
3459 }
3460 goto done;
3461 }
3462 p->mark = _mark;
3463 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3464 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
3465 }
3466 _res = NULL;
3467 done:
3468 D(p->level--);
3469 return _res;
3470}
3471
3472// Left-recursive
3473// dotted_name: dotted_name '.' NAME | NAME
3474static expr_ty dotted_name_raw(Parser *);
3475static expr_ty
3476dotted_name_rule(Parser *p)
3477{
3478 D(p->level++);
3479 expr_ty _res = NULL;
3480 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3481 D(p->level--);
3482 return _res;
3483 }
3484 int _mark = p->mark;
3485 int _resmark = p->mark;
3486 while (1) {
3487 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
3488 if (tmpvar_0) {
3489 D(p->level--);
3490 return _res;
3491 }
3492 p->mark = _mark;
3493 void *_raw = dotted_name_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02003494 if (p->error_indicator)
3495 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003496 if (_raw == NULL || p->mark <= _resmark)
3497 break;
3498 _resmark = p->mark;
3499 _res = _raw;
3500 }
3501 p->mark = _resmark;
3502 D(p->level--);
3503 return _res;
3504}
3505static expr_ty
3506dotted_name_raw(Parser *p)
3507{
3508 D(p->level++);
3509 if (p->error_indicator) {
3510 D(p->level--);
3511 return NULL;
3512 }
3513 expr_ty _res = NULL;
3514 int _mark = p->mark;
3515 { // dotted_name '.' NAME
3516 if (p->error_indicator) {
3517 D(p->level--);
3518 return NULL;
3519 }
3520 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3521 Token * _literal;
3522 expr_ty a;
3523 expr_ty b;
3524 if (
3525 (a = dotted_name_rule(p)) // dotted_name
3526 &&
3527 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
3528 &&
3529 (b = _PyPegen_name_token(p)) // NAME
3530 )
3531 {
3532 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3533 _res = _PyPegen_join_names_with_dot ( p , a , b );
3534 if (_res == NULL && PyErr_Occurred()) {
3535 p->error_indicator = 1;
3536 D(p->level--);
3537 return NULL;
3538 }
3539 goto done;
3540 }
3541 p->mark = _mark;
3542 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3543 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
3544 }
3545 { // NAME
3546 if (p->error_indicator) {
3547 D(p->level--);
3548 return NULL;
3549 }
3550 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
3551 expr_ty name_var;
3552 if (
3553 (name_var = _PyPegen_name_token(p)) // NAME
3554 )
3555 {
3556 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
3557 _res = name_var;
3558 goto done;
3559 }
3560 p->mark = _mark;
3561 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
3563 }
3564 _res = NULL;
3565 done:
3566 D(p->level--);
3567 return _res;
3568}
3569
3570// if_stmt:
Pablo Galindo58fb1562021-02-02 19:54:22 +00003571// | 'if' named_expression &&':' block elif_stmt
3572// | 'if' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003573static stmt_ty
3574if_stmt_rule(Parser *p)
3575{
3576 D(p->level++);
3577 if (p->error_indicator) {
3578 D(p->level--);
3579 return NULL;
3580 }
3581 stmt_ty _res = NULL;
3582 int _mark = p->mark;
3583 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3584 p->error_indicator = 1;
3585 D(p->level--);
3586 return NULL;
3587 }
3588 int _start_lineno = p->tokens[_mark]->lineno;
3589 UNUSED(_start_lineno); // Only used by EXTRA macro
3590 int _start_col_offset = p->tokens[_mark]->col_offset;
3591 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00003592 { // 'if' named_expression &&':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003593 if (p->error_indicator) {
3594 D(p->level--);
3595 return NULL;
3596 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003597 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 +01003598 Token * _keyword;
3599 Token * _literal;
3600 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003601 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003602 stmt_ty c;
3603 if (
3604 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3605 &&
3606 (a = named_expression_rule(p)) // named_expression
3607 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003608 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003609 &&
3610 (b = block_rule(p)) // block
3611 &&
3612 (c = elif_stmt_rule(p)) // elif_stmt
3613 )
3614 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003615 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 +01003616 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3617 if (_token == NULL) {
3618 D(p->level--);
3619 return NULL;
3620 }
3621 int _end_lineno = _token->end_lineno;
3622 UNUSED(_end_lineno); // Only used by EXTRA macro
3623 int _end_col_offset = _token->end_col_offset;
3624 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03003625 _res = _Py_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003626 if (_res == NULL && PyErr_Occurred()) {
3627 p->error_indicator = 1;
3628 D(p->level--);
3629 return NULL;
3630 }
3631 goto done;
3632 }
3633 p->mark = _mark;
3634 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression &&':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003636 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003637 { // 'if' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003638 if (p->error_indicator) {
3639 D(p->level--);
3640 return NULL;
3641 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003642 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 +01003643 Token * _keyword;
3644 Token * _literal;
3645 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003646 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003647 void *c;
3648 if (
3649 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3650 &&
3651 (a = named_expression_rule(p)) // named_expression
3652 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003653 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003654 &&
3655 (b = block_rule(p)) // block
3656 &&
3657 (c = else_block_rule(p), 1) // else_block?
3658 )
3659 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003660 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 +01003661 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3662 if (_token == NULL) {
3663 D(p->level--);
3664 return NULL;
3665 }
3666 int _end_lineno = _token->end_lineno;
3667 UNUSED(_end_lineno); // Only used by EXTRA macro
3668 int _end_col_offset = _token->end_col_offset;
3669 UNUSED(_end_col_offset); // Only used by EXTRA macro
3670 _res = _Py_If ( a , b , c , EXTRA );
3671 if (_res == NULL && PyErr_Occurred()) {
3672 p->error_indicator = 1;
3673 D(p->level--);
3674 return NULL;
3675 }
3676 goto done;
3677 }
3678 p->mark = _mark;
3679 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003680 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression &&':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003681 }
3682 _res = NULL;
3683 done:
3684 D(p->level--);
3685 return _res;
3686}
3687
3688// elif_stmt:
Pablo Galindo58fb1562021-02-02 19:54:22 +00003689// | 'elif' named_expression &&':' block elif_stmt
3690// | 'elif' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003691static stmt_ty
3692elif_stmt_rule(Parser *p)
3693{
3694 D(p->level++);
3695 if (p->error_indicator) {
3696 D(p->level--);
3697 return NULL;
3698 }
3699 stmt_ty _res = NULL;
3700 int _mark = p->mark;
3701 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3702 p->error_indicator = 1;
3703 D(p->level--);
3704 return NULL;
3705 }
3706 int _start_lineno = p->tokens[_mark]->lineno;
3707 UNUSED(_start_lineno); // Only used by EXTRA macro
3708 int _start_col_offset = p->tokens[_mark]->col_offset;
3709 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00003710 { // 'elif' named_expression &&':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003711 if (p->error_indicator) {
3712 D(p->level--);
3713 return NULL;
3714 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003715 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 +01003716 Token * _keyword;
3717 Token * _literal;
3718 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003719 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003720 stmt_ty c;
3721 if (
3722 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
3723 &&
3724 (a = named_expression_rule(p)) // named_expression
3725 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003726 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003727 &&
3728 (b = block_rule(p)) // block
3729 &&
3730 (c = elif_stmt_rule(p)) // elif_stmt
3731 )
3732 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003733 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 +01003734 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3735 if (_token == NULL) {
3736 D(p->level--);
3737 return NULL;
3738 }
3739 int _end_lineno = _token->end_lineno;
3740 UNUSED(_end_lineno); // Only used by EXTRA macro
3741 int _end_col_offset = _token->end_col_offset;
3742 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03003743 _res = _Py_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003744 if (_res == NULL && PyErr_Occurred()) {
3745 p->error_indicator = 1;
3746 D(p->level--);
3747 return NULL;
3748 }
3749 goto done;
3750 }
3751 p->mark = _mark;
3752 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003753 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression &&':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003754 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003755 { // 'elif' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003756 if (p->error_indicator) {
3757 D(p->level--);
3758 return NULL;
3759 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003760 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 +01003761 Token * _keyword;
3762 Token * _literal;
3763 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003764 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003765 void *c;
3766 if (
3767 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
3768 &&
3769 (a = named_expression_rule(p)) // named_expression
3770 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003771 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003772 &&
3773 (b = block_rule(p)) // block
3774 &&
3775 (c = else_block_rule(p), 1) // else_block?
3776 )
3777 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003778 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 +01003779 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3780 if (_token == NULL) {
3781 D(p->level--);
3782 return NULL;
3783 }
3784 int _end_lineno = _token->end_lineno;
3785 UNUSED(_end_lineno); // Only used by EXTRA macro
3786 int _end_col_offset = _token->end_col_offset;
3787 UNUSED(_end_col_offset); // Only used by EXTRA macro
3788 _res = _Py_If ( a , b , c , EXTRA );
3789 if (_res == NULL && PyErr_Occurred()) {
3790 p->error_indicator = 1;
3791 D(p->level--);
3792 return NULL;
3793 }
3794 goto done;
3795 }
3796 p->mark = _mark;
3797 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003798 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression &&':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003799 }
3800 _res = NULL;
3801 done:
3802 D(p->level--);
3803 return _res;
3804}
3805
Pablo Galindo58fb1562021-02-02 19:54:22 +00003806// else_block: 'else' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01003807static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003808else_block_rule(Parser *p)
3809{
3810 D(p->level++);
3811 if (p->error_indicator) {
3812 D(p->level--);
3813 return NULL;
3814 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003815 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003816 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +00003817 { // 'else' &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003818 if (p->error_indicator) {
3819 D(p->level--);
3820 return NULL;
3821 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003822 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003823 Token * _keyword;
3824 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003825 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003826 if (
3827 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
3828 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003829 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003830 &&
3831 (b = block_rule(p)) // block
3832 )
3833 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003834 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 +01003835 _res = b;
3836 if (_res == NULL && PyErr_Occurred()) {
3837 p->error_indicator = 1;
3838 D(p->level--);
3839 return NULL;
3840 }
3841 goto done;
3842 }
3843 p->mark = _mark;
3844 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003845 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003846 }
3847 _res = NULL;
3848 done:
3849 D(p->level--);
3850 return _res;
3851}
3852
Pablo Galindo58fb1562021-02-02 19:54:22 +00003853// while_stmt: 'while' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003854static stmt_ty
3855while_stmt_rule(Parser *p)
3856{
3857 D(p->level++);
3858 if (p->error_indicator) {
3859 D(p->level--);
3860 return NULL;
3861 }
3862 stmt_ty _res = NULL;
3863 int _mark = p->mark;
3864 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3865 p->error_indicator = 1;
3866 D(p->level--);
3867 return NULL;
3868 }
3869 int _start_lineno = p->tokens[_mark]->lineno;
3870 UNUSED(_start_lineno); // Only used by EXTRA macro
3871 int _start_col_offset = p->tokens[_mark]->col_offset;
3872 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00003873 { // 'while' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003874 if (p->error_indicator) {
3875 D(p->level--);
3876 return NULL;
3877 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003878 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 +01003879 Token * _keyword;
3880 Token * _literal;
3881 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003882 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003883 void *c;
3884 if (
3885 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
3886 &&
3887 (a = named_expression_rule(p)) // named_expression
3888 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003889 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003890 &&
3891 (b = block_rule(p)) // block
3892 &&
3893 (c = else_block_rule(p), 1) // else_block?
3894 )
3895 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003896 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 +01003897 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3898 if (_token == NULL) {
3899 D(p->level--);
3900 return NULL;
3901 }
3902 int _end_lineno = _token->end_lineno;
3903 UNUSED(_end_lineno); // Only used by EXTRA macro
3904 int _end_col_offset = _token->end_col_offset;
3905 UNUSED(_end_col_offset); // Only used by EXTRA macro
3906 _res = _Py_While ( a , b , c , EXTRA );
3907 if (_res == NULL && PyErr_Occurred()) {
3908 p->error_indicator = 1;
3909 D(p->level--);
3910 return NULL;
3911 }
3912 goto done;
3913 }
3914 p->mark = _mark;
3915 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003916 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression &&':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003917 }
3918 _res = NULL;
3919 done:
3920 D(p->level--);
3921 return _res;
3922}
3923
3924// for_stmt:
Pablo Galindo58fb1562021-02-02 19:54:22 +00003925// | 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
3926// | ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003927// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003928static stmt_ty
3929for_stmt_rule(Parser *p)
3930{
3931 D(p->level++);
3932 if (p->error_indicator) {
3933 D(p->level--);
3934 return NULL;
3935 }
3936 stmt_ty _res = NULL;
3937 int _mark = p->mark;
3938 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3939 p->error_indicator = 1;
3940 D(p->level--);
3941 return NULL;
3942 }
3943 int _start_lineno = p->tokens[_mark]->lineno;
3944 UNUSED(_start_lineno); // Only used by EXTRA macro
3945 int _start_col_offset = p->tokens[_mark]->col_offset;
3946 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00003947 { // 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003948 if (p->error_indicator) {
3949 D(p->level--);
3950 return NULL;
3951 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003952 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 +03003953 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003954 Token * _keyword;
3955 Token * _keyword_1;
3956 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003957 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003958 void *el;
3959 expr_ty ex;
3960 expr_ty t;
3961 void *tc;
3962 if (
3963 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
3964 &&
3965 (t = star_targets_rule(p)) // star_targets
3966 &&
3967 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
3968 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003969 (_cut_var = 1)
3970 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003971 (ex = star_expressions_rule(p)) // star_expressions
3972 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003973 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003974 &&
3975 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
3976 &&
3977 (b = block_rule(p)) // block
3978 &&
3979 (el = else_block_rule(p), 1) // else_block?
3980 )
3981 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003982 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 +01003983 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3984 if (_token == NULL) {
3985 D(p->level--);
3986 return NULL;
3987 }
3988 int _end_lineno = _token->end_lineno;
3989 UNUSED(_end_lineno); // Only used by EXTRA macro
3990 int _end_col_offset = _token->end_col_offset;
3991 UNUSED(_end_col_offset); // Only used by EXTRA macro
3992 _res = _Py_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
3993 if (_res == NULL && PyErr_Occurred()) {
3994 p->error_indicator = 1;
3995 D(p->level--);
3996 return NULL;
3997 }
3998 goto done;
3999 }
4000 p->mark = _mark;
4001 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004002 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 +03004003 if (_cut_var) {
4004 D(p->level--);
4005 return NULL;
4006 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004007 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004008 { // ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004009 if (p->error_indicator) {
4010 D(p->level--);
4011 return NULL;
4012 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004013 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 +03004014 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004015 Token * _keyword;
4016 Token * _keyword_1;
4017 Token * _literal;
4018 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004019 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004020 void *el;
4021 expr_ty ex;
4022 expr_ty t;
4023 void *tc;
4024 if (
4025 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4026 &&
4027 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4028 &&
4029 (t = star_targets_rule(p)) // star_targets
4030 &&
4031 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4032 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004033 (_cut_var = 1)
4034 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004035 (ex = star_expressions_rule(p)) // star_expressions
4036 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004037 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004038 &&
4039 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4040 &&
4041 (b = block_rule(p)) // block
4042 &&
4043 (el = else_block_rule(p), 1) // else_block?
4044 )
4045 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004046 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 +01004047 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4048 if (_token == NULL) {
4049 D(p->level--);
4050 return NULL;
4051 }
4052 int _end_lineno = _token->end_lineno;
4053 UNUSED(_end_lineno); // Only used by EXTRA macro
4054 int _end_col_offset = _token->end_col_offset;
4055 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03004056 _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 +01004057 if (_res == NULL && PyErr_Occurred()) {
4058 p->error_indicator = 1;
4059 D(p->level--);
4060 return NULL;
4061 }
4062 goto done;
4063 }
4064 p->mark = _mark;
4065 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004066 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 +03004067 if (_cut_var) {
4068 D(p->level--);
4069 return NULL;
4070 }
4071 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004072 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004073 if (p->error_indicator) {
4074 D(p->level--);
4075 return NULL;
4076 }
4077 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4078 void *invalid_for_target_var;
4079 if (
4080 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4081 )
4082 {
4083 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4084 _res = invalid_for_target_var;
4085 goto done;
4086 }
4087 p->mark = _mark;
4088 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4089 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004090 }
4091 _res = NULL;
4092 done:
4093 D(p->level--);
4094 return _res;
4095}
4096
4097// with_stmt:
4098// | 'with' '(' ','.with_item+ ','? ')' ':' block
4099// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
4100// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4101// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo58fb1562021-02-02 19:54:22 +00004102// | invalid_with_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004103static stmt_ty
4104with_stmt_rule(Parser *p)
4105{
4106 D(p->level++);
4107 if (p->error_indicator) {
4108 D(p->level--);
4109 return NULL;
4110 }
4111 stmt_ty _res = NULL;
4112 int _mark = p->mark;
4113 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4114 p->error_indicator = 1;
4115 D(p->level--);
4116 return NULL;
4117 }
4118 int _start_lineno = p->tokens[_mark]->lineno;
4119 UNUSED(_start_lineno); // Only used by EXTRA macro
4120 int _start_col_offset = p->tokens[_mark]->col_offset;
4121 UNUSED(_start_col_offset); // Only used by EXTRA macro
4122 { // 'with' '(' ','.with_item+ ','? ')' ':' block
4123 if (p->error_indicator) {
4124 D(p->level--);
4125 return NULL;
4126 }
4127 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4128 Token * _keyword;
4129 Token * _literal;
4130 Token * _literal_1;
4131 Token * _literal_2;
4132 void *_opt_var;
4133 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004134 asdl_withitem_seq* a;
4135 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004136 if (
4137 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4138 &&
4139 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4140 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004141 (a = (asdl_withitem_seq*)_gather_39_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004142 &&
4143 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4144 &&
4145 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4146 &&
4147 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4148 &&
4149 (b = block_rule(p)) // block
4150 )
4151 {
4152 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4153 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4154 if (_token == NULL) {
4155 D(p->level--);
4156 return NULL;
4157 }
4158 int _end_lineno = _token->end_lineno;
4159 UNUSED(_end_lineno); // Only used by EXTRA macro
4160 int _end_col_offset = _token->end_col_offset;
4161 UNUSED(_end_col_offset); // Only used by EXTRA macro
4162 _res = _Py_With ( a , b , NULL , EXTRA );
4163 if (_res == NULL && PyErr_Occurred()) {
4164 p->error_indicator = 1;
4165 D(p->level--);
4166 return NULL;
4167 }
4168 goto done;
4169 }
4170 p->mark = _mark;
4171 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4172 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4173 }
4174 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
4175 if (p->error_indicator) {
4176 D(p->level--);
4177 return NULL;
4178 }
4179 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4180 Token * _keyword;
4181 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004182 asdl_withitem_seq* a;
4183 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004184 void *tc;
4185 if (
4186 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4187 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004188 (a = (asdl_withitem_seq*)_gather_41_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004189 &&
4190 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4191 &&
4192 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4193 &&
4194 (b = block_rule(p)) // block
4195 )
4196 {
4197 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4198 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4199 if (_token == NULL) {
4200 D(p->level--);
4201 return NULL;
4202 }
4203 int _end_lineno = _token->end_lineno;
4204 UNUSED(_end_lineno); // Only used by EXTRA macro
4205 int _end_col_offset = _token->end_col_offset;
4206 UNUSED(_end_col_offset); // Only used by EXTRA macro
4207 _res = _Py_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
4208 if (_res == NULL && PyErr_Occurred()) {
4209 p->error_indicator = 1;
4210 D(p->level--);
4211 return NULL;
4212 }
4213 goto done;
4214 }
4215 p->mark = _mark;
4216 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4217 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4218 }
4219 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4220 if (p->error_indicator) {
4221 D(p->level--);
4222 return NULL;
4223 }
4224 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4225 Token * _keyword;
4226 Token * _literal;
4227 Token * _literal_1;
4228 Token * _literal_2;
4229 void *_opt_var;
4230 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004231 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004232 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004233 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004234 if (
4235 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4236 &&
4237 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4238 &&
4239 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4240 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004241 (a = (asdl_withitem_seq*)_gather_43_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004242 &&
4243 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4244 &&
4245 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4246 &&
4247 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4248 &&
4249 (b = block_rule(p)) // block
4250 )
4251 {
4252 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4253 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4254 if (_token == NULL) {
4255 D(p->level--);
4256 return NULL;
4257 }
4258 int _end_lineno = _token->end_lineno;
4259 UNUSED(_end_lineno); // Only used by EXTRA macro
4260 int _end_col_offset = _token->end_col_offset;
4261 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03004262 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NULL , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004263 if (_res == NULL && PyErr_Occurred()) {
4264 p->error_indicator = 1;
4265 D(p->level--);
4266 return NULL;
4267 }
4268 goto done;
4269 }
4270 p->mark = _mark;
4271 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4272 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4273 }
4274 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
4275 if (p->error_indicator) {
4276 D(p->level--);
4277 return NULL;
4278 }
4279 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4280 Token * _keyword;
4281 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004282 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004283 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004284 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004285 void *tc;
4286 if (
4287 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4288 &&
4289 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4290 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004291 (a = (asdl_withitem_seq*)_gather_45_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004292 &&
4293 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4294 &&
4295 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4296 &&
4297 (b = block_rule(p)) // block
4298 )
4299 {
4300 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4301 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4302 if (_token == NULL) {
4303 D(p->level--);
4304 return NULL;
4305 }
4306 int _end_lineno = _token->end_lineno;
4307 UNUSED(_end_lineno); // Only used by EXTRA macro
4308 int _end_col_offset = _token->end_col_offset;
4309 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03004310 _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 +01004311 if (_res == NULL && PyErr_Occurred()) {
4312 p->error_indicator = 1;
4313 D(p->level--);
4314 return NULL;
4315 }
4316 goto done;
4317 }
4318 p->mark = _mark;
4319 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4320 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4321 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004322 if (p->call_invalid_rules) { // invalid_with_stmt
4323 if (p->error_indicator) {
4324 D(p->level--);
4325 return NULL;
4326 }
4327 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4328 void *invalid_with_stmt_var;
4329 if (
4330 (invalid_with_stmt_var = invalid_with_stmt_rule(p)) // invalid_with_stmt
4331 )
4332 {
4333 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4334 _res = invalid_with_stmt_var;
4335 goto done;
4336 }
4337 p->mark = _mark;
4338 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4339 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt"));
4340 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004341 _res = NULL;
4342 done:
4343 D(p->level--);
4344 return _res;
4345}
4346
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004347// with_item:
4348// | expression 'as' star_target &(',' | ')' | ':')
4349// | invalid_with_item
4350// | expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004351static withitem_ty
4352with_item_rule(Parser *p)
4353{
4354 D(p->level++);
4355 if (p->error_indicator) {
4356 D(p->level--);
4357 return NULL;
4358 }
4359 withitem_ty _res = NULL;
4360 int _mark = p->mark;
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004361 { // expression 'as' star_target &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004362 if (p->error_indicator) {
4363 D(p->level--);
4364 return NULL;
4365 }
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004366 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 +03004367 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004368 expr_ty e;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004369 expr_ty t;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004370 if (
4371 (e = expression_rule(p)) // expression
4372 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004373 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4374 &&
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004375 (t = star_target_rule(p)) // star_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004376 &&
4377 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004378 )
4379 {
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004380 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 +03004381 _res = _Py_withitem ( e , t , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004382 if (_res == NULL && PyErr_Occurred()) {
4383 p->error_indicator = 1;
4384 D(p->level--);
4385 return NULL;
4386 }
4387 goto done;
4388 }
4389 p->mark = _mark;
4390 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004391 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004392 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004393 if (p->call_invalid_rules) { // invalid_with_item
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004394 if (p->error_indicator) {
4395 D(p->level--);
4396 return NULL;
4397 }
4398 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4399 void *invalid_with_item_var;
4400 if (
4401 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4402 )
4403 {
4404 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4405 _res = invalid_with_item_var;
4406 goto done;
4407 }
4408 p->mark = _mark;
4409 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4410 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4411 }
4412 { // expression
4413 if (p->error_indicator) {
4414 D(p->level--);
4415 return NULL;
4416 }
4417 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4418 expr_ty e;
4419 if (
4420 (e = expression_rule(p)) // expression
4421 )
4422 {
4423 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
4424 _res = _Py_withitem ( e , NULL , p -> arena );
4425 if (_res == NULL && PyErr_Occurred()) {
4426 p->error_indicator = 1;
4427 D(p->level--);
4428 return NULL;
4429 }
4430 goto done;
4431 }
4432 p->mark = _mark;
4433 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4434 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004435 }
4436 _res = NULL;
4437 done:
4438 D(p->level--);
4439 return _res;
4440}
4441
4442// try_stmt:
Pablo Galindo58fb1562021-02-02 19:54:22 +00004443// | 'try' &&':' block finally_block
4444// | 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004445static stmt_ty
4446try_stmt_rule(Parser *p)
4447{
4448 D(p->level++);
4449 if (p->error_indicator) {
4450 D(p->level--);
4451 return NULL;
4452 }
4453 stmt_ty _res = NULL;
4454 int _mark = p->mark;
4455 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4456 p->error_indicator = 1;
4457 D(p->level--);
4458 return NULL;
4459 }
4460 int _start_lineno = p->tokens[_mark]->lineno;
4461 UNUSED(_start_lineno); // Only used by EXTRA macro
4462 int _start_col_offset = p->tokens[_mark]->col_offset;
4463 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00004464 { // 'try' &&':' block finally_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004465 if (p->error_indicator) {
4466 D(p->level--);
4467 return NULL;
4468 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004469 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 +01004470 Token * _keyword;
4471 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004472 asdl_stmt_seq* b;
4473 asdl_stmt_seq* f;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004474 if (
4475 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4476 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004477 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004478 &&
4479 (b = block_rule(p)) // block
4480 &&
4481 (f = finally_block_rule(p)) // finally_block
4482 )
4483 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004484 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 +01004485 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4486 if (_token == NULL) {
4487 D(p->level--);
4488 return NULL;
4489 }
4490 int _end_lineno = _token->end_lineno;
4491 UNUSED(_end_lineno); // Only used by EXTRA macro
4492 int _end_col_offset = _token->end_col_offset;
4493 UNUSED(_end_col_offset); // Only used by EXTRA macro
4494 _res = _Py_Try ( b , NULL , NULL , f , EXTRA );
4495 if (_res == NULL && PyErr_Occurred()) {
4496 p->error_indicator = 1;
4497 D(p->level--);
4498 return NULL;
4499 }
4500 goto done;
4501 }
4502 p->mark = _mark;
4503 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004504 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block finally_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004505 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004506 { // 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004507 if (p->error_indicator) {
4508 D(p->level--);
4509 return NULL;
4510 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004511 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 +01004512 Token * _keyword;
4513 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004514 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004515 void *el;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004516 asdl_excepthandler_seq* ex;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004517 void *f;
4518 if (
4519 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4520 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004521 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004522 &&
4523 (b = block_rule(p)) // block
4524 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004525 (ex = (asdl_excepthandler_seq*)_loop1_48_rule(p)) // except_block+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004526 &&
4527 (el = else_block_rule(p), 1) // else_block?
4528 &&
4529 (f = finally_block_rule(p), 1) // finally_block?
4530 )
4531 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004532 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 +01004533 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4534 if (_token == NULL) {
4535 D(p->level--);
4536 return NULL;
4537 }
4538 int _end_lineno = _token->end_lineno;
4539 UNUSED(_end_lineno); // Only used by EXTRA macro
4540 int _end_col_offset = _token->end_col_offset;
4541 UNUSED(_end_col_offset); // Only used by EXTRA macro
4542 _res = _Py_Try ( b , ex , el , f , EXTRA );
4543 if (_res == NULL && PyErr_Occurred()) {
4544 p->error_indicator = 1;
4545 D(p->level--);
4546 return NULL;
4547 }
4548 goto done;
4549 }
4550 p->mark = _mark;
4551 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004552 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004553 }
4554 _res = NULL;
4555 done:
4556 D(p->level--);
4557 return _res;
4558}
4559
Pablo Galindo206cbda2021-02-07 18:42:21 +00004560// except_block:
4561// | 'except' expression ['as' NAME] ':' block
4562// | 'except' ':' block
4563// | invalid_except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004564static excepthandler_ty
4565except_block_rule(Parser *p)
4566{
4567 D(p->level++);
4568 if (p->error_indicator) {
4569 D(p->level--);
4570 return NULL;
4571 }
4572 excepthandler_ty _res = NULL;
4573 int _mark = p->mark;
4574 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4575 p->error_indicator = 1;
4576 D(p->level--);
4577 return NULL;
4578 }
4579 int _start_lineno = p->tokens[_mark]->lineno;
4580 UNUSED(_start_lineno); // Only used by EXTRA macro
4581 int _start_col_offset = p->tokens[_mark]->col_offset;
4582 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo206cbda2021-02-07 18:42:21 +00004583 { // 'except' expression ['as' NAME] ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004584 if (p->error_indicator) {
4585 D(p->level--);
4586 return NULL;
4587 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00004588 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 +01004589 Token * _keyword;
4590 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004591 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004592 expr_ty e;
4593 void *t;
4594 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004595 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004596 &&
4597 (e = expression_rule(p)) // expression
4598 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004599 (t = _tmp_49_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004600 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00004601 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004602 &&
4603 (b = block_rule(p)) // block
4604 )
4605 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00004606 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 +01004607 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4608 if (_token == NULL) {
4609 D(p->level--);
4610 return NULL;
4611 }
4612 int _end_lineno = _token->end_lineno;
4613 UNUSED(_end_lineno); // Only used by EXTRA macro
4614 int _end_col_offset = _token->end_col_offset;
4615 UNUSED(_end_col_offset); // Only used by EXTRA macro
4616 _res = _Py_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
4617 if (_res == NULL && PyErr_Occurred()) {
4618 p->error_indicator = 1;
4619 D(p->level--);
4620 return NULL;
4621 }
4622 goto done;
4623 }
4624 p->mark = _mark;
4625 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00004626 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004627 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00004628 { // 'except' ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004629 if (p->error_indicator) {
4630 D(p->level--);
4631 return NULL;
4632 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00004633 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004634 Token * _keyword;
4635 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004636 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004637 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004638 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004639 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00004640 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004641 &&
4642 (b = block_rule(p)) // block
4643 )
4644 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00004645 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 +01004646 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4647 if (_token == NULL) {
4648 D(p->level--);
4649 return NULL;
4650 }
4651 int _end_lineno = _token->end_lineno;
4652 UNUSED(_end_lineno); // Only used by EXTRA macro
4653 int _end_col_offset = _token->end_col_offset;
4654 UNUSED(_end_col_offset); // Only used by EXTRA macro
4655 _res = _Py_ExceptHandler ( NULL , NULL , b , EXTRA );
4656 if (_res == NULL && PyErr_Occurred()) {
4657 p->error_indicator = 1;
4658 D(p->level--);
4659 return NULL;
4660 }
4661 goto done;
4662 }
4663 p->mark = _mark;
4664 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00004665 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
4666 }
4667 if (p->call_invalid_rules) { // invalid_except_block
4668 if (p->error_indicator) {
4669 D(p->level--);
4670 return NULL;
4671 }
4672 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_block"));
4673 void *invalid_except_block_var;
4674 if (
4675 (invalid_except_block_var = invalid_except_block_rule(p)) // invalid_except_block
4676 )
4677 {
4678 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_block"));
4679 _res = invalid_except_block_var;
4680 goto done;
4681 }
4682 p->mark = _mark;
4683 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4684 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004685 }
4686 _res = NULL;
4687 done:
4688 D(p->level--);
4689 return _res;
4690}
4691
4692// finally_block: 'finally' ':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01004693static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004694finally_block_rule(Parser *p)
4695{
4696 D(p->level++);
4697 if (p->error_indicator) {
4698 D(p->level--);
4699 return NULL;
4700 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01004701 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004702 int _mark = p->mark;
4703 { // 'finally' ':' block
4704 if (p->error_indicator) {
4705 D(p->level--);
4706 return NULL;
4707 }
4708 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
4709 Token * _keyword;
4710 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004711 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004712 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004713 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004714 &&
4715 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4716 &&
4717 (a = block_rule(p)) // block
4718 )
4719 {
4720 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
4721 _res = a;
4722 if (_res == NULL && PyErr_Occurred()) {
4723 p->error_indicator = 1;
4724 D(p->level--);
4725 return NULL;
4726 }
4727 goto done;
4728 }
4729 p->mark = _mark;
4730 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
4731 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' block"));
4732 }
4733 _res = NULL;
4734 done:
4735 D(p->level--);
4736 return _res;
4737}
4738
4739// return_stmt: 'return' star_expressions?
4740static stmt_ty
4741return_stmt_rule(Parser *p)
4742{
4743 D(p->level++);
4744 if (p->error_indicator) {
4745 D(p->level--);
4746 return NULL;
4747 }
4748 stmt_ty _res = NULL;
4749 int _mark = p->mark;
4750 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4751 p->error_indicator = 1;
4752 D(p->level--);
4753 return NULL;
4754 }
4755 int _start_lineno = p->tokens[_mark]->lineno;
4756 UNUSED(_start_lineno); // Only used by EXTRA macro
4757 int _start_col_offset = p->tokens[_mark]->col_offset;
4758 UNUSED(_start_col_offset); // Only used by EXTRA macro
4759 { // 'return' star_expressions?
4760 if (p->error_indicator) {
4761 D(p->level--);
4762 return NULL;
4763 }
4764 D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
4765 Token * _keyword;
4766 void *a;
4767 if (
4768 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
4769 &&
4770 (a = star_expressions_rule(p), 1) // star_expressions?
4771 )
4772 {
4773 D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
4774 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4775 if (_token == NULL) {
4776 D(p->level--);
4777 return NULL;
4778 }
4779 int _end_lineno = _token->end_lineno;
4780 UNUSED(_end_lineno); // Only used by EXTRA macro
4781 int _end_col_offset = _token->end_col_offset;
4782 UNUSED(_end_col_offset); // Only used by EXTRA macro
4783 _res = _Py_Return ( a , EXTRA );
4784 if (_res == NULL && PyErr_Occurred()) {
4785 p->error_indicator = 1;
4786 D(p->level--);
4787 return NULL;
4788 }
4789 goto done;
4790 }
4791 p->mark = _mark;
4792 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4793 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
4794 }
4795 _res = NULL;
4796 done:
4797 D(p->level--);
4798 return _res;
4799}
4800
4801// raise_stmt: 'raise' expression ['from' expression] | 'raise'
4802static stmt_ty
4803raise_stmt_rule(Parser *p)
4804{
4805 D(p->level++);
4806 if (p->error_indicator) {
4807 D(p->level--);
4808 return NULL;
4809 }
4810 stmt_ty _res = NULL;
4811 int _mark = p->mark;
4812 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4813 p->error_indicator = 1;
4814 D(p->level--);
4815 return NULL;
4816 }
4817 int _start_lineno = p->tokens[_mark]->lineno;
4818 UNUSED(_start_lineno); // Only used by EXTRA macro
4819 int _start_col_offset = p->tokens[_mark]->col_offset;
4820 UNUSED(_start_col_offset); // Only used by EXTRA macro
4821 { // 'raise' expression ['from' expression]
4822 if (p->error_indicator) {
4823 D(p->level--);
4824 return NULL;
4825 }
4826 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
4827 Token * _keyword;
4828 expr_ty a;
4829 void *b;
4830 if (
4831 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
4832 &&
4833 (a = expression_rule(p)) // expression
4834 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004835 (b = _tmp_50_rule(p), 1) // ['from' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004836 )
4837 {
4838 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
4839 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4840 if (_token == NULL) {
4841 D(p->level--);
4842 return NULL;
4843 }
4844 int _end_lineno = _token->end_lineno;
4845 UNUSED(_end_lineno); // Only used by EXTRA macro
4846 int _end_col_offset = _token->end_col_offset;
4847 UNUSED(_end_col_offset); // Only used by EXTRA macro
4848 _res = _Py_Raise ( a , b , EXTRA );
4849 if (_res == NULL && PyErr_Occurred()) {
4850 p->error_indicator = 1;
4851 D(p->level--);
4852 return NULL;
4853 }
4854 goto done;
4855 }
4856 p->mark = _mark;
4857 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4858 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
4859 }
4860 { // 'raise'
4861 if (p->error_indicator) {
4862 D(p->level--);
4863 return NULL;
4864 }
4865 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
4866 Token * _keyword;
4867 if (
4868 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
4869 )
4870 {
4871 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
4872 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4873 if (_token == NULL) {
4874 D(p->level--);
4875 return NULL;
4876 }
4877 int _end_lineno = _token->end_lineno;
4878 UNUSED(_end_lineno); // Only used by EXTRA macro
4879 int _end_col_offset = _token->end_col_offset;
4880 UNUSED(_end_col_offset); // Only used by EXTRA macro
4881 _res = _Py_Raise ( NULL , NULL , EXTRA );
4882 if (_res == NULL && PyErr_Occurred()) {
4883 p->error_indicator = 1;
4884 D(p->level--);
4885 return NULL;
4886 }
4887 goto done;
4888 }
4889 p->mark = _mark;
4890 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4891 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
4892 }
4893 _res = NULL;
4894 done:
4895 D(p->level--);
4896 return _res;
4897}
4898
4899// function_def: decorators function_def_raw | function_def_raw
4900static stmt_ty
4901function_def_rule(Parser *p)
4902{
4903 D(p->level++);
4904 if (p->error_indicator) {
4905 D(p->level--);
4906 return NULL;
4907 }
4908 stmt_ty _res = NULL;
4909 int _mark = p->mark;
4910 { // decorators function_def_raw
4911 if (p->error_indicator) {
4912 D(p->level--);
4913 return NULL;
4914 }
4915 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 +01004916 asdl_expr_seq* d;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004917 stmt_ty f;
4918 if (
4919 (d = decorators_rule(p)) // decorators
4920 &&
4921 (f = function_def_raw_rule(p)) // function_def_raw
4922 )
4923 {
4924 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
4925 _res = _PyPegen_function_def_decorators ( p , d , f );
4926 if (_res == NULL && PyErr_Occurred()) {
4927 p->error_indicator = 1;
4928 D(p->level--);
4929 return NULL;
4930 }
4931 goto done;
4932 }
4933 p->mark = _mark;
4934 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4935 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
4936 }
4937 { // function_def_raw
4938 if (p->error_indicator) {
4939 D(p->level--);
4940 return NULL;
4941 }
4942 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
4943 stmt_ty function_def_raw_var;
4944 if (
4945 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
4946 )
4947 {
4948 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
4949 _res = function_def_raw_var;
4950 goto done;
4951 }
4952 p->mark = _mark;
4953 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4954 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
4955 }
4956 _res = NULL;
4957 done:
4958 D(p->level--);
4959 return _res;
4960}
4961
4962// function_def_raw:
Pablo Galindo58fb1562021-02-02 19:54:22 +00004963// | 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
4964// | ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004965static stmt_ty
4966function_def_raw_rule(Parser *p)
4967{
4968 D(p->level++);
4969 if (p->error_indicator) {
4970 D(p->level--);
4971 return NULL;
4972 }
4973 stmt_ty _res = NULL;
4974 int _mark = p->mark;
4975 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4976 p->error_indicator = 1;
4977 D(p->level--);
4978 return NULL;
4979 }
4980 int _start_lineno = p->tokens[_mark]->lineno;
4981 UNUSED(_start_lineno); // Only used by EXTRA macro
4982 int _start_col_offset = p->tokens[_mark]->col_offset;
4983 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00004984 { // 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004985 if (p->error_indicator) {
4986 D(p->level--);
4987 return NULL;
4988 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004989 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 +01004990 Token * _keyword;
4991 Token * _literal;
4992 Token * _literal_1;
4993 Token * _literal_2;
4994 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004995 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004996 expr_ty n;
4997 void *params;
4998 void *tc;
4999 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005000 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005001 &&
5002 (n = _PyPegen_name_token(p)) // NAME
5003 &&
5004 (_literal = _PyPegen_expect_token(p, 7)) // token='('
5005 &&
5006 (params = params_rule(p), 1) // params?
5007 &&
5008 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
5009 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005010 (a = _tmp_51_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005011 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00005012 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005013 &&
5014 (tc = func_type_comment_rule(p), 1) // func_type_comment?
5015 &&
5016 (b = block_rule(p)) // block
5017 )
5018 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00005019 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 +01005020 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5021 if (_token == NULL) {
5022 D(p->level--);
5023 return NULL;
5024 }
5025 int _end_lineno = _token->end_lineno;
5026 UNUSED(_end_lineno); // Only used by EXTRA macro
5027 int _end_col_offset = _token->end_col_offset;
5028 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03005029 _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 +01005030 if (_res == NULL && PyErr_Occurred()) {
5031 p->error_indicator = 1;
5032 D(p->level--);
5033 return NULL;
5034 }
5035 goto done;
5036 }
5037 p->mark = _mark;
5038 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00005039 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005040 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00005041 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005042 if (p->error_indicator) {
5043 D(p->level--);
5044 return NULL;
5045 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00005046 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 +01005047 Token * _keyword;
5048 Token * _literal;
5049 Token * _literal_1;
5050 Token * _literal_2;
5051 void *a;
5052 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005053 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005054 expr_ty n;
5055 void *params;
5056 void *tc;
5057 if (
5058 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
5059 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005060 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005061 &&
5062 (n = _PyPegen_name_token(p)) // NAME
5063 &&
5064 (_literal = _PyPegen_expect_token(p, 7)) // token='('
5065 &&
5066 (params = params_rule(p), 1) // params?
5067 &&
5068 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
5069 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005070 (a = _tmp_52_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005071 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00005072 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005073 &&
5074 (tc = func_type_comment_rule(p), 1) // func_type_comment?
5075 &&
5076 (b = block_rule(p)) // block
5077 )
5078 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00005079 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 +01005080 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5081 if (_token == NULL) {
5082 D(p->level--);
5083 return NULL;
5084 }
5085 int _end_lineno = _token->end_lineno;
5086 UNUSED(_end_lineno); // Only used by EXTRA macro
5087 int _end_col_offset = _token->end_col_offset;
5088 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03005089 _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 +01005090 if (_res == NULL && PyErr_Occurred()) {
5091 p->error_indicator = 1;
5092 D(p->level--);
5093 return NULL;
5094 }
5095 goto done;
5096 }
5097 p->mark = _mark;
5098 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00005099 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005100 }
5101 _res = NULL;
5102 done:
5103 D(p->level--);
5104 return _res;
5105}
5106
5107// func_type_comment:
5108// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
5109// | invalid_double_type_comments
5110// | TYPE_COMMENT
5111static Token*
5112func_type_comment_rule(Parser *p)
5113{
5114 D(p->level++);
5115 if (p->error_indicator) {
5116 D(p->level--);
5117 return NULL;
5118 }
5119 Token* _res = NULL;
5120 int _mark = p->mark;
5121 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
5122 if (p->error_indicator) {
5123 D(p->level--);
5124 return NULL;
5125 }
5126 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
5127 Token * newline_var;
5128 Token * t;
5129 if (
5130 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
5131 &&
5132 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
5133 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005134 _PyPegen_lookahead(1, _tmp_53_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005135 )
5136 {
5137 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
5138 _res = t;
5139 if (_res == NULL && PyErr_Occurred()) {
5140 p->error_indicator = 1;
5141 D(p->level--);
5142 return NULL;
5143 }
5144 goto done;
5145 }
5146 p->mark = _mark;
5147 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
5149 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02005150 if (p->call_invalid_rules) { // invalid_double_type_comments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005151 if (p->error_indicator) {
5152 D(p->level--);
5153 return NULL;
5154 }
5155 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
5156 void *invalid_double_type_comments_var;
5157 if (
5158 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
5159 )
5160 {
5161 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
5162 _res = invalid_double_type_comments_var;
5163 goto done;
5164 }
5165 p->mark = _mark;
5166 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5167 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
5168 }
5169 { // TYPE_COMMENT
5170 if (p->error_indicator) {
5171 D(p->level--);
5172 return NULL;
5173 }
5174 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
5175 Token * type_comment_var;
5176 if (
5177 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
5178 )
5179 {
5180 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
5181 _res = type_comment_var;
5182 goto done;
5183 }
5184 p->mark = _mark;
5185 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5186 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
5187 }
5188 _res = NULL;
5189 done:
5190 D(p->level--);
5191 return _res;
5192}
5193
5194// params: invalid_parameters | parameters
5195static arguments_ty
5196params_rule(Parser *p)
5197{
5198 D(p->level++);
5199 if (p->error_indicator) {
5200 D(p->level--);
5201 return NULL;
5202 }
5203 arguments_ty _res = NULL;
5204 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02005205 if (p->call_invalid_rules) { // invalid_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005206 if (p->error_indicator) {
5207 D(p->level--);
5208 return NULL;
5209 }
5210 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
5211 void *invalid_parameters_var;
5212 if (
5213 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
5214 )
5215 {
5216 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
5217 _res = invalid_parameters_var;
5218 goto done;
5219 }
5220 p->mark = _mark;
5221 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
5222 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
5223 }
5224 { // parameters
5225 if (p->error_indicator) {
5226 D(p->level--);
5227 return NULL;
5228 }
5229 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
5230 arguments_ty parameters_var;
5231 if (
5232 (parameters_var = parameters_rule(p)) // parameters
5233 )
5234 {
5235 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
5236 _res = parameters_var;
5237 goto done;
5238 }
5239 p->mark = _mark;
5240 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
5241 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
5242 }
5243 _res = NULL;
5244 done:
5245 D(p->level--);
5246 return _res;
5247}
5248
5249// parameters:
5250// | slash_no_default param_no_default* param_with_default* star_etc?
5251// | slash_with_default param_with_default* star_etc?
5252// | param_no_default+ param_with_default* star_etc?
5253// | param_with_default+ star_etc?
5254// | star_etc
5255static arguments_ty
5256parameters_rule(Parser *p)
5257{
5258 D(p->level++);
5259 if (p->error_indicator) {
5260 D(p->level--);
5261 return NULL;
5262 }
5263 arguments_ty _res = NULL;
5264 int _mark = p->mark;
5265 { // slash_no_default param_no_default* param_with_default* star_etc?
5266 if (p->error_indicator) {
5267 D(p->level--);
5268 return NULL;
5269 }
5270 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 +01005271 asdl_arg_seq* a;
5272 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005273 asdl_seq * c;
5274 void *d;
5275 if (
5276 (a = slash_no_default_rule(p)) // slash_no_default
5277 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01005278 (b = (asdl_arg_seq*)_loop0_54_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005279 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005280 (c = _loop0_55_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005281 &&
5282 (d = star_etc_rule(p), 1) // star_etc?
5283 )
5284 {
5285 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?"));
5286 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
5287 if (_res == NULL && PyErr_Occurred()) {
5288 p->error_indicator = 1;
5289 D(p->level--);
5290 return NULL;
5291 }
5292 goto done;
5293 }
5294 p->mark = _mark;
5295 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5296 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
5297 }
5298 { // slash_with_default param_with_default* star_etc?
5299 if (p->error_indicator) {
5300 D(p->level--);
5301 return NULL;
5302 }
5303 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
5304 SlashWithDefault* a;
5305 asdl_seq * b;
5306 void *c;
5307 if (
5308 (a = slash_with_default_rule(p)) // slash_with_default
5309 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005310 (b = _loop0_56_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005311 &&
5312 (c = star_etc_rule(p), 1) // star_etc?
5313 )
5314 {
5315 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
5316 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
5317 if (_res == NULL && PyErr_Occurred()) {
5318 p->error_indicator = 1;
5319 D(p->level--);
5320 return NULL;
5321 }
5322 goto done;
5323 }
5324 p->mark = _mark;
5325 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5326 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
5327 }
5328 { // param_no_default+ param_with_default* star_etc?
5329 if (p->error_indicator) {
5330 D(p->level--);
5331 return NULL;
5332 }
5333 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 +01005334 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005335 asdl_seq * b;
5336 void *c;
5337 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01005338 (a = (asdl_arg_seq*)_loop1_57_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005339 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005340 (b = _loop0_58_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005341 &&
5342 (c = star_etc_rule(p), 1) // star_etc?
5343 )
5344 {
5345 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
5346 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
5347 if (_res == NULL && PyErr_Occurred()) {
5348 p->error_indicator = 1;
5349 D(p->level--);
5350 return NULL;
5351 }
5352 goto done;
5353 }
5354 p->mark = _mark;
5355 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5356 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
5357 }
5358 { // param_with_default+ star_etc?
5359 if (p->error_indicator) {
5360 D(p->level--);
5361 return NULL;
5362 }
5363 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
5364 asdl_seq * a;
5365 void *b;
5366 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005367 (a = _loop1_59_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005368 &&
5369 (b = star_etc_rule(p), 1) // star_etc?
5370 )
5371 {
5372 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
5373 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
5374 if (_res == NULL && PyErr_Occurred()) {
5375 p->error_indicator = 1;
5376 D(p->level--);
5377 return NULL;
5378 }
5379 goto done;
5380 }
5381 p->mark = _mark;
5382 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5383 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
5384 }
5385 { // star_etc
5386 if (p->error_indicator) {
5387 D(p->level--);
5388 return NULL;
5389 }
5390 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
5391 StarEtc* a;
5392 if (
5393 (a = star_etc_rule(p)) // star_etc
5394 )
5395 {
5396 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
5397 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
5398 if (_res == NULL && PyErr_Occurred()) {
5399 p->error_indicator = 1;
5400 D(p->level--);
5401 return NULL;
5402 }
5403 goto done;
5404 }
5405 p->mark = _mark;
5406 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5407 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
5408 }
5409 _res = NULL;
5410 done:
5411 D(p->level--);
5412 return _res;
5413}
5414
5415// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoa5634c42020-09-16 19:42:00 +01005416static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005417slash_no_default_rule(Parser *p)
5418{
5419 D(p->level++);
5420 if (p->error_indicator) {
5421 D(p->level--);
5422 return NULL;
5423 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01005424 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005425 int _mark = p->mark;
5426 { // param_no_default+ '/' ','
5427 if (p->error_indicator) {
5428 D(p->level--);
5429 return NULL;
5430 }
5431 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
5432 Token * _literal;
5433 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005434 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005435 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01005436 (a = (asdl_arg_seq*)_loop1_60_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005437 &&
5438 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
5439 &&
5440 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
5441 )
5442 {
5443 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
5444 _res = a;
5445 if (_res == NULL && PyErr_Occurred()) {
5446 p->error_indicator = 1;
5447 D(p->level--);
5448 return NULL;
5449 }
5450 goto done;
5451 }
5452 p->mark = _mark;
5453 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5454 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
5455 }
5456 { // param_no_default+ '/' &')'
5457 if (p->error_indicator) {
5458 D(p->level--);
5459 return NULL;
5460 }
5461 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
5462 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005463 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005464 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01005465 (a = (asdl_arg_seq*)_loop1_61_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005466 &&
5467 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
5468 &&
5469 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5470 )
5471 {
5472 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
5473 _res = a;
5474 if (_res == NULL && PyErr_Occurred()) {
5475 p->error_indicator = 1;
5476 D(p->level--);
5477 return NULL;
5478 }
5479 goto done;
5480 }
5481 p->mark = _mark;
5482 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5483 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
5484 }
5485 _res = NULL;
5486 done:
5487 D(p->level--);
5488 return _res;
5489}
5490
5491// slash_with_default:
5492// | param_no_default* param_with_default+ '/' ','
5493// | param_no_default* param_with_default+ '/' &')'
5494static SlashWithDefault*
5495slash_with_default_rule(Parser *p)
5496{
5497 D(p->level++);
5498 if (p->error_indicator) {
5499 D(p->level--);
5500 return NULL;
5501 }
5502 SlashWithDefault* _res = NULL;
5503 int _mark = p->mark;
5504 { // param_no_default* param_with_default+ '/' ','
5505 if (p->error_indicator) {
5506 D(p->level--);
5507 return NULL;
5508 }
5509 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
5510 Token * _literal;
5511 Token * _literal_1;
5512 asdl_seq * a;
5513 asdl_seq * b;
5514 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005515 (a = _loop0_62_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005516 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005517 (b = _loop1_63_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005518 &&
5519 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
5520 &&
5521 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
5522 )
5523 {
5524 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 +01005525 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005526 if (_res == NULL && PyErr_Occurred()) {
5527 p->error_indicator = 1;
5528 D(p->level--);
5529 return NULL;
5530 }
5531 goto done;
5532 }
5533 p->mark = _mark;
5534 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5535 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
5536 }
5537 { // param_no_default* param_with_default+ '/' &')'
5538 if (p->error_indicator) {
5539 D(p->level--);
5540 return NULL;
5541 }
5542 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
5543 Token * _literal;
5544 asdl_seq * a;
5545 asdl_seq * b;
5546 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005547 (a = _loop0_64_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005548 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005549 (b = _loop1_65_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005550 &&
5551 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
5552 &&
5553 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5554 )
5555 {
5556 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 +01005557 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005558 if (_res == NULL && PyErr_Occurred()) {
5559 p->error_indicator = 1;
5560 D(p->level--);
5561 return NULL;
5562 }
5563 goto done;
5564 }
5565 p->mark = _mark;
5566 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5567 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
5568 }
5569 _res = NULL;
5570 done:
5571 D(p->level--);
5572 return _res;
5573}
5574
5575// star_etc:
5576// | '*' param_no_default param_maybe_default* kwds?
5577// | '*' ',' param_maybe_default+ kwds?
5578// | kwds
5579// | invalid_star_etc
5580static StarEtc*
5581star_etc_rule(Parser *p)
5582{
5583 D(p->level++);
5584 if (p->error_indicator) {
5585 D(p->level--);
5586 return NULL;
5587 }
5588 StarEtc* _res = NULL;
5589 int _mark = p->mark;
5590 { // '*' param_no_default param_maybe_default* kwds?
5591 if (p->error_indicator) {
5592 D(p->level--);
5593 return NULL;
5594 }
5595 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
5596 Token * _literal;
5597 arg_ty a;
5598 asdl_seq * b;
5599 void *c;
5600 if (
5601 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
5602 &&
5603 (a = param_no_default_rule(p)) // param_no_default
5604 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005605 (b = _loop0_66_rule(p)) // param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005606 &&
5607 (c = kwds_rule(p), 1) // kwds?
5608 )
5609 {
5610 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
5611 _res = _PyPegen_star_etc ( p , a , b , c );
5612 if (_res == NULL && PyErr_Occurred()) {
5613 p->error_indicator = 1;
5614 D(p->level--);
5615 return NULL;
5616 }
5617 goto done;
5618 }
5619 p->mark = _mark;
5620 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5621 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
5622 }
5623 { // '*' ',' param_maybe_default+ kwds?
5624 if (p->error_indicator) {
5625 D(p->level--);
5626 return NULL;
5627 }
5628 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
5629 Token * _literal;
5630 Token * _literal_1;
5631 asdl_seq * b;
5632 void *c;
5633 if (
5634 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
5635 &&
5636 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
5637 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005638 (b = _loop1_67_rule(p)) // param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005639 &&
5640 (c = kwds_rule(p), 1) // kwds?
5641 )
5642 {
5643 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
5644 _res = _PyPegen_star_etc ( p , NULL , b , c );
5645 if (_res == NULL && PyErr_Occurred()) {
5646 p->error_indicator = 1;
5647 D(p->level--);
5648 return NULL;
5649 }
5650 goto done;
5651 }
5652 p->mark = _mark;
5653 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5654 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
5655 }
5656 { // kwds
5657 if (p->error_indicator) {
5658 D(p->level--);
5659 return NULL;
5660 }
5661 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
5662 arg_ty a;
5663 if (
5664 (a = kwds_rule(p)) // kwds
5665 )
5666 {
5667 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
5668 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
5669 if (_res == NULL && PyErr_Occurred()) {
5670 p->error_indicator = 1;
5671 D(p->level--);
5672 return NULL;
5673 }
5674 goto done;
5675 }
5676 p->mark = _mark;
5677 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5678 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
5679 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02005680 if (p->call_invalid_rules) { // invalid_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005681 if (p->error_indicator) {
5682 D(p->level--);
5683 return NULL;
5684 }
5685 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
5686 void *invalid_star_etc_var;
5687 if (
5688 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
5689 )
5690 {
5691 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
5692 _res = invalid_star_etc_var;
5693 goto done;
5694 }
5695 p->mark = _mark;
5696 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5697 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
5698 }
5699 _res = NULL;
5700 done:
5701 D(p->level--);
5702 return _res;
5703}
5704
5705// kwds: '**' param_no_default
5706static arg_ty
5707kwds_rule(Parser *p)
5708{
5709 D(p->level++);
5710 if (p->error_indicator) {
5711 D(p->level--);
5712 return NULL;
5713 }
5714 arg_ty _res = NULL;
5715 int _mark = p->mark;
5716 { // '**' param_no_default
5717 if (p->error_indicator) {
5718 D(p->level--);
5719 return NULL;
5720 }
5721 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
5722 Token * _literal;
5723 arg_ty a;
5724 if (
5725 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
5726 &&
5727 (a = param_no_default_rule(p)) // param_no_default
5728 )
5729 {
5730 D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
5731 _res = a;
5732 if (_res == NULL && PyErr_Occurred()) {
5733 p->error_indicator = 1;
5734 D(p->level--);
5735 return NULL;
5736 }
5737 goto done;
5738 }
5739 p->mark = _mark;
5740 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
5741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
5742 }
5743 _res = NULL;
5744 done:
5745 D(p->level--);
5746 return _res;
5747}
5748
5749// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
5750static arg_ty
5751param_no_default_rule(Parser *p)
5752{
5753 D(p->level++);
5754 if (p->error_indicator) {
5755 D(p->level--);
5756 return NULL;
5757 }
5758 arg_ty _res = NULL;
5759 int _mark = p->mark;
5760 { // param ',' TYPE_COMMENT?
5761 if (p->error_indicator) {
5762 D(p->level--);
5763 return NULL;
5764 }
5765 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
5766 Token * _literal;
5767 arg_ty a;
5768 void *tc;
5769 if (
5770 (a = param_rule(p)) // param
5771 &&
5772 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5773 &&
5774 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5775 )
5776 {
5777 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
5778 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5779 if (_res == NULL && PyErr_Occurred()) {
5780 p->error_indicator = 1;
5781 D(p->level--);
5782 return NULL;
5783 }
5784 goto done;
5785 }
5786 p->mark = _mark;
5787 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5788 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
5789 }
5790 { // param TYPE_COMMENT? &')'
5791 if (p->error_indicator) {
5792 D(p->level--);
5793 return NULL;
5794 }
5795 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
5796 arg_ty a;
5797 void *tc;
5798 if (
5799 (a = param_rule(p)) // param
5800 &&
5801 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5802 &&
5803 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5804 )
5805 {
5806 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
5807 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5808 if (_res == NULL && PyErr_Occurred()) {
5809 p->error_indicator = 1;
5810 D(p->level--);
5811 return NULL;
5812 }
5813 goto done;
5814 }
5815 p->mark = _mark;
5816 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5817 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
5818 }
5819 _res = NULL;
5820 done:
5821 D(p->level--);
5822 return _res;
5823}
5824
5825// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
5826static NameDefaultPair*
5827param_with_default_rule(Parser *p)
5828{
5829 D(p->level++);
5830 if (p->error_indicator) {
5831 D(p->level--);
5832 return NULL;
5833 }
5834 NameDefaultPair* _res = NULL;
5835 int _mark = p->mark;
5836 { // param default ',' TYPE_COMMENT?
5837 if (p->error_indicator) {
5838 D(p->level--);
5839 return NULL;
5840 }
5841 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
5842 Token * _literal;
5843 arg_ty a;
5844 expr_ty c;
5845 void *tc;
5846 if (
5847 (a = param_rule(p)) // param
5848 &&
5849 (c = default_rule(p)) // default
5850 &&
5851 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5852 &&
5853 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5854 )
5855 {
5856 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
5857 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5858 if (_res == NULL && PyErr_Occurred()) {
5859 p->error_indicator = 1;
5860 D(p->level--);
5861 return NULL;
5862 }
5863 goto done;
5864 }
5865 p->mark = _mark;
5866 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5867 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
5868 }
5869 { // param default TYPE_COMMENT? &')'
5870 if (p->error_indicator) {
5871 D(p->level--);
5872 return NULL;
5873 }
5874 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
5875 arg_ty a;
5876 expr_ty c;
5877 void *tc;
5878 if (
5879 (a = param_rule(p)) // param
5880 &&
5881 (c = default_rule(p)) // default
5882 &&
5883 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5884 &&
5885 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5886 )
5887 {
5888 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
5889 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5890 if (_res == NULL && PyErr_Occurred()) {
5891 p->error_indicator = 1;
5892 D(p->level--);
5893 return NULL;
5894 }
5895 goto done;
5896 }
5897 p->mark = _mark;
5898 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5899 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
5900 }
5901 _res = NULL;
5902 done:
5903 D(p->level--);
5904 return _res;
5905}
5906
5907// param_maybe_default:
5908// | param default? ',' TYPE_COMMENT?
5909// | param default? TYPE_COMMENT? &')'
5910static NameDefaultPair*
5911param_maybe_default_rule(Parser *p)
5912{
5913 D(p->level++);
5914 if (p->error_indicator) {
5915 D(p->level--);
5916 return NULL;
5917 }
5918 NameDefaultPair* _res = NULL;
5919 int _mark = p->mark;
5920 { // param default? ',' TYPE_COMMENT?
5921 if (p->error_indicator) {
5922 D(p->level--);
5923 return NULL;
5924 }
5925 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
5926 Token * _literal;
5927 arg_ty a;
5928 void *c;
5929 void *tc;
5930 if (
5931 (a = param_rule(p)) // param
5932 &&
5933 (c = default_rule(p), 1) // default?
5934 &&
5935 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5936 &&
5937 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5938 )
5939 {
5940 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
5941 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5942 if (_res == NULL && PyErr_Occurred()) {
5943 p->error_indicator = 1;
5944 D(p->level--);
5945 return NULL;
5946 }
5947 goto done;
5948 }
5949 p->mark = _mark;
5950 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5951 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
5952 }
5953 { // param default? TYPE_COMMENT? &')'
5954 if (p->error_indicator) {
5955 D(p->level--);
5956 return NULL;
5957 }
5958 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
5959 arg_ty a;
5960 void *c;
5961 void *tc;
5962 if (
5963 (a = param_rule(p)) // param
5964 &&
5965 (c = default_rule(p), 1) // default?
5966 &&
5967 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5968 &&
5969 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5970 )
5971 {
5972 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
5973 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5974 if (_res == NULL && PyErr_Occurred()) {
5975 p->error_indicator = 1;
5976 D(p->level--);
5977 return NULL;
5978 }
5979 goto done;
5980 }
5981 p->mark = _mark;
5982 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5983 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
5984 }
5985 _res = NULL;
5986 done:
5987 D(p->level--);
5988 return _res;
5989}
5990
5991// param: NAME annotation?
5992static arg_ty
5993param_rule(Parser *p)
5994{
5995 D(p->level++);
5996 if (p->error_indicator) {
5997 D(p->level--);
5998 return NULL;
5999 }
6000 arg_ty _res = NULL;
6001 int _mark = p->mark;
6002 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6003 p->error_indicator = 1;
6004 D(p->level--);
6005 return NULL;
6006 }
6007 int _start_lineno = p->tokens[_mark]->lineno;
6008 UNUSED(_start_lineno); // Only used by EXTRA macro
6009 int _start_col_offset = p->tokens[_mark]->col_offset;
6010 UNUSED(_start_col_offset); // Only used by EXTRA macro
6011 { // NAME annotation?
6012 if (p->error_indicator) {
6013 D(p->level--);
6014 return NULL;
6015 }
6016 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
6017 expr_ty a;
6018 void *b;
6019 if (
6020 (a = _PyPegen_name_token(p)) // NAME
6021 &&
6022 (b = annotation_rule(p), 1) // annotation?
6023 )
6024 {
6025 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
6026 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6027 if (_token == NULL) {
6028 D(p->level--);
6029 return NULL;
6030 }
6031 int _end_lineno = _token->end_lineno;
6032 UNUSED(_end_lineno); // Only used by EXTRA macro
6033 int _end_col_offset = _token->end_col_offset;
6034 UNUSED(_end_col_offset); // Only used by EXTRA macro
6035 _res = _Py_arg ( a -> v . Name . id , b , NULL , EXTRA );
6036 if (_res == NULL && PyErr_Occurred()) {
6037 p->error_indicator = 1;
6038 D(p->level--);
6039 return NULL;
6040 }
6041 goto done;
6042 }
6043 p->mark = _mark;
6044 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
6045 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
6046 }
6047 _res = NULL;
6048 done:
6049 D(p->level--);
6050 return _res;
6051}
6052
6053// annotation: ':' expression
6054static expr_ty
6055annotation_rule(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 { // ':' expression
6065 if (p->error_indicator) {
6066 D(p->level--);
6067 return NULL;
6068 }
6069 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
6070 Token * _literal;
6071 expr_ty a;
6072 if (
6073 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
6074 &&
6075 (a = expression_rule(p)) // expression
6076 )
6077 {
6078 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
6079 _res = a;
6080 if (_res == NULL && PyErr_Occurred()) {
6081 p->error_indicator = 1;
6082 D(p->level--);
6083 return NULL;
6084 }
6085 goto done;
6086 }
6087 p->mark = _mark;
6088 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
6089 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
6090 }
6091 _res = NULL;
6092 done:
6093 D(p->level--);
6094 return _res;
6095}
6096
6097// default: '=' expression
6098static expr_ty
6099default_rule(Parser *p)
6100{
6101 D(p->level++);
6102 if (p->error_indicator) {
6103 D(p->level--);
6104 return NULL;
6105 }
6106 expr_ty _res = NULL;
6107 int _mark = p->mark;
6108 { // '=' expression
6109 if (p->error_indicator) {
6110 D(p->level--);
6111 return NULL;
6112 }
6113 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
6114 Token * _literal;
6115 expr_ty a;
6116 if (
6117 (_literal = _PyPegen_expect_token(p, 22)) // token='='
6118 &&
6119 (a = expression_rule(p)) // expression
6120 )
6121 {
6122 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
6123 _res = a;
6124 if (_res == NULL && PyErr_Occurred()) {
6125 p->error_indicator = 1;
6126 D(p->level--);
6127 return NULL;
6128 }
6129 goto done;
6130 }
6131 p->mark = _mark;
6132 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
6133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
6134 }
6135 _res = NULL;
6136 done:
6137 D(p->level--);
6138 return _res;
6139}
6140
6141// decorators: (('@' named_expression NEWLINE))+
Pablo Galindoa5634c42020-09-16 19:42:00 +01006142static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006143decorators_rule(Parser *p)
6144{
6145 D(p->level++);
6146 if (p->error_indicator) {
6147 D(p->level--);
6148 return NULL;
6149 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01006150 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006151 int _mark = p->mark;
6152 { // (('@' named_expression NEWLINE))+
6153 if (p->error_indicator) {
6154 D(p->level--);
6155 return NULL;
6156 }
6157 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01006158 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006159 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01006160 (a = (asdl_expr_seq*)_loop1_68_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006161 )
6162 {
6163 D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
6164 _res = a;
6165 if (_res == NULL && PyErr_Occurred()) {
6166 p->error_indicator = 1;
6167 D(p->level--);
6168 return NULL;
6169 }
6170 goto done;
6171 }
6172 p->mark = _mark;
6173 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
6174 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
6175 }
6176 _res = NULL;
6177 done:
6178 D(p->level--);
6179 return _res;
6180}
6181
6182// class_def: decorators class_def_raw | class_def_raw
6183static stmt_ty
6184class_def_rule(Parser *p)
6185{
6186 D(p->level++);
6187 if (p->error_indicator) {
6188 D(p->level--);
6189 return NULL;
6190 }
6191 stmt_ty _res = NULL;
6192 int _mark = p->mark;
6193 { // decorators class_def_raw
6194 if (p->error_indicator) {
6195 D(p->level--);
6196 return NULL;
6197 }
6198 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 +01006199 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006200 stmt_ty b;
6201 if (
6202 (a = decorators_rule(p)) // decorators
6203 &&
6204 (b = class_def_raw_rule(p)) // class_def_raw
6205 )
6206 {
6207 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
6208 _res = _PyPegen_class_def_decorators ( p , a , b );
6209 if (_res == NULL && PyErr_Occurred()) {
6210 p->error_indicator = 1;
6211 D(p->level--);
6212 return NULL;
6213 }
6214 goto done;
6215 }
6216 p->mark = _mark;
6217 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
6218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
6219 }
6220 { // class_def_raw
6221 if (p->error_indicator) {
6222 D(p->level--);
6223 return NULL;
6224 }
6225 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
6226 stmt_ty class_def_raw_var;
6227 if (
6228 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
6229 )
6230 {
6231 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
6232 _res = class_def_raw_var;
6233 goto done;
6234 }
6235 p->mark = _mark;
6236 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
6237 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
6238 }
6239 _res = NULL;
6240 done:
6241 D(p->level--);
6242 return _res;
6243}
6244
Pablo Galindo58fb1562021-02-02 19:54:22 +00006245// class_def_raw: 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006246static stmt_ty
6247class_def_raw_rule(Parser *p)
6248{
6249 D(p->level++);
6250 if (p->error_indicator) {
6251 D(p->level--);
6252 return NULL;
6253 }
6254 stmt_ty _res = NULL;
6255 int _mark = p->mark;
6256 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6257 p->error_indicator = 1;
6258 D(p->level--);
6259 return NULL;
6260 }
6261 int _start_lineno = p->tokens[_mark]->lineno;
6262 UNUSED(_start_lineno); // Only used by EXTRA macro
6263 int _start_col_offset = p->tokens[_mark]->col_offset;
6264 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00006265 { // 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006266 if (p->error_indicator) {
6267 D(p->level--);
6268 return NULL;
6269 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00006270 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 +01006271 Token * _keyword;
6272 Token * _literal;
6273 expr_ty a;
6274 void *b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01006275 asdl_stmt_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006276 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006277 (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006278 &&
6279 (a = _PyPegen_name_token(p)) // NAME
6280 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006281 (b = _tmp_69_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006282 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00006283 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006284 &&
6285 (c = block_rule(p)) // block
6286 )
6287 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00006288 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 +01006289 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6290 if (_token == NULL) {
6291 D(p->level--);
6292 return NULL;
6293 }
6294 int _end_lineno = _token->end_lineno;
6295 UNUSED(_end_lineno); // Only used by EXTRA macro
6296 int _end_col_offset = _token->end_col_offset;
6297 UNUSED(_end_col_offset); // Only used by EXTRA macro
6298 _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 );
6299 if (_res == NULL && PyErr_Occurred()) {
6300 p->error_indicator = 1;
6301 D(p->level--);
6302 return NULL;
6303 }
6304 goto done;
6305 }
6306 p->mark = _mark;
6307 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00006308 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006309 }
6310 _res = NULL;
6311 done:
6312 D(p->level--);
6313 return _res;
6314}
6315
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006316// block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block
Pablo Galindoa5634c42020-09-16 19:42:00 +01006317static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006318block_rule(Parser *p)
6319{
6320 D(p->level++);
6321 if (p->error_indicator) {
6322 D(p->level--);
6323 return NULL;
6324 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01006325 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006326 if (_PyPegen_is_memoized(p, block_type, &_res)) {
6327 D(p->level--);
6328 return _res;
6329 }
6330 int _mark = p->mark;
6331 { // NEWLINE INDENT statements DEDENT
6332 if (p->error_indicator) {
6333 D(p->level--);
6334 return NULL;
6335 }
6336 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 +01006337 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006338 Token * dedent_var;
6339 Token * indent_var;
6340 Token * newline_var;
6341 if (
6342 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
6343 &&
6344 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
6345 &&
6346 (a = statements_rule(p)) // statements
6347 &&
6348 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
6349 )
6350 {
6351 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
6352 _res = a;
6353 if (_res == NULL && PyErr_Occurred()) {
6354 p->error_indicator = 1;
6355 D(p->level--);
6356 return NULL;
6357 }
6358 goto done;
6359 }
6360 p->mark = _mark;
6361 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
6363 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006364 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006365 if (p->error_indicator) {
6366 D(p->level--);
6367 return NULL;
6368 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006369 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
6370 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006371 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006372 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006373 )
6374 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006375 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
6376 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006377 goto done;
6378 }
6379 p->mark = _mark;
6380 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006381 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006382 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02006383 if (p->call_invalid_rules) { // invalid_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006384 if (p->error_indicator) {
6385 D(p->level--);
6386 return NULL;
6387 }
6388 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
6389 void *invalid_block_var;
6390 if (
6391 (invalid_block_var = invalid_block_rule(p)) // invalid_block
6392 )
6393 {
6394 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
6395 _res = invalid_block_var;
6396 goto done;
6397 }
6398 p->mark = _mark;
6399 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6400 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
6401 }
6402 _res = NULL;
6403 done:
6404 _PyPegen_insert_memo(p, _mark, block_type, _res);
6405 D(p->level--);
6406 return _res;
6407}
6408
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006409// star_expressions:
6410// | star_expression ((',' star_expression))+ ','?
6411// | star_expression ','
6412// | star_expression
6413static expr_ty
6414star_expressions_rule(Parser *p)
6415{
6416 D(p->level++);
6417 if (p->error_indicator) {
6418 D(p->level--);
6419 return NULL;
6420 }
6421 expr_ty _res = NULL;
6422 int _mark = p->mark;
6423 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6424 p->error_indicator = 1;
6425 D(p->level--);
6426 return NULL;
6427 }
6428 int _start_lineno = p->tokens[_mark]->lineno;
6429 UNUSED(_start_lineno); // Only used by EXTRA macro
6430 int _start_col_offset = p->tokens[_mark]->col_offset;
6431 UNUSED(_start_col_offset); // Only used by EXTRA macro
6432 { // star_expression ((',' star_expression))+ ','?
6433 if (p->error_indicator) {
6434 D(p->level--);
6435 return NULL;
6436 }
6437 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
6438 void *_opt_var;
6439 UNUSED(_opt_var); // Silence compiler warnings
6440 expr_ty a;
6441 asdl_seq * b;
6442 if (
6443 (a = star_expression_rule(p)) // star_expression
6444 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00006445 (b = _loop1_70_rule(p)) // ((',' star_expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006446 &&
6447 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6448 )
6449 {
6450 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
6451 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6452 if (_token == NULL) {
6453 D(p->level--);
6454 return NULL;
6455 }
6456 int _end_lineno = _token->end_lineno;
6457 UNUSED(_end_lineno); // Only used by EXTRA macro
6458 int _end_col_offset = _token->end_col_offset;
6459 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03006460 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006461 if (_res == NULL && PyErr_Occurred()) {
6462 p->error_indicator = 1;
6463 D(p->level--);
6464 return NULL;
6465 }
6466 goto done;
6467 }
6468 p->mark = _mark;
6469 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6470 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
6471 }
6472 { // star_expression ','
6473 if (p->error_indicator) {
6474 D(p->level--);
6475 return NULL;
6476 }
6477 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
6478 Token * _literal;
6479 expr_ty a;
6480 if (
6481 (a = star_expression_rule(p)) // star_expression
6482 &&
6483 (_literal = _PyPegen_expect_token(p, 12)) // token=','
6484 )
6485 {
6486 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
6487 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6488 if (_token == NULL) {
6489 D(p->level--);
6490 return NULL;
6491 }
6492 int _end_lineno = _token->end_lineno;
6493 UNUSED(_end_lineno); // Only used by EXTRA macro
6494 int _end_col_offset = _token->end_col_offset;
6495 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03006496 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006497 if (_res == NULL && PyErr_Occurred()) {
6498 p->error_indicator = 1;
6499 D(p->level--);
6500 return NULL;
6501 }
6502 goto done;
6503 }
6504 p->mark = _mark;
6505 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
6507 }
6508 { // star_expression
6509 if (p->error_indicator) {
6510 D(p->level--);
6511 return NULL;
6512 }
6513 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
6514 expr_ty star_expression_var;
6515 if (
6516 (star_expression_var = star_expression_rule(p)) // star_expression
6517 )
6518 {
6519 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
6520 _res = star_expression_var;
6521 goto done;
6522 }
6523 p->mark = _mark;
6524 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
6526 }
6527 _res = NULL;
6528 done:
6529 D(p->level--);
6530 return _res;
6531}
6532
6533// star_expression: '*' bitwise_or | expression
6534static expr_ty
6535star_expression_rule(Parser *p)
6536{
6537 D(p->level++);
6538 if (p->error_indicator) {
6539 D(p->level--);
6540 return NULL;
6541 }
6542 expr_ty _res = NULL;
6543 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
6544 D(p->level--);
6545 return _res;
6546 }
6547 int _mark = p->mark;
6548 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6549 p->error_indicator = 1;
6550 D(p->level--);
6551 return NULL;
6552 }
6553 int _start_lineno = p->tokens[_mark]->lineno;
6554 UNUSED(_start_lineno); // Only used by EXTRA macro
6555 int _start_col_offset = p->tokens[_mark]->col_offset;
6556 UNUSED(_start_col_offset); // Only used by EXTRA macro
6557 { // '*' bitwise_or
6558 if (p->error_indicator) {
6559 D(p->level--);
6560 return NULL;
6561 }
6562 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
6563 Token * _literal;
6564 expr_ty a;
6565 if (
6566 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
6567 &&
6568 (a = bitwise_or_rule(p)) // bitwise_or
6569 )
6570 {
6571 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
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_Starred ( a , Load , 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 star_expression[%d-%d]: %s failed!\n", p->level, ' ',
6591 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
6592 }
6593 { // expression
6594 if (p->error_indicator) {
6595 D(p->level--);
6596 return NULL;
6597 }
6598 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
6599 expr_ty expression_var;
6600 if (
6601 (expression_var = expression_rule(p)) // expression
6602 )
6603 {
6604 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
6605 _res = expression_var;
6606 goto done;
6607 }
6608 p->mark = _mark;
6609 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
6610 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
6611 }
6612 _res = NULL;
6613 done:
6614 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
6615 D(p->level--);
6616 return _res;
6617}
6618
6619// star_named_expressions: ','.star_named_expression+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +01006620static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006621star_named_expressions_rule(Parser *p)
6622{
6623 D(p->level++);
6624 if (p->error_indicator) {
6625 D(p->level--);
6626 return NULL;
6627 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01006628 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006629 int _mark = p->mark;
6630 { // ','.star_named_expression+ ','?
6631 if (p->error_indicator) {
6632 D(p->level--);
6633 return NULL;
6634 }
6635 D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
6636 void *_opt_var;
6637 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01006638 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006639 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00006640 (a = (asdl_expr_seq*)_gather_71_rule(p)) // ','.star_named_expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006641 &&
6642 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6643 )
6644 {
6645 D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
6646 _res = a;
6647 if (_res == NULL && PyErr_Occurred()) {
6648 p->error_indicator = 1;
6649 D(p->level--);
6650 return NULL;
6651 }
6652 goto done;
6653 }
6654 p->mark = _mark;
6655 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6656 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
6657 }
6658 _res = NULL;
6659 done:
6660 D(p->level--);
6661 return _res;
6662}
6663
6664// star_named_expression: '*' bitwise_or | named_expression
6665static expr_ty
6666star_named_expression_rule(Parser *p)
6667{
6668 D(p->level++);
6669 if (p->error_indicator) {
6670 D(p->level--);
6671 return NULL;
6672 }
6673 expr_ty _res = NULL;
6674 int _mark = p->mark;
6675 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6676 p->error_indicator = 1;
6677 D(p->level--);
6678 return NULL;
6679 }
6680 int _start_lineno = p->tokens[_mark]->lineno;
6681 UNUSED(_start_lineno); // Only used by EXTRA macro
6682 int _start_col_offset = p->tokens[_mark]->col_offset;
6683 UNUSED(_start_col_offset); // Only used by EXTRA macro
6684 { // '*' bitwise_or
6685 if (p->error_indicator) {
6686 D(p->level--);
6687 return NULL;
6688 }
6689 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
6690 Token * _literal;
6691 expr_ty a;
6692 if (
6693 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
6694 &&
6695 (a = bitwise_or_rule(p)) // bitwise_or
6696 )
6697 {
6698 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
6699 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6700 if (_token == NULL) {
6701 D(p->level--);
6702 return NULL;
6703 }
6704 int _end_lineno = _token->end_lineno;
6705 UNUSED(_end_lineno); // Only used by EXTRA macro
6706 int _end_col_offset = _token->end_col_offset;
6707 UNUSED(_end_col_offset); // Only used by EXTRA macro
6708 _res = _Py_Starred ( a , Load , EXTRA );
6709 if (_res == NULL && PyErr_Occurred()) {
6710 p->error_indicator = 1;
6711 D(p->level--);
6712 return NULL;
6713 }
6714 goto done;
6715 }
6716 p->mark = _mark;
6717 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6718 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
6719 }
6720 { // named_expression
6721 if (p->error_indicator) {
6722 D(p->level--);
6723 return NULL;
6724 }
6725 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
6726 expr_ty named_expression_var;
6727 if (
6728 (named_expression_var = named_expression_rule(p)) // named_expression
6729 )
6730 {
6731 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
6732 _res = named_expression_var;
6733 goto done;
6734 }
6735 p->mark = _mark;
6736 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6737 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
6738 }
6739 _res = NULL;
6740 done:
6741 D(p->level--);
6742 return _res;
6743}
6744
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006745// named_expression: NAME ':=' ~ expression | expression !':=' | invalid_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006746static expr_ty
6747named_expression_rule(Parser *p)
6748{
6749 D(p->level++);
6750 if (p->error_indicator) {
6751 D(p->level--);
6752 return NULL;
6753 }
6754 expr_ty _res = NULL;
6755 int _mark = p->mark;
6756 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6757 p->error_indicator = 1;
6758 D(p->level--);
6759 return NULL;
6760 }
6761 int _start_lineno = p->tokens[_mark]->lineno;
6762 UNUSED(_start_lineno); // Only used by EXTRA macro
6763 int _start_col_offset = p->tokens[_mark]->col_offset;
6764 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006765 { // NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006766 if (p->error_indicator) {
6767 D(p->level--);
6768 return NULL;
6769 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006770 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
6771 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006772 Token * _literal;
6773 expr_ty a;
6774 expr_ty b;
6775 if (
6776 (a = _PyPegen_name_token(p)) // NAME
6777 &&
6778 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
6779 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006780 (_cut_var = 1)
6781 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006782 (b = expression_rule(p)) // expression
6783 )
6784 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006785 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 +01006786 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6787 if (_token == NULL) {
6788 D(p->level--);
6789 return NULL;
6790 }
6791 int _end_lineno = _token->end_lineno;
6792 UNUSED(_end_lineno); // Only used by EXTRA macro
6793 int _end_col_offset = _token->end_col_offset;
6794 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03006795 _res = _Py_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006796 if (_res == NULL && PyErr_Occurred()) {
6797 p->error_indicator = 1;
6798 D(p->level--);
6799 return NULL;
6800 }
6801 goto done;
6802 }
6803 p->mark = _mark;
6804 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006805 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
6806 if (_cut_var) {
6807 D(p->level--);
6808 return NULL;
6809 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006810 }
6811 { // expression !':='
6812 if (p->error_indicator) {
6813 D(p->level--);
6814 return NULL;
6815 }
6816 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
6817 expr_ty expression_var;
6818 if (
6819 (expression_var = expression_rule(p)) // expression
6820 &&
6821 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
6822 )
6823 {
6824 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
6825 _res = expression_var;
6826 goto done;
6827 }
6828 p->mark = _mark;
6829 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6830 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
6831 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02006832 if (p->call_invalid_rules) { // invalid_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006833 if (p->error_indicator) {
6834 D(p->level--);
6835 return NULL;
6836 }
6837 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
6838 void *invalid_named_expression_var;
6839 if (
6840 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
6841 )
6842 {
6843 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
6844 _res = invalid_named_expression_var;
6845 goto done;
6846 }
6847 p->mark = _mark;
6848 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6849 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
6850 }
6851 _res = NULL;
6852 done:
6853 D(p->level--);
6854 return _res;
6855}
6856
6857// annotated_rhs: yield_expr | star_expressions
6858static expr_ty
6859annotated_rhs_rule(Parser *p)
6860{
6861 D(p->level++);
6862 if (p->error_indicator) {
6863 D(p->level--);
6864 return NULL;
6865 }
6866 expr_ty _res = NULL;
6867 int _mark = p->mark;
6868 { // yield_expr
6869 if (p->error_indicator) {
6870 D(p->level--);
6871 return NULL;
6872 }
6873 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
6874 expr_ty yield_expr_var;
6875 if (
6876 (yield_expr_var = yield_expr_rule(p)) // yield_expr
6877 )
6878 {
6879 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
6880 _res = yield_expr_var;
6881 goto done;
6882 }
6883 p->mark = _mark;
6884 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
6885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
6886 }
6887 { // star_expressions
6888 if (p->error_indicator) {
6889 D(p->level--);
6890 return NULL;
6891 }
6892 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
6893 expr_ty star_expressions_var;
6894 if (
6895 (star_expressions_var = star_expressions_rule(p)) // star_expressions
6896 )
6897 {
6898 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
6899 _res = star_expressions_var;
6900 goto done;
6901 }
6902 p->mark = _mark;
6903 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
6904 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
6905 }
6906 _res = NULL;
6907 done:
6908 D(p->level--);
6909 return _res;
6910}
6911
6912// expressions: expression ((',' expression))+ ','? | expression ',' | expression
6913static expr_ty
6914expressions_rule(Parser *p)
6915{
6916 D(p->level++);
6917 if (p->error_indicator) {
6918 D(p->level--);
6919 return NULL;
6920 }
6921 expr_ty _res = NULL;
6922 int _mark = p->mark;
6923 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6924 p->error_indicator = 1;
6925 D(p->level--);
6926 return NULL;
6927 }
6928 int _start_lineno = p->tokens[_mark]->lineno;
6929 UNUSED(_start_lineno); // Only used by EXTRA macro
6930 int _start_col_offset = p->tokens[_mark]->col_offset;
6931 UNUSED(_start_col_offset); // Only used by EXTRA macro
6932 { // expression ((',' expression))+ ','?
6933 if (p->error_indicator) {
6934 D(p->level--);
6935 return NULL;
6936 }
6937 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
6938 void *_opt_var;
6939 UNUSED(_opt_var); // Silence compiler warnings
6940 expr_ty a;
6941 asdl_seq * b;
6942 if (
6943 (a = expression_rule(p)) // expression
6944 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00006945 (b = _loop1_73_rule(p)) // ((',' expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006946 &&
6947 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6948 )
6949 {
6950 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
6951 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6952 if (_token == NULL) {
6953 D(p->level--);
6954 return NULL;
6955 }
6956 int _end_lineno = _token->end_lineno;
6957 UNUSED(_end_lineno); // Only used by EXTRA macro
6958 int _end_col_offset = _token->end_col_offset;
6959 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03006960 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006961 if (_res == NULL && PyErr_Occurred()) {
6962 p->error_indicator = 1;
6963 D(p->level--);
6964 return NULL;
6965 }
6966 goto done;
6967 }
6968 p->mark = _mark;
6969 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6970 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
6971 }
6972 { // expression ','
6973 if (p->error_indicator) {
6974 D(p->level--);
6975 return NULL;
6976 }
6977 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
6978 Token * _literal;
6979 expr_ty a;
6980 if (
6981 (a = expression_rule(p)) // expression
6982 &&
6983 (_literal = _PyPegen_expect_token(p, 12)) // token=','
6984 )
6985 {
6986 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
6987 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6988 if (_token == NULL) {
6989 D(p->level--);
6990 return NULL;
6991 }
6992 int _end_lineno = _token->end_lineno;
6993 UNUSED(_end_lineno); // Only used by EXTRA macro
6994 int _end_col_offset = _token->end_col_offset;
6995 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03006996 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006997 if (_res == NULL && PyErr_Occurred()) {
6998 p->error_indicator = 1;
6999 D(p->level--);
7000 return NULL;
7001 }
7002 goto done;
7003 }
7004 p->mark = _mark;
7005 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
7006 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
7007 }
7008 { // expression
7009 if (p->error_indicator) {
7010 D(p->level--);
7011 return NULL;
7012 }
7013 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
7014 expr_ty expression_var;
7015 if (
7016 (expression_var = expression_rule(p)) // expression
7017 )
7018 {
7019 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
7020 _res = expression_var;
7021 goto done;
7022 }
7023 p->mark = _mark;
7024 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
7025 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
7026 }
7027 _res = NULL;
7028 done:
7029 D(p->level--);
7030 return _res;
7031}
7032
7033// expression: disjunction 'if' disjunction 'else' expression | disjunction | lambdef
7034static expr_ty
7035expression_rule(Parser *p)
7036{
7037 D(p->level++);
7038 if (p->error_indicator) {
7039 D(p->level--);
7040 return NULL;
7041 }
7042 expr_ty _res = NULL;
7043 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
7044 D(p->level--);
7045 return _res;
7046 }
7047 int _mark = p->mark;
7048 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7049 p->error_indicator = 1;
7050 D(p->level--);
7051 return NULL;
7052 }
7053 int _start_lineno = p->tokens[_mark]->lineno;
7054 UNUSED(_start_lineno); // Only used by EXTRA macro
7055 int _start_col_offset = p->tokens[_mark]->col_offset;
7056 UNUSED(_start_col_offset); // Only used by EXTRA macro
7057 { // disjunction 'if' disjunction 'else' expression
7058 if (p->error_indicator) {
7059 D(p->level--);
7060 return NULL;
7061 }
7062 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
7063 Token * _keyword;
7064 Token * _keyword_1;
7065 expr_ty a;
7066 expr_ty b;
7067 expr_ty c;
7068 if (
7069 (a = disjunction_rule(p)) // disjunction
7070 &&
7071 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
7072 &&
7073 (b = disjunction_rule(p)) // disjunction
7074 &&
7075 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
7076 &&
7077 (c = expression_rule(p)) // expression
7078 )
7079 {
7080 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
7081 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7082 if (_token == NULL) {
7083 D(p->level--);
7084 return NULL;
7085 }
7086 int _end_lineno = _token->end_lineno;
7087 UNUSED(_end_lineno); // Only used by EXTRA macro
7088 int _end_col_offset = _token->end_col_offset;
7089 UNUSED(_end_col_offset); // Only used by EXTRA macro
7090 _res = _Py_IfExp ( b , a , c , EXTRA );
7091 if (_res == NULL && PyErr_Occurred()) {
7092 p->error_indicator = 1;
7093 D(p->level--);
7094 return NULL;
7095 }
7096 goto done;
7097 }
7098 p->mark = _mark;
7099 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7100 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
7101 }
7102 { // disjunction
7103 if (p->error_indicator) {
7104 D(p->level--);
7105 return NULL;
7106 }
7107 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
7108 expr_ty disjunction_var;
7109 if (
7110 (disjunction_var = disjunction_rule(p)) // disjunction
7111 )
7112 {
7113 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
7114 _res = disjunction_var;
7115 goto done;
7116 }
7117 p->mark = _mark;
7118 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7119 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
7120 }
7121 { // lambdef
7122 if (p->error_indicator) {
7123 D(p->level--);
7124 return NULL;
7125 }
7126 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
7127 expr_ty lambdef_var;
7128 if (
7129 (lambdef_var = lambdef_rule(p)) // lambdef
7130 )
7131 {
7132 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
7133 _res = lambdef_var;
7134 goto done;
7135 }
7136 p->mark = _mark;
7137 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7138 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
7139 }
7140 _res = NULL;
7141 done:
7142 _PyPegen_insert_memo(p, _mark, expression_type, _res);
7143 D(p->level--);
7144 return _res;
7145}
7146
7147// lambdef: 'lambda' lambda_params? ':' expression
7148static expr_ty
7149lambdef_rule(Parser *p)
7150{
7151 D(p->level++);
7152 if (p->error_indicator) {
7153 D(p->level--);
7154 return NULL;
7155 }
7156 expr_ty _res = NULL;
7157 int _mark = p->mark;
7158 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7159 p->error_indicator = 1;
7160 D(p->level--);
7161 return NULL;
7162 }
7163 int _start_lineno = p->tokens[_mark]->lineno;
7164 UNUSED(_start_lineno); // Only used by EXTRA macro
7165 int _start_col_offset = p->tokens[_mark]->col_offset;
7166 UNUSED(_start_col_offset); // Only used by EXTRA macro
7167 { // 'lambda' lambda_params? ':' expression
7168 if (p->error_indicator) {
7169 D(p->level--);
7170 return NULL;
7171 }
7172 D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
7173 Token * _keyword;
7174 Token * _literal;
7175 void *a;
7176 expr_ty b;
7177 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03007178 (_keyword = _PyPegen_expect_token(p, 525)) // token='lambda'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007179 &&
7180 (a = lambda_params_rule(p), 1) // lambda_params?
7181 &&
7182 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
7183 &&
7184 (b = expression_rule(p)) // expression
7185 )
7186 {
7187 D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
7188 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7189 if (_token == NULL) {
7190 D(p->level--);
7191 return NULL;
7192 }
7193 int _end_lineno = _token->end_lineno;
7194 UNUSED(_end_lineno); // Only used by EXTRA macro
7195 int _end_col_offset = _token->end_col_offset;
7196 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03007197 _res = _Py_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007198 if (_res == NULL && PyErr_Occurred()) {
7199 p->error_indicator = 1;
7200 D(p->level--);
7201 return NULL;
7202 }
7203 goto done;
7204 }
7205 p->mark = _mark;
7206 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
7207 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
7208 }
7209 _res = NULL;
7210 done:
7211 D(p->level--);
7212 return _res;
7213}
7214
7215// lambda_params: invalid_lambda_parameters | lambda_parameters
7216static arguments_ty
7217lambda_params_rule(Parser *p)
7218{
7219 D(p->level++);
7220 if (p->error_indicator) {
7221 D(p->level--);
7222 return NULL;
7223 }
7224 arguments_ty _res = NULL;
7225 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02007226 if (p->call_invalid_rules) { // invalid_lambda_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007227 if (p->error_indicator) {
7228 D(p->level--);
7229 return NULL;
7230 }
7231 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
7232 void *invalid_lambda_parameters_var;
7233 if (
7234 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
7235 )
7236 {
7237 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
7238 _res = invalid_lambda_parameters_var;
7239 goto done;
7240 }
7241 p->mark = _mark;
7242 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
7243 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
7244 }
7245 { // lambda_parameters
7246 if (p->error_indicator) {
7247 D(p->level--);
7248 return NULL;
7249 }
7250 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
7251 arguments_ty lambda_parameters_var;
7252 if (
7253 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
7254 )
7255 {
7256 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
7257 _res = lambda_parameters_var;
7258 goto done;
7259 }
7260 p->mark = _mark;
7261 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
7262 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
7263 }
7264 _res = NULL;
7265 done:
7266 D(p->level--);
7267 return _res;
7268}
7269
7270// lambda_parameters:
7271// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
7272// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
7273// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
7274// | lambda_param_with_default+ lambda_star_etc?
7275// | lambda_star_etc
7276static arguments_ty
7277lambda_parameters_rule(Parser *p)
7278{
7279 D(p->level++);
7280 if (p->error_indicator) {
7281 D(p->level--);
7282 return NULL;
7283 }
7284 arguments_ty _res = NULL;
7285 int _mark = p->mark;
7286 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
7287 if (p->error_indicator) {
7288 D(p->level--);
7289 return NULL;
7290 }
7291 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 +01007292 asdl_arg_seq* a;
7293 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007294 asdl_seq * c;
7295 void *d;
7296 if (
7297 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
7298 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007299 (b = (asdl_arg_seq*)_loop0_74_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007300 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007301 (c = _loop0_75_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007302 &&
7303 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
7304 )
7305 {
7306 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?"));
7307 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
7308 if (_res == NULL && PyErr_Occurred()) {
7309 p->error_indicator = 1;
7310 D(p->level--);
7311 return NULL;
7312 }
7313 goto done;
7314 }
7315 p->mark = _mark;
7316 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7317 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
7318 }
7319 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
7320 if (p->error_indicator) {
7321 D(p->level--);
7322 return NULL;
7323 }
7324 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?"));
7325 SlashWithDefault* a;
7326 asdl_seq * b;
7327 void *c;
7328 if (
7329 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
7330 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007331 (b = _loop0_76_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007332 &&
7333 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
7334 )
7335 {
7336 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?"));
7337 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
7338 if (_res == NULL && PyErr_Occurred()) {
7339 p->error_indicator = 1;
7340 D(p->level--);
7341 return NULL;
7342 }
7343 goto done;
7344 }
7345 p->mark = _mark;
7346 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7347 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
7348 }
7349 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
7350 if (p->error_indicator) {
7351 D(p->level--);
7352 return NULL;
7353 }
7354 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 +01007355 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007356 asdl_seq * b;
7357 void *c;
7358 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007359 (a = (asdl_arg_seq*)_loop1_77_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007360 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007361 (b = _loop0_78_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007362 &&
7363 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
7364 )
7365 {
7366 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?"));
7367 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
7368 if (_res == NULL && PyErr_Occurred()) {
7369 p->error_indicator = 1;
7370 D(p->level--);
7371 return NULL;
7372 }
7373 goto done;
7374 }
7375 p->mark = _mark;
7376 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7377 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
7378 }
7379 { // lambda_param_with_default+ lambda_star_etc?
7380 if (p->error_indicator) {
7381 D(p->level--);
7382 return NULL;
7383 }
7384 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
7385 asdl_seq * a;
7386 void *b;
7387 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007388 (a = _loop1_79_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007389 &&
7390 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
7391 )
7392 {
7393 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
7394 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
7395 if (_res == NULL && PyErr_Occurred()) {
7396 p->error_indicator = 1;
7397 D(p->level--);
7398 return NULL;
7399 }
7400 goto done;
7401 }
7402 p->mark = _mark;
7403 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
7405 }
7406 { // lambda_star_etc
7407 if (p->error_indicator) {
7408 D(p->level--);
7409 return NULL;
7410 }
7411 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
7412 StarEtc* a;
7413 if (
7414 (a = lambda_star_etc_rule(p)) // lambda_star_etc
7415 )
7416 {
7417 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
7418 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
7419 if (_res == NULL && PyErr_Occurred()) {
7420 p->error_indicator = 1;
7421 D(p->level--);
7422 return NULL;
7423 }
7424 goto done;
7425 }
7426 p->mark = _mark;
7427 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7428 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
7429 }
7430 _res = NULL;
7431 done:
7432 D(p->level--);
7433 return _res;
7434}
7435
7436// lambda_slash_no_default:
7437// | lambda_param_no_default+ '/' ','
7438// | lambda_param_no_default+ '/' &':'
Pablo Galindoa5634c42020-09-16 19:42:00 +01007439static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007440lambda_slash_no_default_rule(Parser *p)
7441{
7442 D(p->level++);
7443 if (p->error_indicator) {
7444 D(p->level--);
7445 return NULL;
7446 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01007447 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007448 int _mark = p->mark;
7449 { // lambda_param_no_default+ '/' ','
7450 if (p->error_indicator) {
7451 D(p->level--);
7452 return NULL;
7453 }
7454 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
7455 Token * _literal;
7456 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007457 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007458 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007459 (a = (asdl_arg_seq*)_loop1_80_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007460 &&
7461 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7462 &&
7463 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7464 )
7465 {
7466 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
7467 _res = a;
7468 if (_res == NULL && PyErr_Occurred()) {
7469 p->error_indicator = 1;
7470 D(p->level--);
7471 return NULL;
7472 }
7473 goto done;
7474 }
7475 p->mark = _mark;
7476 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7477 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
7478 }
7479 { // lambda_param_no_default+ '/' &':'
7480 if (p->error_indicator) {
7481 D(p->level--);
7482 return NULL;
7483 }
7484 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
7485 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007486 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007487 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007488 (a = (asdl_arg_seq*)_loop1_81_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007489 &&
7490 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7491 &&
7492 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
7493 )
7494 {
7495 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
7496 _res = a;
7497 if (_res == NULL && PyErr_Occurred()) {
7498 p->error_indicator = 1;
7499 D(p->level--);
7500 return NULL;
7501 }
7502 goto done;
7503 }
7504 p->mark = _mark;
7505 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
7507 }
7508 _res = NULL;
7509 done:
7510 D(p->level--);
7511 return _res;
7512}
7513
7514// lambda_slash_with_default:
7515// | lambda_param_no_default* lambda_param_with_default+ '/' ','
7516// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
7517static SlashWithDefault*
7518lambda_slash_with_default_rule(Parser *p)
7519{
7520 D(p->level++);
7521 if (p->error_indicator) {
7522 D(p->level--);
7523 return NULL;
7524 }
7525 SlashWithDefault* _res = NULL;
7526 int _mark = p->mark;
7527 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
7528 if (p->error_indicator) {
7529 D(p->level--);
7530 return NULL;
7531 }
7532 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+ '/' ','"));
7533 Token * _literal;
7534 Token * _literal_1;
7535 asdl_seq * a;
7536 asdl_seq * b;
7537 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007538 (a = _loop0_82_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007539 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007540 (b = _loop1_83_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007541 &&
7542 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7543 &&
7544 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7545 )
7546 {
7547 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 +01007548 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007549 if (_res == NULL && PyErr_Occurred()) {
7550 p->error_indicator = 1;
7551 D(p->level--);
7552 return NULL;
7553 }
7554 goto done;
7555 }
7556 p->mark = _mark;
7557 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7558 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
7559 }
7560 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
7561 if (p->error_indicator) {
7562 D(p->level--);
7563 return NULL;
7564 }
7565 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+ '/' &':'"));
7566 Token * _literal;
7567 asdl_seq * a;
7568 asdl_seq * b;
7569 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007570 (a = _loop0_84_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007571 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007572 (b = _loop1_85_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007573 &&
7574 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7575 &&
7576 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
7577 )
7578 {
7579 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 +01007580 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007581 if (_res == NULL && PyErr_Occurred()) {
7582 p->error_indicator = 1;
7583 D(p->level--);
7584 return NULL;
7585 }
7586 goto done;
7587 }
7588 p->mark = _mark;
7589 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7590 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
7591 }
7592 _res = NULL;
7593 done:
7594 D(p->level--);
7595 return _res;
7596}
7597
7598// lambda_star_etc:
7599// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
7600// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
7601// | lambda_kwds
7602// | invalid_lambda_star_etc
7603static StarEtc*
7604lambda_star_etc_rule(Parser *p)
7605{
7606 D(p->level++);
7607 if (p->error_indicator) {
7608 D(p->level--);
7609 return NULL;
7610 }
7611 StarEtc* _res = NULL;
7612 int _mark = p->mark;
7613 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
7614 if (p->error_indicator) {
7615 D(p->level--);
7616 return NULL;
7617 }
7618 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?"));
7619 Token * _literal;
7620 arg_ty a;
7621 asdl_seq * b;
7622 void *c;
7623 if (
7624 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7625 &&
7626 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
7627 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007628 (b = _loop0_86_rule(p)) // lambda_param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007629 &&
7630 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
7631 )
7632 {
7633 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?"));
7634 _res = _PyPegen_star_etc ( p , a , b , c );
7635 if (_res == NULL && PyErr_Occurred()) {
7636 p->error_indicator = 1;
7637 D(p->level--);
7638 return NULL;
7639 }
7640 goto done;
7641 }
7642 p->mark = _mark;
7643 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7644 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
7645 }
7646 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
7647 if (p->error_indicator) {
7648 D(p->level--);
7649 return NULL;
7650 }
7651 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
7652 Token * _literal;
7653 Token * _literal_1;
7654 asdl_seq * b;
7655 void *c;
7656 if (
7657 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7658 &&
7659 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7660 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007661 (b = _loop1_87_rule(p)) // lambda_param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007662 &&
7663 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
7664 )
7665 {
7666 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
7667 _res = _PyPegen_star_etc ( p , NULL , b , c );
7668 if (_res == NULL && PyErr_Occurred()) {
7669 p->error_indicator = 1;
7670 D(p->level--);
7671 return NULL;
7672 }
7673 goto done;
7674 }
7675 p->mark = _mark;
7676 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
7678 }
7679 { // lambda_kwds
7680 if (p->error_indicator) {
7681 D(p->level--);
7682 return NULL;
7683 }
7684 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
7685 arg_ty a;
7686 if (
7687 (a = lambda_kwds_rule(p)) // lambda_kwds
7688 )
7689 {
7690 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
7691 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
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 lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7701 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
7702 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02007703 if (p->call_invalid_rules) { // invalid_lambda_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007704 if (p->error_indicator) {
7705 D(p->level--);
7706 return NULL;
7707 }
7708 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
7709 void *invalid_lambda_star_etc_var;
7710 if (
7711 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
7712 )
7713 {
7714 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
7715 _res = invalid_lambda_star_etc_var;
7716 goto done;
7717 }
7718 p->mark = _mark;
7719 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7720 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
7721 }
7722 _res = NULL;
7723 done:
7724 D(p->level--);
7725 return _res;
7726}
7727
7728// lambda_kwds: '**' lambda_param_no_default
7729static arg_ty
7730lambda_kwds_rule(Parser *p)
7731{
7732 D(p->level++);
7733 if (p->error_indicator) {
7734 D(p->level--);
7735 return NULL;
7736 }
7737 arg_ty _res = NULL;
7738 int _mark = p->mark;
7739 { // '**' lambda_param_no_default
7740 if (p->error_indicator) {
7741 D(p->level--);
7742 return NULL;
7743 }
7744 D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
7745 Token * _literal;
7746 arg_ty a;
7747 if (
7748 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
7749 &&
7750 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
7751 )
7752 {
7753 D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
7754 _res = a;
7755 if (_res == NULL && PyErr_Occurred()) {
7756 p->error_indicator = 1;
7757 D(p->level--);
7758 return NULL;
7759 }
7760 goto done;
7761 }
7762 p->mark = _mark;
7763 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
7764 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
7765 }
7766 _res = NULL;
7767 done:
7768 D(p->level--);
7769 return _res;
7770}
7771
7772// lambda_param_no_default: lambda_param ',' | lambda_param &':'
7773static arg_ty
7774lambda_param_no_default_rule(Parser *p)
7775{
7776 D(p->level++);
7777 if (p->error_indicator) {
7778 D(p->level--);
7779 return NULL;
7780 }
7781 arg_ty _res = NULL;
7782 int _mark = p->mark;
7783 { // lambda_param ','
7784 if (p->error_indicator) {
7785 D(p->level--);
7786 return NULL;
7787 }
7788 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
7789 Token * _literal;
7790 arg_ty a;
7791 if (
7792 (a = lambda_param_rule(p)) // lambda_param
7793 &&
7794 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7795 )
7796 {
7797 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
7798 _res = a;
7799 if (_res == NULL && PyErr_Occurred()) {
7800 p->error_indicator = 1;
7801 D(p->level--);
7802 return NULL;
7803 }
7804 goto done;
7805 }
7806 p->mark = _mark;
7807 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
7809 }
7810 { // lambda_param &':'
7811 if (p->error_indicator) {
7812 D(p->level--);
7813 return NULL;
7814 }
7815 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
7816 arg_ty a;
7817 if (
7818 (a = lambda_param_rule(p)) // lambda_param
7819 &&
7820 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
7821 )
7822 {
7823 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
7824 _res = a;
7825 if (_res == NULL && PyErr_Occurred()) {
7826 p->error_indicator = 1;
7827 D(p->level--);
7828 return NULL;
7829 }
7830 goto done;
7831 }
7832 p->mark = _mark;
7833 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7834 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
7835 }
7836 _res = NULL;
7837 done:
7838 D(p->level--);
7839 return _res;
7840}
7841
7842// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
7843static NameDefaultPair*
7844lambda_param_with_default_rule(Parser *p)
7845{
7846 D(p->level++);
7847 if (p->error_indicator) {
7848 D(p->level--);
7849 return NULL;
7850 }
7851 NameDefaultPair* _res = NULL;
7852 int _mark = p->mark;
7853 { // lambda_param default ','
7854 if (p->error_indicator) {
7855 D(p->level--);
7856 return NULL;
7857 }
7858 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
7859 Token * _literal;
7860 arg_ty a;
7861 expr_ty c;
7862 if (
7863 (a = lambda_param_rule(p)) // lambda_param
7864 &&
7865 (c = default_rule(p)) // default
7866 &&
7867 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7868 )
7869 {
7870 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
7871 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7872 if (_res == NULL && PyErr_Occurred()) {
7873 p->error_indicator = 1;
7874 D(p->level--);
7875 return NULL;
7876 }
7877 goto done;
7878 }
7879 p->mark = _mark;
7880 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7881 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
7882 }
7883 { // lambda_param default &':'
7884 if (p->error_indicator) {
7885 D(p->level--);
7886 return NULL;
7887 }
7888 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
7889 arg_ty a;
7890 expr_ty c;
7891 if (
7892 (a = lambda_param_rule(p)) // lambda_param
7893 &&
7894 (c = default_rule(p)) // default
7895 &&
7896 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
7897 )
7898 {
7899 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
7900 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7901 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 lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7910 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
7911 }
7912 _res = NULL;
7913 done:
7914 D(p->level--);
7915 return _res;
7916}
7917
7918// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
7919static NameDefaultPair*
7920lambda_param_maybe_default_rule(Parser *p)
7921{
7922 D(p->level++);
7923 if (p->error_indicator) {
7924 D(p->level--);
7925 return NULL;
7926 }
7927 NameDefaultPair* _res = NULL;
7928 int _mark = p->mark;
7929 { // lambda_param default? ','
7930 if (p->error_indicator) {
7931 D(p->level--);
7932 return NULL;
7933 }
7934 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
7935 Token * _literal;
7936 arg_ty a;
7937 void *c;
7938 if (
7939 (a = lambda_param_rule(p)) // lambda_param
7940 &&
7941 (c = default_rule(p), 1) // default?
7942 &&
7943 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7944 )
7945 {
7946 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
7947 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7948 if (_res == NULL && PyErr_Occurred()) {
7949 p->error_indicator = 1;
7950 D(p->level--);
7951 return NULL;
7952 }
7953 goto done;
7954 }
7955 p->mark = _mark;
7956 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
7957 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
7958 }
7959 { // lambda_param default? &':'
7960 if (p->error_indicator) {
7961 D(p->level--);
7962 return NULL;
7963 }
7964 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
7965 arg_ty a;
7966 void *c;
7967 if (
7968 (a = lambda_param_rule(p)) // lambda_param
7969 &&
7970 (c = default_rule(p), 1) // default?
7971 &&
7972 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
7973 )
7974 {
7975 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
7976 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7977 if (_res == NULL && PyErr_Occurred()) {
7978 p->error_indicator = 1;
7979 D(p->level--);
7980 return NULL;
7981 }
7982 goto done;
7983 }
7984 p->mark = _mark;
7985 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
7986 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
7987 }
7988 _res = NULL;
7989 done:
7990 D(p->level--);
7991 return _res;
7992}
7993
7994// lambda_param: NAME
7995static arg_ty
7996lambda_param_rule(Parser *p)
7997{
7998 D(p->level++);
7999 if (p->error_indicator) {
8000 D(p->level--);
8001 return NULL;
8002 }
8003 arg_ty _res = NULL;
8004 int _mark = p->mark;
8005 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8006 p->error_indicator = 1;
8007 D(p->level--);
8008 return NULL;
8009 }
8010 int _start_lineno = p->tokens[_mark]->lineno;
8011 UNUSED(_start_lineno); // Only used by EXTRA macro
8012 int _start_col_offset = p->tokens[_mark]->col_offset;
8013 UNUSED(_start_col_offset); // Only used by EXTRA macro
8014 { // NAME
8015 if (p->error_indicator) {
8016 D(p->level--);
8017 return NULL;
8018 }
8019 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
8020 expr_ty a;
8021 if (
8022 (a = _PyPegen_name_token(p)) // NAME
8023 )
8024 {
8025 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
8026 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8027 if (_token == NULL) {
8028 D(p->level--);
8029 return NULL;
8030 }
8031 int _end_lineno = _token->end_lineno;
8032 UNUSED(_end_lineno); // Only used by EXTRA macro
8033 int _end_col_offset = _token->end_col_offset;
8034 UNUSED(_end_col_offset); // Only used by EXTRA macro
8035 _res = _Py_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
8036 if (_res == NULL && PyErr_Occurred()) {
8037 p->error_indicator = 1;
8038 D(p->level--);
8039 return NULL;
8040 }
8041 goto done;
8042 }
8043 p->mark = _mark;
8044 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
8045 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
8046 }
8047 _res = NULL;
8048 done:
8049 D(p->level--);
8050 return _res;
8051}
8052
8053// disjunction: conjunction (('or' conjunction))+ | conjunction
8054static expr_ty
8055disjunction_rule(Parser *p)
8056{
8057 D(p->level++);
8058 if (p->error_indicator) {
8059 D(p->level--);
8060 return NULL;
8061 }
8062 expr_ty _res = NULL;
8063 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
8064 D(p->level--);
8065 return _res;
8066 }
8067 int _mark = p->mark;
8068 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8069 p->error_indicator = 1;
8070 D(p->level--);
8071 return NULL;
8072 }
8073 int _start_lineno = p->tokens[_mark]->lineno;
8074 UNUSED(_start_lineno); // Only used by EXTRA macro
8075 int _start_col_offset = p->tokens[_mark]->col_offset;
8076 UNUSED(_start_col_offset); // Only used by EXTRA macro
8077 { // conjunction (('or' conjunction))+
8078 if (p->error_indicator) {
8079 D(p->level--);
8080 return NULL;
8081 }
8082 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
8083 expr_ty a;
8084 asdl_seq * b;
8085 if (
8086 (a = conjunction_rule(p)) // conjunction
8087 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00008088 (b = _loop1_88_rule(p)) // (('or' conjunction))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008089 )
8090 {
8091 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
8092 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8093 if (_token == NULL) {
8094 D(p->level--);
8095 return NULL;
8096 }
8097 int _end_lineno = _token->end_lineno;
8098 UNUSED(_end_lineno); // Only used by EXTRA macro
8099 int _end_col_offset = _token->end_col_offset;
8100 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03008101 _res = _Py_BoolOp ( Or , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008102 if (_res == NULL && PyErr_Occurred()) {
8103 p->error_indicator = 1;
8104 D(p->level--);
8105 return NULL;
8106 }
8107 goto done;
8108 }
8109 p->mark = _mark;
8110 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
8111 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
8112 }
8113 { // conjunction
8114 if (p->error_indicator) {
8115 D(p->level--);
8116 return NULL;
8117 }
8118 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
8119 expr_ty conjunction_var;
8120 if (
8121 (conjunction_var = conjunction_rule(p)) // conjunction
8122 )
8123 {
8124 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
8125 _res = conjunction_var;
8126 goto done;
8127 }
8128 p->mark = _mark;
8129 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
8130 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
8131 }
8132 _res = NULL;
8133 done:
8134 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
8135 D(p->level--);
8136 return _res;
8137}
8138
8139// conjunction: inversion (('and' inversion))+ | inversion
8140static expr_ty
8141conjunction_rule(Parser *p)
8142{
8143 D(p->level++);
8144 if (p->error_indicator) {
8145 D(p->level--);
8146 return NULL;
8147 }
8148 expr_ty _res = NULL;
8149 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
8150 D(p->level--);
8151 return _res;
8152 }
8153 int _mark = p->mark;
8154 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8155 p->error_indicator = 1;
8156 D(p->level--);
8157 return NULL;
8158 }
8159 int _start_lineno = p->tokens[_mark]->lineno;
8160 UNUSED(_start_lineno); // Only used by EXTRA macro
8161 int _start_col_offset = p->tokens[_mark]->col_offset;
8162 UNUSED(_start_col_offset); // Only used by EXTRA macro
8163 { // inversion (('and' inversion))+
8164 if (p->error_indicator) {
8165 D(p->level--);
8166 return NULL;
8167 }
8168 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
8169 expr_ty a;
8170 asdl_seq * b;
8171 if (
8172 (a = inversion_rule(p)) // inversion
8173 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00008174 (b = _loop1_89_rule(p)) // (('and' inversion))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008175 )
8176 {
8177 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
8178 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8179 if (_token == NULL) {
8180 D(p->level--);
8181 return NULL;
8182 }
8183 int _end_lineno = _token->end_lineno;
8184 UNUSED(_end_lineno); // Only used by EXTRA macro
8185 int _end_col_offset = _token->end_col_offset;
8186 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03008187 _res = _Py_BoolOp ( And , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008188 if (_res == NULL && PyErr_Occurred()) {
8189 p->error_indicator = 1;
8190 D(p->level--);
8191 return NULL;
8192 }
8193 goto done;
8194 }
8195 p->mark = _mark;
8196 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
8197 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
8198 }
8199 { // inversion
8200 if (p->error_indicator) {
8201 D(p->level--);
8202 return NULL;
8203 }
8204 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
8205 expr_ty inversion_var;
8206 if (
8207 (inversion_var = inversion_rule(p)) // inversion
8208 )
8209 {
8210 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
8211 _res = inversion_var;
8212 goto done;
8213 }
8214 p->mark = _mark;
8215 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
8216 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
8217 }
8218 _res = NULL;
8219 done:
8220 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
8221 D(p->level--);
8222 return _res;
8223}
8224
8225// inversion: 'not' inversion | comparison
8226static expr_ty
8227inversion_rule(Parser *p)
8228{
8229 D(p->level++);
8230 if (p->error_indicator) {
8231 D(p->level--);
8232 return NULL;
8233 }
8234 expr_ty _res = NULL;
8235 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
8236 D(p->level--);
8237 return _res;
8238 }
8239 int _mark = p->mark;
8240 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8241 p->error_indicator = 1;
8242 D(p->level--);
8243 return NULL;
8244 }
8245 int _start_lineno = p->tokens[_mark]->lineno;
8246 UNUSED(_start_lineno); // Only used by EXTRA macro
8247 int _start_col_offset = p->tokens[_mark]->col_offset;
8248 UNUSED(_start_col_offset); // Only used by EXTRA macro
8249 { // 'not' inversion
8250 if (p->error_indicator) {
8251 D(p->level--);
8252 return NULL;
8253 }
8254 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
8255 Token * _keyword;
8256 expr_ty a;
8257 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03008258 (_keyword = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008259 &&
8260 (a = inversion_rule(p)) // inversion
8261 )
8262 {
8263 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
8264 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8265 if (_token == NULL) {
8266 D(p->level--);
8267 return NULL;
8268 }
8269 int _end_lineno = _token->end_lineno;
8270 UNUSED(_end_lineno); // Only used by EXTRA macro
8271 int _end_col_offset = _token->end_col_offset;
8272 UNUSED(_end_col_offset); // Only used by EXTRA macro
8273 _res = _Py_UnaryOp ( Not , a , EXTRA );
8274 if (_res == NULL && PyErr_Occurred()) {
8275 p->error_indicator = 1;
8276 D(p->level--);
8277 return NULL;
8278 }
8279 goto done;
8280 }
8281 p->mark = _mark;
8282 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
8283 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
8284 }
8285 { // comparison
8286 if (p->error_indicator) {
8287 D(p->level--);
8288 return NULL;
8289 }
8290 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
8291 expr_ty comparison_var;
8292 if (
8293 (comparison_var = comparison_rule(p)) // comparison
8294 )
8295 {
8296 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
8297 _res = comparison_var;
8298 goto done;
8299 }
8300 p->mark = _mark;
8301 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
8302 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
8303 }
8304 _res = NULL;
8305 done:
8306 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
8307 D(p->level--);
8308 return _res;
8309}
8310
8311// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
8312static expr_ty
8313comparison_rule(Parser *p)
8314{
8315 D(p->level++);
8316 if (p->error_indicator) {
8317 D(p->level--);
8318 return NULL;
8319 }
8320 expr_ty _res = NULL;
8321 int _mark = p->mark;
8322 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8323 p->error_indicator = 1;
8324 D(p->level--);
8325 return NULL;
8326 }
8327 int _start_lineno = p->tokens[_mark]->lineno;
8328 UNUSED(_start_lineno); // Only used by EXTRA macro
8329 int _start_col_offset = p->tokens[_mark]->col_offset;
8330 UNUSED(_start_col_offset); // Only used by EXTRA macro
8331 { // bitwise_or compare_op_bitwise_or_pair+
8332 if (p->error_indicator) {
8333 D(p->level--);
8334 return NULL;
8335 }
8336 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
8337 expr_ty a;
8338 asdl_seq * b;
8339 if (
8340 (a = bitwise_or_rule(p)) // bitwise_or
8341 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00008342 (b = _loop1_90_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008343 )
8344 {
8345 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
8346 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8347 if (_token == NULL) {
8348 D(p->level--);
8349 return NULL;
8350 }
8351 int _end_lineno = _token->end_lineno;
8352 UNUSED(_end_lineno); // Only used by EXTRA macro
8353 int _end_col_offset = _token->end_col_offset;
8354 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03008355 _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 +01008356 if (_res == NULL && PyErr_Occurred()) {
8357 p->error_indicator = 1;
8358 D(p->level--);
8359 return NULL;
8360 }
8361 goto done;
8362 }
8363 p->mark = _mark;
8364 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
8365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
8366 }
8367 { // bitwise_or
8368 if (p->error_indicator) {
8369 D(p->level--);
8370 return NULL;
8371 }
8372 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
8373 expr_ty bitwise_or_var;
8374 if (
8375 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
8376 )
8377 {
8378 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
8379 _res = bitwise_or_var;
8380 goto done;
8381 }
8382 p->mark = _mark;
8383 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
8384 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
8385 }
8386 _res = NULL;
8387 done:
8388 D(p->level--);
8389 return _res;
8390}
8391
8392// compare_op_bitwise_or_pair:
8393// | eq_bitwise_or
8394// | noteq_bitwise_or
8395// | lte_bitwise_or
8396// | lt_bitwise_or
8397// | gte_bitwise_or
8398// | gt_bitwise_or
8399// | notin_bitwise_or
8400// | in_bitwise_or
8401// | isnot_bitwise_or
8402// | is_bitwise_or
8403static CmpopExprPair*
8404compare_op_bitwise_or_pair_rule(Parser *p)
8405{
8406 D(p->level++);
8407 if (p->error_indicator) {
8408 D(p->level--);
8409 return NULL;
8410 }
8411 CmpopExprPair* _res = NULL;
8412 int _mark = p->mark;
8413 { // eq_bitwise_or
8414 if (p->error_indicator) {
8415 D(p->level--);
8416 return NULL;
8417 }
8418 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
8419 CmpopExprPair* eq_bitwise_or_var;
8420 if (
8421 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
8422 )
8423 {
8424 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
8425 _res = eq_bitwise_or_var;
8426 goto done;
8427 }
8428 p->mark = _mark;
8429 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8430 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
8431 }
8432 { // noteq_bitwise_or
8433 if (p->error_indicator) {
8434 D(p->level--);
8435 return NULL;
8436 }
8437 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
8438 CmpopExprPair* noteq_bitwise_or_var;
8439 if (
8440 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
8441 )
8442 {
8443 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
8444 _res = noteq_bitwise_or_var;
8445 goto done;
8446 }
8447 p->mark = _mark;
8448 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8449 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
8450 }
8451 { // lte_bitwise_or
8452 if (p->error_indicator) {
8453 D(p->level--);
8454 return NULL;
8455 }
8456 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
8457 CmpopExprPair* lte_bitwise_or_var;
8458 if (
8459 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
8460 )
8461 {
8462 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
8463 _res = lte_bitwise_or_var;
8464 goto done;
8465 }
8466 p->mark = _mark;
8467 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8468 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
8469 }
8470 { // lt_bitwise_or
8471 if (p->error_indicator) {
8472 D(p->level--);
8473 return NULL;
8474 }
8475 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
8476 CmpopExprPair* lt_bitwise_or_var;
8477 if (
8478 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
8479 )
8480 {
8481 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
8482 _res = lt_bitwise_or_var;
8483 goto done;
8484 }
8485 p->mark = _mark;
8486 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8487 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
8488 }
8489 { // gte_bitwise_or
8490 if (p->error_indicator) {
8491 D(p->level--);
8492 return NULL;
8493 }
8494 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
8495 CmpopExprPair* gte_bitwise_or_var;
8496 if (
8497 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
8498 )
8499 {
8500 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
8501 _res = gte_bitwise_or_var;
8502 goto done;
8503 }
8504 p->mark = _mark;
8505 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
8507 }
8508 { // gt_bitwise_or
8509 if (p->error_indicator) {
8510 D(p->level--);
8511 return NULL;
8512 }
8513 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
8514 CmpopExprPair* gt_bitwise_or_var;
8515 if (
8516 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
8517 )
8518 {
8519 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
8520 _res = gt_bitwise_or_var;
8521 goto done;
8522 }
8523 p->mark = _mark;
8524 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
8526 }
8527 { // notin_bitwise_or
8528 if (p->error_indicator) {
8529 D(p->level--);
8530 return NULL;
8531 }
8532 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
8533 CmpopExprPair* notin_bitwise_or_var;
8534 if (
8535 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
8536 )
8537 {
8538 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
8539 _res = notin_bitwise_or_var;
8540 goto done;
8541 }
8542 p->mark = _mark;
8543 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
8545 }
8546 { // in_bitwise_or
8547 if (p->error_indicator) {
8548 D(p->level--);
8549 return NULL;
8550 }
8551 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
8552 CmpopExprPair* in_bitwise_or_var;
8553 if (
8554 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
8555 )
8556 {
8557 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
8558 _res = in_bitwise_or_var;
8559 goto done;
8560 }
8561 p->mark = _mark;
8562 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8563 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
8564 }
8565 { // isnot_bitwise_or
8566 if (p->error_indicator) {
8567 D(p->level--);
8568 return NULL;
8569 }
8570 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
8571 CmpopExprPair* isnot_bitwise_or_var;
8572 if (
8573 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
8574 )
8575 {
8576 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
8577 _res = isnot_bitwise_or_var;
8578 goto done;
8579 }
8580 p->mark = _mark;
8581 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
8583 }
8584 { // is_bitwise_or
8585 if (p->error_indicator) {
8586 D(p->level--);
8587 return NULL;
8588 }
8589 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
8590 CmpopExprPair* is_bitwise_or_var;
8591 if (
8592 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
8593 )
8594 {
8595 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
8596 _res = is_bitwise_or_var;
8597 goto done;
8598 }
8599 p->mark = _mark;
8600 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8601 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
8602 }
8603 _res = NULL;
8604 done:
8605 D(p->level--);
8606 return _res;
8607}
8608
8609// eq_bitwise_or: '==' bitwise_or
8610static CmpopExprPair*
8611eq_bitwise_or_rule(Parser *p)
8612{
8613 D(p->level++);
8614 if (p->error_indicator) {
8615 D(p->level--);
8616 return NULL;
8617 }
8618 CmpopExprPair* _res = NULL;
8619 int _mark = p->mark;
8620 { // '==' bitwise_or
8621 if (p->error_indicator) {
8622 D(p->level--);
8623 return NULL;
8624 }
8625 D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
8626 Token * _literal;
8627 expr_ty a;
8628 if (
8629 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
8630 &&
8631 (a = bitwise_or_rule(p)) // bitwise_or
8632 )
8633 {
8634 D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
8635 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
8636 if (_res == NULL && PyErr_Occurred()) {
8637 p->error_indicator = 1;
8638 D(p->level--);
8639 return NULL;
8640 }
8641 goto done;
8642 }
8643 p->mark = _mark;
8644 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8645 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
8646 }
8647 _res = NULL;
8648 done:
8649 D(p->level--);
8650 return _res;
8651}
8652
8653// noteq_bitwise_or: ('!=') bitwise_or
8654static CmpopExprPair*
8655noteq_bitwise_or_rule(Parser *p)
8656{
8657 D(p->level++);
8658 if (p->error_indicator) {
8659 D(p->level--);
8660 return NULL;
8661 }
8662 CmpopExprPair* _res = NULL;
8663 int _mark = p->mark;
8664 { // ('!=') bitwise_or
8665 if (p->error_indicator) {
8666 D(p->level--);
8667 return NULL;
8668 }
8669 D(fprintf(stderr, "%*c> noteq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +00008670 void *_tmp_91_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008671 expr_ty a;
8672 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00008673 (_tmp_91_var = _tmp_91_rule(p)) // '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008674 &&
8675 (a = bitwise_or_rule(p)) // bitwise_or
8676 )
8677 {
8678 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
8679 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
8680 if (_res == NULL && PyErr_Occurred()) {
8681 p->error_indicator = 1;
8682 D(p->level--);
8683 return NULL;
8684 }
8685 goto done;
8686 }
8687 p->mark = _mark;
8688 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8689 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
8690 }
8691 _res = NULL;
8692 done:
8693 D(p->level--);
8694 return _res;
8695}
8696
8697// lte_bitwise_or: '<=' bitwise_or
8698static CmpopExprPair*
8699lte_bitwise_or_rule(Parser *p)
8700{
8701 D(p->level++);
8702 if (p->error_indicator) {
8703 D(p->level--);
8704 return NULL;
8705 }
8706 CmpopExprPair* _res = NULL;
8707 int _mark = p->mark;
8708 { // '<=' bitwise_or
8709 if (p->error_indicator) {
8710 D(p->level--);
8711 return NULL;
8712 }
8713 D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
8714 Token * _literal;
8715 expr_ty a;
8716 if (
8717 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
8718 &&
8719 (a = bitwise_or_rule(p)) // bitwise_or
8720 )
8721 {
8722 D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
8723 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
8724 if (_res == NULL && PyErr_Occurred()) {
8725 p->error_indicator = 1;
8726 D(p->level--);
8727 return NULL;
8728 }
8729 goto done;
8730 }
8731 p->mark = _mark;
8732 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8733 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
8734 }
8735 _res = NULL;
8736 done:
8737 D(p->level--);
8738 return _res;
8739}
8740
8741// lt_bitwise_or: '<' bitwise_or
8742static CmpopExprPair*
8743lt_bitwise_or_rule(Parser *p)
8744{
8745 D(p->level++);
8746 if (p->error_indicator) {
8747 D(p->level--);
8748 return NULL;
8749 }
8750 CmpopExprPair* _res = NULL;
8751 int _mark = p->mark;
8752 { // '<' bitwise_or
8753 if (p->error_indicator) {
8754 D(p->level--);
8755 return NULL;
8756 }
8757 D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
8758 Token * _literal;
8759 expr_ty a;
8760 if (
8761 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
8762 &&
8763 (a = bitwise_or_rule(p)) // bitwise_or
8764 )
8765 {
8766 D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
8767 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
8768 if (_res == NULL && PyErr_Occurred()) {
8769 p->error_indicator = 1;
8770 D(p->level--);
8771 return NULL;
8772 }
8773 goto done;
8774 }
8775 p->mark = _mark;
8776 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8777 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
8778 }
8779 _res = NULL;
8780 done:
8781 D(p->level--);
8782 return _res;
8783}
8784
8785// gte_bitwise_or: '>=' bitwise_or
8786static CmpopExprPair*
8787gte_bitwise_or_rule(Parser *p)
8788{
8789 D(p->level++);
8790 if (p->error_indicator) {
8791 D(p->level--);
8792 return NULL;
8793 }
8794 CmpopExprPair* _res = NULL;
8795 int _mark = p->mark;
8796 { // '>=' bitwise_or
8797 if (p->error_indicator) {
8798 D(p->level--);
8799 return NULL;
8800 }
8801 D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
8802 Token * _literal;
8803 expr_ty a;
8804 if (
8805 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
8806 &&
8807 (a = bitwise_or_rule(p)) // bitwise_or
8808 )
8809 {
8810 D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
8811 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
8812 if (_res == NULL && PyErr_Occurred()) {
8813 p->error_indicator = 1;
8814 D(p->level--);
8815 return NULL;
8816 }
8817 goto done;
8818 }
8819 p->mark = _mark;
8820 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
8822 }
8823 _res = NULL;
8824 done:
8825 D(p->level--);
8826 return _res;
8827}
8828
8829// gt_bitwise_or: '>' bitwise_or
8830static CmpopExprPair*
8831gt_bitwise_or_rule(Parser *p)
8832{
8833 D(p->level++);
8834 if (p->error_indicator) {
8835 D(p->level--);
8836 return NULL;
8837 }
8838 CmpopExprPair* _res = NULL;
8839 int _mark = p->mark;
8840 { // '>' bitwise_or
8841 if (p->error_indicator) {
8842 D(p->level--);
8843 return NULL;
8844 }
8845 D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
8846 Token * _literal;
8847 expr_ty a;
8848 if (
8849 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
8850 &&
8851 (a = bitwise_or_rule(p)) // bitwise_or
8852 )
8853 {
8854 D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
8855 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
8856 if (_res == NULL && PyErr_Occurred()) {
8857 p->error_indicator = 1;
8858 D(p->level--);
8859 return NULL;
8860 }
8861 goto done;
8862 }
8863 p->mark = _mark;
8864 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
8866 }
8867 _res = NULL;
8868 done:
8869 D(p->level--);
8870 return _res;
8871}
8872
8873// notin_bitwise_or: 'not' 'in' bitwise_or
8874static CmpopExprPair*
8875notin_bitwise_or_rule(Parser *p)
8876{
8877 D(p->level++);
8878 if (p->error_indicator) {
8879 D(p->level--);
8880 return NULL;
8881 }
8882 CmpopExprPair* _res = NULL;
8883 int _mark = p->mark;
8884 { // 'not' 'in' bitwise_or
8885 if (p->error_indicator) {
8886 D(p->level--);
8887 return NULL;
8888 }
8889 D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
8890 Token * _keyword;
8891 Token * _keyword_1;
8892 expr_ty a;
8893 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03008894 (_keyword = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008895 &&
8896 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
8897 &&
8898 (a = bitwise_or_rule(p)) // bitwise_or
8899 )
8900 {
8901 D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
8902 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
8903 if (_res == NULL && PyErr_Occurred()) {
8904 p->error_indicator = 1;
8905 D(p->level--);
8906 return NULL;
8907 }
8908 goto done;
8909 }
8910 p->mark = _mark;
8911 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8912 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
8913 }
8914 _res = NULL;
8915 done:
8916 D(p->level--);
8917 return _res;
8918}
8919
8920// in_bitwise_or: 'in' bitwise_or
8921static CmpopExprPair*
8922in_bitwise_or_rule(Parser *p)
8923{
8924 D(p->level++);
8925 if (p->error_indicator) {
8926 D(p->level--);
8927 return NULL;
8928 }
8929 CmpopExprPair* _res = NULL;
8930 int _mark = p->mark;
8931 { // 'in' bitwise_or
8932 if (p->error_indicator) {
8933 D(p->level--);
8934 return NULL;
8935 }
8936 D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
8937 Token * _keyword;
8938 expr_ty a;
8939 if (
8940 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
8941 &&
8942 (a = bitwise_or_rule(p)) // bitwise_or
8943 )
8944 {
8945 D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
8946 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
8947 if (_res == NULL && PyErr_Occurred()) {
8948 p->error_indicator = 1;
8949 D(p->level--);
8950 return NULL;
8951 }
8952 goto done;
8953 }
8954 p->mark = _mark;
8955 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8956 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
8957 }
8958 _res = NULL;
8959 done:
8960 D(p->level--);
8961 return _res;
8962}
8963
8964// isnot_bitwise_or: 'is' 'not' bitwise_or
8965static CmpopExprPair*
8966isnot_bitwise_or_rule(Parser *p)
8967{
8968 D(p->level++);
8969 if (p->error_indicator) {
8970 D(p->level--);
8971 return NULL;
8972 }
8973 CmpopExprPair* _res = NULL;
8974 int _mark = p->mark;
8975 { // 'is' 'not' bitwise_or
8976 if (p->error_indicator) {
8977 D(p->level--);
8978 return NULL;
8979 }
8980 D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
8981 Token * _keyword;
8982 Token * _keyword_1;
8983 expr_ty a;
8984 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03008985 (_keyword = _PyPegen_expect_token(p, 527)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008986 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03008987 (_keyword_1 = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008988 &&
8989 (a = bitwise_or_rule(p)) // bitwise_or
8990 )
8991 {
8992 D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
8993 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
8994 if (_res == NULL && PyErr_Occurred()) {
8995 p->error_indicator = 1;
8996 D(p->level--);
8997 return NULL;
8998 }
8999 goto done;
9000 }
9001 p->mark = _mark;
9002 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9003 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
9004 }
9005 _res = NULL;
9006 done:
9007 D(p->level--);
9008 return _res;
9009}
9010
9011// is_bitwise_or: 'is' bitwise_or
9012static CmpopExprPair*
9013is_bitwise_or_rule(Parser *p)
9014{
9015 D(p->level++);
9016 if (p->error_indicator) {
9017 D(p->level--);
9018 return NULL;
9019 }
9020 CmpopExprPair* _res = NULL;
9021 int _mark = p->mark;
9022 { // 'is' bitwise_or
9023 if (p->error_indicator) {
9024 D(p->level--);
9025 return NULL;
9026 }
9027 D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
9028 Token * _keyword;
9029 expr_ty a;
9030 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009031 (_keyword = _PyPegen_expect_token(p, 527)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009032 &&
9033 (a = bitwise_or_rule(p)) // bitwise_or
9034 )
9035 {
9036 D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
9037 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
9038 if (_res == NULL && PyErr_Occurred()) {
9039 p->error_indicator = 1;
9040 D(p->level--);
9041 return NULL;
9042 }
9043 goto done;
9044 }
9045 p->mark = _mark;
9046 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9047 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
9048 }
9049 _res = NULL;
9050 done:
9051 D(p->level--);
9052 return _res;
9053}
9054
9055// Left-recursive
9056// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
9057static expr_ty bitwise_or_raw(Parser *);
9058static expr_ty
9059bitwise_or_rule(Parser *p)
9060{
9061 D(p->level++);
9062 expr_ty _res = NULL;
9063 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
9064 D(p->level--);
9065 return _res;
9066 }
9067 int _mark = p->mark;
9068 int _resmark = p->mark;
9069 while (1) {
9070 int tmpvar_1 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
9071 if (tmpvar_1) {
9072 D(p->level--);
9073 return _res;
9074 }
9075 p->mark = _mark;
9076 void *_raw = bitwise_or_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009077 if (p->error_indicator)
9078 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009079 if (_raw == NULL || p->mark <= _resmark)
9080 break;
9081 _resmark = p->mark;
9082 _res = _raw;
9083 }
9084 p->mark = _resmark;
9085 D(p->level--);
9086 return _res;
9087}
9088static expr_ty
9089bitwise_or_raw(Parser *p)
9090{
9091 D(p->level++);
9092 if (p->error_indicator) {
9093 D(p->level--);
9094 return NULL;
9095 }
9096 expr_ty _res = NULL;
9097 int _mark = p->mark;
9098 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9099 p->error_indicator = 1;
9100 D(p->level--);
9101 return NULL;
9102 }
9103 int _start_lineno = p->tokens[_mark]->lineno;
9104 UNUSED(_start_lineno); // Only used by EXTRA macro
9105 int _start_col_offset = p->tokens[_mark]->col_offset;
9106 UNUSED(_start_col_offset); // Only used by EXTRA macro
9107 { // bitwise_or '|' bitwise_xor
9108 if (p->error_indicator) {
9109 D(p->level--);
9110 return NULL;
9111 }
9112 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
9113 Token * _literal;
9114 expr_ty a;
9115 expr_ty b;
9116 if (
9117 (a = bitwise_or_rule(p)) // bitwise_or
9118 &&
9119 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
9120 &&
9121 (b = bitwise_xor_rule(p)) // bitwise_xor
9122 )
9123 {
9124 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
9125 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9126 if (_token == NULL) {
9127 D(p->level--);
9128 return NULL;
9129 }
9130 int _end_lineno = _token->end_lineno;
9131 UNUSED(_end_lineno); // Only used by EXTRA macro
9132 int _end_col_offset = _token->end_col_offset;
9133 UNUSED(_end_col_offset); // Only used by EXTRA macro
9134 _res = _Py_BinOp ( a , BitOr , b , EXTRA );
9135 if (_res == NULL && PyErr_Occurred()) {
9136 p->error_indicator = 1;
9137 D(p->level--);
9138 return NULL;
9139 }
9140 goto done;
9141 }
9142 p->mark = _mark;
9143 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9144 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
9145 }
9146 { // bitwise_xor
9147 if (p->error_indicator) {
9148 D(p->level--);
9149 return NULL;
9150 }
9151 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
9152 expr_ty bitwise_xor_var;
9153 if (
9154 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
9155 )
9156 {
9157 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
9158 _res = bitwise_xor_var;
9159 goto done;
9160 }
9161 p->mark = _mark;
9162 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9163 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
9164 }
9165 _res = NULL;
9166 done:
9167 D(p->level--);
9168 return _res;
9169}
9170
9171// Left-recursive
9172// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
9173static expr_ty bitwise_xor_raw(Parser *);
9174static expr_ty
9175bitwise_xor_rule(Parser *p)
9176{
9177 D(p->level++);
9178 expr_ty _res = NULL;
9179 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
9180 D(p->level--);
9181 return _res;
9182 }
9183 int _mark = p->mark;
9184 int _resmark = p->mark;
9185 while (1) {
9186 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
9187 if (tmpvar_2) {
9188 D(p->level--);
9189 return _res;
9190 }
9191 p->mark = _mark;
9192 void *_raw = bitwise_xor_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009193 if (p->error_indicator)
9194 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009195 if (_raw == NULL || p->mark <= _resmark)
9196 break;
9197 _resmark = p->mark;
9198 _res = _raw;
9199 }
9200 p->mark = _resmark;
9201 D(p->level--);
9202 return _res;
9203}
9204static expr_ty
9205bitwise_xor_raw(Parser *p)
9206{
9207 D(p->level++);
9208 if (p->error_indicator) {
9209 D(p->level--);
9210 return NULL;
9211 }
9212 expr_ty _res = NULL;
9213 int _mark = p->mark;
9214 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9215 p->error_indicator = 1;
9216 D(p->level--);
9217 return NULL;
9218 }
9219 int _start_lineno = p->tokens[_mark]->lineno;
9220 UNUSED(_start_lineno); // Only used by EXTRA macro
9221 int _start_col_offset = p->tokens[_mark]->col_offset;
9222 UNUSED(_start_col_offset); // Only used by EXTRA macro
9223 { // bitwise_xor '^' bitwise_and
9224 if (p->error_indicator) {
9225 D(p->level--);
9226 return NULL;
9227 }
9228 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
9229 Token * _literal;
9230 expr_ty a;
9231 expr_ty b;
9232 if (
9233 (a = bitwise_xor_rule(p)) // bitwise_xor
9234 &&
9235 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
9236 &&
9237 (b = bitwise_and_rule(p)) // bitwise_and
9238 )
9239 {
9240 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
9241 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9242 if (_token == NULL) {
9243 D(p->level--);
9244 return NULL;
9245 }
9246 int _end_lineno = _token->end_lineno;
9247 UNUSED(_end_lineno); // Only used by EXTRA macro
9248 int _end_col_offset = _token->end_col_offset;
9249 UNUSED(_end_col_offset); // Only used by EXTRA macro
9250 _res = _Py_BinOp ( a , BitXor , b , EXTRA );
9251 if (_res == NULL && PyErr_Occurred()) {
9252 p->error_indicator = 1;
9253 D(p->level--);
9254 return NULL;
9255 }
9256 goto done;
9257 }
9258 p->mark = _mark;
9259 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
9260 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
9261 }
9262 { // bitwise_and
9263 if (p->error_indicator) {
9264 D(p->level--);
9265 return NULL;
9266 }
9267 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
9268 expr_ty bitwise_and_var;
9269 if (
9270 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
9271 )
9272 {
9273 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
9274 _res = bitwise_and_var;
9275 goto done;
9276 }
9277 p->mark = _mark;
9278 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
9279 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
9280 }
9281 _res = NULL;
9282 done:
9283 D(p->level--);
9284 return _res;
9285}
9286
9287// Left-recursive
9288// bitwise_and: bitwise_and '&' shift_expr | shift_expr
9289static expr_ty bitwise_and_raw(Parser *);
9290static expr_ty
9291bitwise_and_rule(Parser *p)
9292{
9293 D(p->level++);
9294 expr_ty _res = NULL;
9295 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
9296 D(p->level--);
9297 return _res;
9298 }
9299 int _mark = p->mark;
9300 int _resmark = p->mark;
9301 while (1) {
9302 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
9303 if (tmpvar_3) {
9304 D(p->level--);
9305 return _res;
9306 }
9307 p->mark = _mark;
9308 void *_raw = bitwise_and_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009309 if (p->error_indicator)
9310 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009311 if (_raw == NULL || p->mark <= _resmark)
9312 break;
9313 _resmark = p->mark;
9314 _res = _raw;
9315 }
9316 p->mark = _resmark;
9317 D(p->level--);
9318 return _res;
9319}
9320static expr_ty
9321bitwise_and_raw(Parser *p)
9322{
9323 D(p->level++);
9324 if (p->error_indicator) {
9325 D(p->level--);
9326 return NULL;
9327 }
9328 expr_ty _res = NULL;
9329 int _mark = p->mark;
9330 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9331 p->error_indicator = 1;
9332 D(p->level--);
9333 return NULL;
9334 }
9335 int _start_lineno = p->tokens[_mark]->lineno;
9336 UNUSED(_start_lineno); // Only used by EXTRA macro
9337 int _start_col_offset = p->tokens[_mark]->col_offset;
9338 UNUSED(_start_col_offset); // Only used by EXTRA macro
9339 { // bitwise_and '&' shift_expr
9340 if (p->error_indicator) {
9341 D(p->level--);
9342 return NULL;
9343 }
9344 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
9345 Token * _literal;
9346 expr_ty a;
9347 expr_ty b;
9348 if (
9349 (a = bitwise_and_rule(p)) // bitwise_and
9350 &&
9351 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
9352 &&
9353 (b = shift_expr_rule(p)) // shift_expr
9354 )
9355 {
9356 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
9357 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9358 if (_token == NULL) {
9359 D(p->level--);
9360 return NULL;
9361 }
9362 int _end_lineno = _token->end_lineno;
9363 UNUSED(_end_lineno); // Only used by EXTRA macro
9364 int _end_col_offset = _token->end_col_offset;
9365 UNUSED(_end_col_offset); // Only used by EXTRA macro
9366 _res = _Py_BinOp ( a , BitAnd , b , EXTRA );
9367 if (_res == NULL && PyErr_Occurred()) {
9368 p->error_indicator = 1;
9369 D(p->level--);
9370 return NULL;
9371 }
9372 goto done;
9373 }
9374 p->mark = _mark;
9375 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
9376 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
9377 }
9378 { // shift_expr
9379 if (p->error_indicator) {
9380 D(p->level--);
9381 return NULL;
9382 }
9383 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
9384 expr_ty shift_expr_var;
9385 if (
9386 (shift_expr_var = shift_expr_rule(p)) // shift_expr
9387 )
9388 {
9389 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
9390 _res = shift_expr_var;
9391 goto done;
9392 }
9393 p->mark = _mark;
9394 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
9395 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
9396 }
9397 _res = NULL;
9398 done:
9399 D(p->level--);
9400 return _res;
9401}
9402
9403// Left-recursive
9404// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
9405static expr_ty shift_expr_raw(Parser *);
9406static expr_ty
9407shift_expr_rule(Parser *p)
9408{
9409 D(p->level++);
9410 expr_ty _res = NULL;
9411 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
9412 D(p->level--);
9413 return _res;
9414 }
9415 int _mark = p->mark;
9416 int _resmark = p->mark;
9417 while (1) {
9418 int tmpvar_4 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
9419 if (tmpvar_4) {
9420 D(p->level--);
9421 return _res;
9422 }
9423 p->mark = _mark;
9424 void *_raw = shift_expr_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009425 if (p->error_indicator)
9426 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009427 if (_raw == NULL || p->mark <= _resmark)
9428 break;
9429 _resmark = p->mark;
9430 _res = _raw;
9431 }
9432 p->mark = _resmark;
9433 D(p->level--);
9434 return _res;
9435}
9436static expr_ty
9437shift_expr_raw(Parser *p)
9438{
9439 D(p->level++);
9440 if (p->error_indicator) {
9441 D(p->level--);
9442 return NULL;
9443 }
9444 expr_ty _res = NULL;
9445 int _mark = p->mark;
9446 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9447 p->error_indicator = 1;
9448 D(p->level--);
9449 return NULL;
9450 }
9451 int _start_lineno = p->tokens[_mark]->lineno;
9452 UNUSED(_start_lineno); // Only used by EXTRA macro
9453 int _start_col_offset = p->tokens[_mark]->col_offset;
9454 UNUSED(_start_col_offset); // Only used by EXTRA macro
9455 { // shift_expr '<<' sum
9456 if (p->error_indicator) {
9457 D(p->level--);
9458 return NULL;
9459 }
9460 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
9461 Token * _literal;
9462 expr_ty a;
9463 expr_ty b;
9464 if (
9465 (a = shift_expr_rule(p)) // shift_expr
9466 &&
9467 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
9468 &&
9469 (b = sum_rule(p)) // sum
9470 )
9471 {
9472 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
9473 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9474 if (_token == NULL) {
9475 D(p->level--);
9476 return NULL;
9477 }
9478 int _end_lineno = _token->end_lineno;
9479 UNUSED(_end_lineno); // Only used by EXTRA macro
9480 int _end_col_offset = _token->end_col_offset;
9481 UNUSED(_end_col_offset); // Only used by EXTRA macro
9482 _res = _Py_BinOp ( a , LShift , b , EXTRA );
9483 if (_res == NULL && PyErr_Occurred()) {
9484 p->error_indicator = 1;
9485 D(p->level--);
9486 return NULL;
9487 }
9488 goto done;
9489 }
9490 p->mark = _mark;
9491 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9492 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
9493 }
9494 { // shift_expr '>>' sum
9495 if (p->error_indicator) {
9496 D(p->level--);
9497 return NULL;
9498 }
9499 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
9500 Token * _literal;
9501 expr_ty a;
9502 expr_ty b;
9503 if (
9504 (a = shift_expr_rule(p)) // shift_expr
9505 &&
9506 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
9507 &&
9508 (b = sum_rule(p)) // sum
9509 )
9510 {
9511 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
9512 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9513 if (_token == NULL) {
9514 D(p->level--);
9515 return NULL;
9516 }
9517 int _end_lineno = _token->end_lineno;
9518 UNUSED(_end_lineno); // Only used by EXTRA macro
9519 int _end_col_offset = _token->end_col_offset;
9520 UNUSED(_end_col_offset); // Only used by EXTRA macro
9521 _res = _Py_BinOp ( a , RShift , b , EXTRA );
9522 if (_res == NULL && PyErr_Occurred()) {
9523 p->error_indicator = 1;
9524 D(p->level--);
9525 return NULL;
9526 }
9527 goto done;
9528 }
9529 p->mark = _mark;
9530 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9531 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
9532 }
9533 { // sum
9534 if (p->error_indicator) {
9535 D(p->level--);
9536 return NULL;
9537 }
9538 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
9539 expr_ty sum_var;
9540 if (
9541 (sum_var = sum_rule(p)) // sum
9542 )
9543 {
9544 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
9545 _res = sum_var;
9546 goto done;
9547 }
9548 p->mark = _mark;
9549 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9550 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
9551 }
9552 _res = NULL;
9553 done:
9554 D(p->level--);
9555 return _res;
9556}
9557
9558// Left-recursive
9559// sum: sum '+' term | sum '-' term | term
9560static expr_ty sum_raw(Parser *);
9561static expr_ty
9562sum_rule(Parser *p)
9563{
9564 D(p->level++);
9565 expr_ty _res = NULL;
9566 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
9567 D(p->level--);
9568 return _res;
9569 }
9570 int _mark = p->mark;
9571 int _resmark = p->mark;
9572 while (1) {
9573 int tmpvar_5 = _PyPegen_update_memo(p, _mark, sum_type, _res);
9574 if (tmpvar_5) {
9575 D(p->level--);
9576 return _res;
9577 }
9578 p->mark = _mark;
9579 void *_raw = sum_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009580 if (p->error_indicator)
9581 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009582 if (_raw == NULL || p->mark <= _resmark)
9583 break;
9584 _resmark = p->mark;
9585 _res = _raw;
9586 }
9587 p->mark = _resmark;
9588 D(p->level--);
9589 return _res;
9590}
9591static expr_ty
9592sum_raw(Parser *p)
9593{
9594 D(p->level++);
9595 if (p->error_indicator) {
9596 D(p->level--);
9597 return NULL;
9598 }
9599 expr_ty _res = NULL;
9600 int _mark = p->mark;
9601 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9602 p->error_indicator = 1;
9603 D(p->level--);
9604 return NULL;
9605 }
9606 int _start_lineno = p->tokens[_mark]->lineno;
9607 UNUSED(_start_lineno); // Only used by EXTRA macro
9608 int _start_col_offset = p->tokens[_mark]->col_offset;
9609 UNUSED(_start_col_offset); // Only used by EXTRA macro
9610 { // sum '+' term
9611 if (p->error_indicator) {
9612 D(p->level--);
9613 return NULL;
9614 }
9615 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
9616 Token * _literal;
9617 expr_ty a;
9618 expr_ty b;
9619 if (
9620 (a = sum_rule(p)) // sum
9621 &&
9622 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
9623 &&
9624 (b = term_rule(p)) // term
9625 )
9626 {
9627 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
9628 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9629 if (_token == NULL) {
9630 D(p->level--);
9631 return NULL;
9632 }
9633 int _end_lineno = _token->end_lineno;
9634 UNUSED(_end_lineno); // Only used by EXTRA macro
9635 int _end_col_offset = _token->end_col_offset;
9636 UNUSED(_end_col_offset); // Only used by EXTRA macro
9637 _res = _Py_BinOp ( a , Add , b , EXTRA );
9638 if (_res == NULL && PyErr_Occurred()) {
9639 p->error_indicator = 1;
9640 D(p->level--);
9641 return NULL;
9642 }
9643 goto done;
9644 }
9645 p->mark = _mark;
9646 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9647 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
9648 }
9649 { // sum '-' term
9650 if (p->error_indicator) {
9651 D(p->level--);
9652 return NULL;
9653 }
9654 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
9655 Token * _literal;
9656 expr_ty a;
9657 expr_ty b;
9658 if (
9659 (a = sum_rule(p)) // sum
9660 &&
9661 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
9662 &&
9663 (b = term_rule(p)) // term
9664 )
9665 {
9666 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
9667 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9668 if (_token == NULL) {
9669 D(p->level--);
9670 return NULL;
9671 }
9672 int _end_lineno = _token->end_lineno;
9673 UNUSED(_end_lineno); // Only used by EXTRA macro
9674 int _end_col_offset = _token->end_col_offset;
9675 UNUSED(_end_col_offset); // Only used by EXTRA macro
9676 _res = _Py_BinOp ( a , Sub , b , EXTRA );
9677 if (_res == NULL && PyErr_Occurred()) {
9678 p->error_indicator = 1;
9679 D(p->level--);
9680 return NULL;
9681 }
9682 goto done;
9683 }
9684 p->mark = _mark;
9685 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9686 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
9687 }
9688 { // term
9689 if (p->error_indicator) {
9690 D(p->level--);
9691 return NULL;
9692 }
9693 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
9694 expr_ty term_var;
9695 if (
9696 (term_var = term_rule(p)) // term
9697 )
9698 {
9699 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
9700 _res = term_var;
9701 goto done;
9702 }
9703 p->mark = _mark;
9704 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9705 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
9706 }
9707 _res = NULL;
9708 done:
9709 D(p->level--);
9710 return _res;
9711}
9712
9713// Left-recursive
9714// term:
9715// | term '*' factor
9716// | term '/' factor
9717// | term '//' factor
9718// | term '%' factor
9719// | term '@' factor
9720// | factor
9721static expr_ty term_raw(Parser *);
9722static expr_ty
9723term_rule(Parser *p)
9724{
9725 D(p->level++);
9726 expr_ty _res = NULL;
9727 if (_PyPegen_is_memoized(p, term_type, &_res)) {
9728 D(p->level--);
9729 return _res;
9730 }
9731 int _mark = p->mark;
9732 int _resmark = p->mark;
9733 while (1) {
9734 int tmpvar_6 = _PyPegen_update_memo(p, _mark, term_type, _res);
9735 if (tmpvar_6) {
9736 D(p->level--);
9737 return _res;
9738 }
9739 p->mark = _mark;
9740 void *_raw = term_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009741 if (p->error_indicator)
9742 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009743 if (_raw == NULL || p->mark <= _resmark)
9744 break;
9745 _resmark = p->mark;
9746 _res = _raw;
9747 }
9748 p->mark = _resmark;
9749 D(p->level--);
9750 return _res;
9751}
9752static expr_ty
9753term_raw(Parser *p)
9754{
9755 D(p->level++);
9756 if (p->error_indicator) {
9757 D(p->level--);
9758 return NULL;
9759 }
9760 expr_ty _res = NULL;
9761 int _mark = p->mark;
9762 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9763 p->error_indicator = 1;
9764 D(p->level--);
9765 return NULL;
9766 }
9767 int _start_lineno = p->tokens[_mark]->lineno;
9768 UNUSED(_start_lineno); // Only used by EXTRA macro
9769 int _start_col_offset = p->tokens[_mark]->col_offset;
9770 UNUSED(_start_col_offset); // Only used by EXTRA macro
9771 { // term '*' factor
9772 if (p->error_indicator) {
9773 D(p->level--);
9774 return NULL;
9775 }
9776 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
9777 Token * _literal;
9778 expr_ty a;
9779 expr_ty b;
9780 if (
9781 (a = term_rule(p)) // term
9782 &&
9783 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9784 &&
9785 (b = factor_rule(p)) // factor
9786 )
9787 {
9788 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
9789 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9790 if (_token == NULL) {
9791 D(p->level--);
9792 return NULL;
9793 }
9794 int _end_lineno = _token->end_lineno;
9795 UNUSED(_end_lineno); // Only used by EXTRA macro
9796 int _end_col_offset = _token->end_col_offset;
9797 UNUSED(_end_col_offset); // Only used by EXTRA macro
9798 _res = _Py_BinOp ( a , Mult , b , EXTRA );
9799 if (_res == NULL && PyErr_Occurred()) {
9800 p->error_indicator = 1;
9801 D(p->level--);
9802 return NULL;
9803 }
9804 goto done;
9805 }
9806 p->mark = _mark;
9807 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
9809 }
9810 { // term '/' factor
9811 if (p->error_indicator) {
9812 D(p->level--);
9813 return NULL;
9814 }
9815 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
9816 Token * _literal;
9817 expr_ty a;
9818 expr_ty b;
9819 if (
9820 (a = term_rule(p)) // term
9821 &&
9822 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
9823 &&
9824 (b = factor_rule(p)) // factor
9825 )
9826 {
9827 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
9828 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9829 if (_token == NULL) {
9830 D(p->level--);
9831 return NULL;
9832 }
9833 int _end_lineno = _token->end_lineno;
9834 UNUSED(_end_lineno); // Only used by EXTRA macro
9835 int _end_col_offset = _token->end_col_offset;
9836 UNUSED(_end_col_offset); // Only used by EXTRA macro
9837 _res = _Py_BinOp ( a , Div , b , EXTRA );
9838 if (_res == NULL && PyErr_Occurred()) {
9839 p->error_indicator = 1;
9840 D(p->level--);
9841 return NULL;
9842 }
9843 goto done;
9844 }
9845 p->mark = _mark;
9846 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9847 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
9848 }
9849 { // term '//' factor
9850 if (p->error_indicator) {
9851 D(p->level--);
9852 return NULL;
9853 }
9854 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
9855 Token * _literal;
9856 expr_ty a;
9857 expr_ty b;
9858 if (
9859 (a = term_rule(p)) // term
9860 &&
9861 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
9862 &&
9863 (b = factor_rule(p)) // factor
9864 )
9865 {
9866 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
9867 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9868 if (_token == NULL) {
9869 D(p->level--);
9870 return NULL;
9871 }
9872 int _end_lineno = _token->end_lineno;
9873 UNUSED(_end_lineno); // Only used by EXTRA macro
9874 int _end_col_offset = _token->end_col_offset;
9875 UNUSED(_end_col_offset); // Only used by EXTRA macro
9876 _res = _Py_BinOp ( a , FloorDiv , b , EXTRA );
9877 if (_res == NULL && PyErr_Occurred()) {
9878 p->error_indicator = 1;
9879 D(p->level--);
9880 return NULL;
9881 }
9882 goto done;
9883 }
9884 p->mark = _mark;
9885 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9886 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
9887 }
9888 { // term '%' factor
9889 if (p->error_indicator) {
9890 D(p->level--);
9891 return NULL;
9892 }
9893 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
9894 Token * _literal;
9895 expr_ty a;
9896 expr_ty b;
9897 if (
9898 (a = term_rule(p)) // term
9899 &&
9900 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
9901 &&
9902 (b = factor_rule(p)) // factor
9903 )
9904 {
9905 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
9906 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9907 if (_token == NULL) {
9908 D(p->level--);
9909 return NULL;
9910 }
9911 int _end_lineno = _token->end_lineno;
9912 UNUSED(_end_lineno); // Only used by EXTRA macro
9913 int _end_col_offset = _token->end_col_offset;
9914 UNUSED(_end_col_offset); // Only used by EXTRA macro
9915 _res = _Py_BinOp ( a , Mod , b , EXTRA );
9916 if (_res == NULL && PyErr_Occurred()) {
9917 p->error_indicator = 1;
9918 D(p->level--);
9919 return NULL;
9920 }
9921 goto done;
9922 }
9923 p->mark = _mark;
9924 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9925 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
9926 }
9927 { // term '@' factor
9928 if (p->error_indicator) {
9929 D(p->level--);
9930 return NULL;
9931 }
9932 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
9933 Token * _literal;
9934 expr_ty a;
9935 expr_ty b;
9936 if (
9937 (a = term_rule(p)) // term
9938 &&
9939 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
9940 &&
9941 (b = factor_rule(p)) // factor
9942 )
9943 {
9944 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
9945 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9946 if (_token == NULL) {
9947 D(p->level--);
9948 return NULL;
9949 }
9950 int _end_lineno = _token->end_lineno;
9951 UNUSED(_end_lineno); // Only used by EXTRA macro
9952 int _end_col_offset = _token->end_col_offset;
9953 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03009954 _res = CHECK_VERSION ( expr_ty , 5 , "The '@' operator is" , _Py_BinOp ( a , MatMult , b , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009955 if (_res == NULL && PyErr_Occurred()) {
9956 p->error_indicator = 1;
9957 D(p->level--);
9958 return NULL;
9959 }
9960 goto done;
9961 }
9962 p->mark = _mark;
9963 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9964 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
9965 }
9966 { // factor
9967 if (p->error_indicator) {
9968 D(p->level--);
9969 return NULL;
9970 }
9971 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
9972 expr_ty factor_var;
9973 if (
9974 (factor_var = factor_rule(p)) // factor
9975 )
9976 {
9977 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
9978 _res = factor_var;
9979 goto done;
9980 }
9981 p->mark = _mark;
9982 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9983 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
9984 }
9985 _res = NULL;
9986 done:
9987 D(p->level--);
9988 return _res;
9989}
9990
9991// factor: '+' factor | '-' factor | '~' factor | power
9992static expr_ty
9993factor_rule(Parser *p)
9994{
9995 D(p->level++);
9996 if (p->error_indicator) {
9997 D(p->level--);
9998 return NULL;
9999 }
10000 expr_ty _res = NULL;
10001 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
10002 D(p->level--);
10003 return _res;
10004 }
10005 int _mark = p->mark;
10006 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10007 p->error_indicator = 1;
10008 D(p->level--);
10009 return NULL;
10010 }
10011 int _start_lineno = p->tokens[_mark]->lineno;
10012 UNUSED(_start_lineno); // Only used by EXTRA macro
10013 int _start_col_offset = p->tokens[_mark]->col_offset;
10014 UNUSED(_start_col_offset); // Only used by EXTRA macro
10015 { // '+' factor
10016 if (p->error_indicator) {
10017 D(p->level--);
10018 return NULL;
10019 }
10020 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
10021 Token * _literal;
10022 expr_ty a;
10023 if (
10024 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
10025 &&
10026 (a = factor_rule(p)) // factor
10027 )
10028 {
10029 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
10030 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10031 if (_token == NULL) {
10032 D(p->level--);
10033 return NULL;
10034 }
10035 int _end_lineno = _token->end_lineno;
10036 UNUSED(_end_lineno); // Only used by EXTRA macro
10037 int _end_col_offset = _token->end_col_offset;
10038 UNUSED(_end_col_offset); // Only used by EXTRA macro
10039 _res = _Py_UnaryOp ( UAdd , a , EXTRA );
10040 if (_res == NULL && PyErr_Occurred()) {
10041 p->error_indicator = 1;
10042 D(p->level--);
10043 return NULL;
10044 }
10045 goto done;
10046 }
10047 p->mark = _mark;
10048 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10049 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
10050 }
10051 { // '-' factor
10052 if (p->error_indicator) {
10053 D(p->level--);
10054 return NULL;
10055 }
10056 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
10057 Token * _literal;
10058 expr_ty a;
10059 if (
10060 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
10061 &&
10062 (a = factor_rule(p)) // factor
10063 )
10064 {
10065 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
10066 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10067 if (_token == NULL) {
10068 D(p->level--);
10069 return NULL;
10070 }
10071 int _end_lineno = _token->end_lineno;
10072 UNUSED(_end_lineno); // Only used by EXTRA macro
10073 int _end_col_offset = _token->end_col_offset;
10074 UNUSED(_end_col_offset); // Only used by EXTRA macro
10075 _res = _Py_UnaryOp ( USub , a , EXTRA );
10076 if (_res == NULL && PyErr_Occurred()) {
10077 p->error_indicator = 1;
10078 D(p->level--);
10079 return NULL;
10080 }
10081 goto done;
10082 }
10083 p->mark = _mark;
10084 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10085 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
10086 }
10087 { // '~' factor
10088 if (p->error_indicator) {
10089 D(p->level--);
10090 return NULL;
10091 }
10092 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
10093 Token * _literal;
10094 expr_ty a;
10095 if (
10096 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
10097 &&
10098 (a = factor_rule(p)) // factor
10099 )
10100 {
10101 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
10102 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10103 if (_token == NULL) {
10104 D(p->level--);
10105 return NULL;
10106 }
10107 int _end_lineno = _token->end_lineno;
10108 UNUSED(_end_lineno); // Only used by EXTRA macro
10109 int _end_col_offset = _token->end_col_offset;
10110 UNUSED(_end_col_offset); // Only used by EXTRA macro
10111 _res = _Py_UnaryOp ( Invert , a , EXTRA );
10112 if (_res == NULL && PyErr_Occurred()) {
10113 p->error_indicator = 1;
10114 D(p->level--);
10115 return NULL;
10116 }
10117 goto done;
10118 }
10119 p->mark = _mark;
10120 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10121 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
10122 }
10123 { // power
10124 if (p->error_indicator) {
10125 D(p->level--);
10126 return NULL;
10127 }
10128 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
10129 expr_ty power_var;
10130 if (
10131 (power_var = power_rule(p)) // power
10132 )
10133 {
10134 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
10135 _res = power_var;
10136 goto done;
10137 }
10138 p->mark = _mark;
10139 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10140 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
10141 }
10142 _res = NULL;
10143 done:
10144 _PyPegen_insert_memo(p, _mark, factor_type, _res);
10145 D(p->level--);
10146 return _res;
10147}
10148
10149// power: await_primary '**' factor | await_primary
10150static expr_ty
10151power_rule(Parser *p)
10152{
10153 D(p->level++);
10154 if (p->error_indicator) {
10155 D(p->level--);
10156 return NULL;
10157 }
10158 expr_ty _res = NULL;
10159 int _mark = p->mark;
10160 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10161 p->error_indicator = 1;
10162 D(p->level--);
10163 return NULL;
10164 }
10165 int _start_lineno = p->tokens[_mark]->lineno;
10166 UNUSED(_start_lineno); // Only used by EXTRA macro
10167 int _start_col_offset = p->tokens[_mark]->col_offset;
10168 UNUSED(_start_col_offset); // Only used by EXTRA macro
10169 { // await_primary '**' factor
10170 if (p->error_indicator) {
10171 D(p->level--);
10172 return NULL;
10173 }
10174 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
10175 Token * _literal;
10176 expr_ty a;
10177 expr_ty b;
10178 if (
10179 (a = await_primary_rule(p)) // await_primary
10180 &&
10181 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
10182 &&
10183 (b = factor_rule(p)) // factor
10184 )
10185 {
10186 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
10187 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10188 if (_token == NULL) {
10189 D(p->level--);
10190 return NULL;
10191 }
10192 int _end_lineno = _token->end_lineno;
10193 UNUSED(_end_lineno); // Only used by EXTRA macro
10194 int _end_col_offset = _token->end_col_offset;
10195 UNUSED(_end_col_offset); // Only used by EXTRA macro
10196 _res = _Py_BinOp ( a , Pow , b , EXTRA );
10197 if (_res == NULL && PyErr_Occurred()) {
10198 p->error_indicator = 1;
10199 D(p->level--);
10200 return NULL;
10201 }
10202 goto done;
10203 }
10204 p->mark = _mark;
10205 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
10206 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
10207 }
10208 { // await_primary
10209 if (p->error_indicator) {
10210 D(p->level--);
10211 return NULL;
10212 }
10213 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
10214 expr_ty await_primary_var;
10215 if (
10216 (await_primary_var = await_primary_rule(p)) // await_primary
10217 )
10218 {
10219 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
10220 _res = await_primary_var;
10221 goto done;
10222 }
10223 p->mark = _mark;
10224 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
10225 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
10226 }
10227 _res = NULL;
10228 done:
10229 D(p->level--);
10230 return _res;
10231}
10232
10233// await_primary: AWAIT primary | primary
10234static expr_ty
10235await_primary_rule(Parser *p)
10236{
10237 D(p->level++);
10238 if (p->error_indicator) {
10239 D(p->level--);
10240 return NULL;
10241 }
10242 expr_ty _res = NULL;
10243 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
10244 D(p->level--);
10245 return _res;
10246 }
10247 int _mark = p->mark;
10248 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10249 p->error_indicator = 1;
10250 D(p->level--);
10251 return NULL;
10252 }
10253 int _start_lineno = p->tokens[_mark]->lineno;
10254 UNUSED(_start_lineno); // Only used by EXTRA macro
10255 int _start_col_offset = p->tokens[_mark]->col_offset;
10256 UNUSED(_start_col_offset); // Only used by EXTRA macro
10257 { // AWAIT primary
10258 if (p->error_indicator) {
10259 D(p->level--);
10260 return NULL;
10261 }
10262 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
10263 expr_ty a;
10264 Token * await_var;
10265 if (
10266 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
10267 &&
10268 (a = primary_rule(p)) // primary
10269 )
10270 {
10271 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
10272 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10273 if (_token == NULL) {
10274 D(p->level--);
10275 return NULL;
10276 }
10277 int _end_lineno = _token->end_lineno;
10278 UNUSED(_end_lineno); // Only used by EXTRA macro
10279 int _end_col_offset = _token->end_col_offset;
10280 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030010281 _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _Py_Await ( a , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010282 if (_res == NULL && PyErr_Occurred()) {
10283 p->error_indicator = 1;
10284 D(p->level--);
10285 return NULL;
10286 }
10287 goto done;
10288 }
10289 p->mark = _mark;
10290 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
10291 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
10292 }
10293 { // primary
10294 if (p->error_indicator) {
10295 D(p->level--);
10296 return NULL;
10297 }
10298 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
10299 expr_ty primary_var;
10300 if (
10301 (primary_var = primary_rule(p)) // primary
10302 )
10303 {
10304 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
10305 _res = primary_var;
10306 goto done;
10307 }
10308 p->mark = _mark;
10309 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
10310 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
10311 }
10312 _res = NULL;
10313 done:
10314 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
10315 D(p->level--);
10316 return _res;
10317}
10318
10319// Left-recursive
10320// primary:
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020010321// | invalid_primary
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010322// | primary '.' NAME
10323// | primary genexp
10324// | primary '(' arguments? ')'
10325// | primary '[' slices ']'
10326// | atom
10327static expr_ty primary_raw(Parser *);
10328static expr_ty
10329primary_rule(Parser *p)
10330{
10331 D(p->level++);
10332 expr_ty _res = NULL;
10333 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
10334 D(p->level--);
10335 return _res;
10336 }
10337 int _mark = p->mark;
10338 int _resmark = p->mark;
10339 while (1) {
10340 int tmpvar_7 = _PyPegen_update_memo(p, _mark, primary_type, _res);
10341 if (tmpvar_7) {
10342 D(p->level--);
10343 return _res;
10344 }
10345 p->mark = _mark;
10346 void *_raw = primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020010347 if (p->error_indicator)
10348 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010349 if (_raw == NULL || p->mark <= _resmark)
10350 break;
10351 _resmark = p->mark;
10352 _res = _raw;
10353 }
10354 p->mark = _resmark;
10355 D(p->level--);
10356 return _res;
10357}
10358static expr_ty
10359primary_raw(Parser *p)
10360{
10361 D(p->level++);
10362 if (p->error_indicator) {
10363 D(p->level--);
10364 return NULL;
10365 }
10366 expr_ty _res = NULL;
10367 int _mark = p->mark;
10368 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10369 p->error_indicator = 1;
10370 D(p->level--);
10371 return NULL;
10372 }
10373 int _start_lineno = p->tokens[_mark]->lineno;
10374 UNUSED(_start_lineno); // Only used by EXTRA macro
10375 int _start_col_offset = p->tokens[_mark]->col_offset;
10376 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020010377 if (p->call_invalid_rules) { // invalid_primary
10378 if (p->error_indicator) {
10379 D(p->level--);
10380 return NULL;
10381 }
10382 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
10383 void *invalid_primary_var;
10384 if (
10385 (invalid_primary_var = invalid_primary_rule(p)) // invalid_primary
10386 )
10387 {
10388 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
10389 _res = invalid_primary_var;
10390 goto done;
10391 }
10392 p->mark = _mark;
10393 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10394 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
10395 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010396 { // primary '.' NAME
10397 if (p->error_indicator) {
10398 D(p->level--);
10399 return NULL;
10400 }
10401 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
10402 Token * _literal;
10403 expr_ty a;
10404 expr_ty b;
10405 if (
10406 (a = primary_rule(p)) // primary
10407 &&
10408 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
10409 &&
10410 (b = _PyPegen_name_token(p)) // NAME
10411 )
10412 {
10413 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
10414 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10415 if (_token == NULL) {
10416 D(p->level--);
10417 return NULL;
10418 }
10419 int _end_lineno = _token->end_lineno;
10420 UNUSED(_end_lineno); // Only used by EXTRA macro
10421 int _end_col_offset = _token->end_col_offset;
10422 UNUSED(_end_col_offset); // Only used by EXTRA macro
10423 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
10424 if (_res == NULL && PyErr_Occurred()) {
10425 p->error_indicator = 1;
10426 D(p->level--);
10427 return NULL;
10428 }
10429 goto done;
10430 }
10431 p->mark = _mark;
10432 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10433 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
10434 }
10435 { // primary genexp
10436 if (p->error_indicator) {
10437 D(p->level--);
10438 return NULL;
10439 }
10440 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
10441 expr_ty a;
10442 expr_ty b;
10443 if (
10444 (a = primary_rule(p)) // primary
10445 &&
10446 (b = genexp_rule(p)) // genexp
10447 )
10448 {
10449 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
10450 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10451 if (_token == NULL) {
10452 D(p->level--);
10453 return NULL;
10454 }
10455 int _end_lineno = _token->end_lineno;
10456 UNUSED(_end_lineno); // Only used by EXTRA macro
10457 int _end_col_offset = _token->end_col_offset;
10458 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030010459 _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 +010010460 if (_res == NULL && PyErr_Occurred()) {
10461 p->error_indicator = 1;
10462 D(p->level--);
10463 return NULL;
10464 }
10465 goto done;
10466 }
10467 p->mark = _mark;
10468 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10469 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
10470 }
10471 { // primary '(' arguments? ')'
10472 if (p->error_indicator) {
10473 D(p->level--);
10474 return NULL;
10475 }
10476 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
10477 Token * _literal;
10478 Token * _literal_1;
10479 expr_ty a;
10480 void *b;
10481 if (
10482 (a = primary_rule(p)) // primary
10483 &&
10484 (_literal = _PyPegen_expect_token(p, 7)) // token='('
10485 &&
10486 (b = arguments_rule(p), 1) // arguments?
10487 &&
10488 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
10489 )
10490 {
10491 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
10492 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10493 if (_token == NULL) {
10494 D(p->level--);
10495 return NULL;
10496 }
10497 int _end_lineno = _token->end_lineno;
10498 UNUSED(_end_lineno); // Only used by EXTRA macro
10499 int _end_col_offset = _token->end_col_offset;
10500 UNUSED(_end_col_offset); // Only used by EXTRA macro
10501 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
10502 if (_res == NULL && PyErr_Occurred()) {
10503 p->error_indicator = 1;
10504 D(p->level--);
10505 return NULL;
10506 }
10507 goto done;
10508 }
10509 p->mark = _mark;
10510 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10511 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
10512 }
10513 { // primary '[' slices ']'
10514 if (p->error_indicator) {
10515 D(p->level--);
10516 return NULL;
10517 }
10518 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
10519 Token * _literal;
10520 Token * _literal_1;
10521 expr_ty a;
10522 expr_ty b;
10523 if (
10524 (a = primary_rule(p)) // primary
10525 &&
10526 (_literal = _PyPegen_expect_token(p, 9)) // token='['
10527 &&
10528 (b = slices_rule(p)) // slices
10529 &&
10530 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
10531 )
10532 {
10533 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
10534 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10535 if (_token == NULL) {
10536 D(p->level--);
10537 return NULL;
10538 }
10539 int _end_lineno = _token->end_lineno;
10540 UNUSED(_end_lineno); // Only used by EXTRA macro
10541 int _end_col_offset = _token->end_col_offset;
10542 UNUSED(_end_col_offset); // Only used by EXTRA macro
10543 _res = _Py_Subscript ( a , b , Load , EXTRA );
10544 if (_res == NULL && PyErr_Occurred()) {
10545 p->error_indicator = 1;
10546 D(p->level--);
10547 return NULL;
10548 }
10549 goto done;
10550 }
10551 p->mark = _mark;
10552 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10553 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
10554 }
10555 { // atom
10556 if (p->error_indicator) {
10557 D(p->level--);
10558 return NULL;
10559 }
10560 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
10561 expr_ty atom_var;
10562 if (
10563 (atom_var = atom_rule(p)) // atom
10564 )
10565 {
10566 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
10567 _res = atom_var;
10568 goto done;
10569 }
10570 p->mark = _mark;
10571 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
10573 }
10574 _res = NULL;
10575 done:
10576 D(p->level--);
10577 return _res;
10578}
10579
10580// slices: slice !',' | ','.slice+ ','?
10581static expr_ty
10582slices_rule(Parser *p)
10583{
10584 D(p->level++);
10585 if (p->error_indicator) {
10586 D(p->level--);
10587 return NULL;
10588 }
10589 expr_ty _res = NULL;
10590 int _mark = p->mark;
10591 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10592 p->error_indicator = 1;
10593 D(p->level--);
10594 return NULL;
10595 }
10596 int _start_lineno = p->tokens[_mark]->lineno;
10597 UNUSED(_start_lineno); // Only used by EXTRA macro
10598 int _start_col_offset = p->tokens[_mark]->col_offset;
10599 UNUSED(_start_col_offset); // Only used by EXTRA macro
10600 { // slice !','
10601 if (p->error_indicator) {
10602 D(p->level--);
10603 return NULL;
10604 }
10605 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
10606 expr_ty a;
10607 if (
10608 (a = slice_rule(p)) // slice
10609 &&
10610 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
10611 )
10612 {
10613 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
10614 _res = a;
10615 if (_res == NULL && PyErr_Occurred()) {
10616 p->error_indicator = 1;
10617 D(p->level--);
10618 return NULL;
10619 }
10620 goto done;
10621 }
10622 p->mark = _mark;
10623 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
10624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
10625 }
10626 { // ','.slice+ ','?
10627 if (p->error_indicator) {
10628 D(p->level--);
10629 return NULL;
10630 }
10631 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
10632 void *_opt_var;
10633 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010010634 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010635 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010636 (a = (asdl_expr_seq*)_gather_92_rule(p)) // ','.slice+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010637 &&
10638 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
10639 )
10640 {
10641 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
10642 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10643 if (_token == NULL) {
10644 D(p->level--);
10645 return NULL;
10646 }
10647 int _end_lineno = _token->end_lineno;
10648 UNUSED(_end_lineno); // Only used by EXTRA macro
10649 int _end_col_offset = _token->end_col_offset;
10650 UNUSED(_end_col_offset); // Only used by EXTRA macro
10651 _res = _Py_Tuple ( a , Load , EXTRA );
10652 if (_res == NULL && PyErr_Occurred()) {
10653 p->error_indicator = 1;
10654 D(p->level--);
10655 return NULL;
10656 }
10657 goto done;
10658 }
10659 p->mark = _mark;
10660 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
10661 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
10662 }
10663 _res = NULL;
10664 done:
10665 D(p->level--);
10666 return _res;
10667}
10668
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010669// slice: expression? ':' expression? [':' expression?] | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010670static expr_ty
10671slice_rule(Parser *p)
10672{
10673 D(p->level++);
10674 if (p->error_indicator) {
10675 D(p->level--);
10676 return NULL;
10677 }
10678 expr_ty _res = NULL;
10679 int _mark = p->mark;
10680 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10681 p->error_indicator = 1;
10682 D(p->level--);
10683 return NULL;
10684 }
10685 int _start_lineno = p->tokens[_mark]->lineno;
10686 UNUSED(_start_lineno); // Only used by EXTRA macro
10687 int _start_col_offset = p->tokens[_mark]->col_offset;
10688 UNUSED(_start_col_offset); // Only used by EXTRA macro
10689 { // expression? ':' expression? [':' expression?]
10690 if (p->error_indicator) {
10691 D(p->level--);
10692 return NULL;
10693 }
10694 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
10695 Token * _literal;
10696 void *a;
10697 void *b;
10698 void *c;
10699 if (
10700 (a = expression_rule(p), 1) // expression?
10701 &&
10702 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
10703 &&
10704 (b = expression_rule(p), 1) // expression?
10705 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010706 (c = _tmp_94_rule(p), 1) // [':' expression?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010707 )
10708 {
10709 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
10710 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10711 if (_token == NULL) {
10712 D(p->level--);
10713 return NULL;
10714 }
10715 int _end_lineno = _token->end_lineno;
10716 UNUSED(_end_lineno); // Only used by EXTRA macro
10717 int _end_col_offset = _token->end_col_offset;
10718 UNUSED(_end_col_offset); // Only used by EXTRA macro
10719 _res = _Py_Slice ( a , b , c , EXTRA );
10720 if (_res == NULL && PyErr_Occurred()) {
10721 p->error_indicator = 1;
10722 D(p->level--);
10723 return NULL;
10724 }
10725 goto done;
10726 }
10727 p->mark = _mark;
10728 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
10729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
10730 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010731 { // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010732 if (p->error_indicator) {
10733 D(p->level--);
10734 return NULL;
10735 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010736 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010737 expr_ty a;
10738 if (
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010739 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010740 )
10741 {
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010742 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010743 _res = a;
10744 if (_res == NULL && PyErr_Occurred()) {
10745 p->error_indicator = 1;
10746 D(p->level--);
10747 return NULL;
10748 }
10749 goto done;
10750 }
10751 p->mark = _mark;
10752 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010753 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010754 }
10755 _res = NULL;
10756 done:
10757 D(p->level--);
10758 return _res;
10759}
10760
10761// atom:
10762// | NAME
10763// | 'True'
10764// | 'False'
10765// | 'None'
10766// | &STRING strings
10767// | NUMBER
10768// | &'(' (tuple | group | genexp)
10769// | &'[' (list | listcomp)
10770// | &'{' (dict | set | dictcomp | setcomp)
10771// | '...'
10772static expr_ty
10773atom_rule(Parser *p)
10774{
10775 D(p->level++);
10776 if (p->error_indicator) {
10777 D(p->level--);
10778 return NULL;
10779 }
10780 expr_ty _res = NULL;
10781 int _mark = p->mark;
10782 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10783 p->error_indicator = 1;
10784 D(p->level--);
10785 return NULL;
10786 }
10787 int _start_lineno = p->tokens[_mark]->lineno;
10788 UNUSED(_start_lineno); // Only used by EXTRA macro
10789 int _start_col_offset = p->tokens[_mark]->col_offset;
10790 UNUSED(_start_col_offset); // Only used by EXTRA macro
10791 { // NAME
10792 if (p->error_indicator) {
10793 D(p->level--);
10794 return NULL;
10795 }
10796 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
10797 expr_ty name_var;
10798 if (
10799 (name_var = _PyPegen_name_token(p)) // NAME
10800 )
10801 {
10802 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
10803 _res = name_var;
10804 goto done;
10805 }
10806 p->mark = _mark;
10807 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
10809 }
10810 { // 'True'
10811 if (p->error_indicator) {
10812 D(p->level--);
10813 return NULL;
10814 }
10815 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
10816 Token * _keyword;
10817 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010818 (_keyword = _PyPegen_expect_token(p, 528)) // token='True'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010819 )
10820 {
10821 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
10822 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10823 if (_token == NULL) {
10824 D(p->level--);
10825 return NULL;
10826 }
10827 int _end_lineno = _token->end_lineno;
10828 UNUSED(_end_lineno); // Only used by EXTRA macro
10829 int _end_col_offset = _token->end_col_offset;
10830 UNUSED(_end_col_offset); // Only used by EXTRA macro
10831 _res = _Py_Constant ( Py_True , NULL , EXTRA );
10832 if (_res == NULL && PyErr_Occurred()) {
10833 p->error_indicator = 1;
10834 D(p->level--);
10835 return NULL;
10836 }
10837 goto done;
10838 }
10839 p->mark = _mark;
10840 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10841 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
10842 }
10843 { // 'False'
10844 if (p->error_indicator) {
10845 D(p->level--);
10846 return NULL;
10847 }
10848 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
10849 Token * _keyword;
10850 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010851 (_keyword = _PyPegen_expect_token(p, 529)) // token='False'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010852 )
10853 {
10854 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
10855 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10856 if (_token == NULL) {
10857 D(p->level--);
10858 return NULL;
10859 }
10860 int _end_lineno = _token->end_lineno;
10861 UNUSED(_end_lineno); // Only used by EXTRA macro
10862 int _end_col_offset = _token->end_col_offset;
10863 UNUSED(_end_col_offset); // Only used by EXTRA macro
10864 _res = _Py_Constant ( Py_False , NULL , EXTRA );
10865 if (_res == NULL && PyErr_Occurred()) {
10866 p->error_indicator = 1;
10867 D(p->level--);
10868 return NULL;
10869 }
10870 goto done;
10871 }
10872 p->mark = _mark;
10873 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10874 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
10875 }
10876 { // 'None'
10877 if (p->error_indicator) {
10878 D(p->level--);
10879 return NULL;
10880 }
10881 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
10882 Token * _keyword;
10883 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010884 (_keyword = _PyPegen_expect_token(p, 530)) // token='None'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010885 )
10886 {
10887 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
10888 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10889 if (_token == NULL) {
10890 D(p->level--);
10891 return NULL;
10892 }
10893 int _end_lineno = _token->end_lineno;
10894 UNUSED(_end_lineno); // Only used by EXTRA macro
10895 int _end_col_offset = _token->end_col_offset;
10896 UNUSED(_end_col_offset); // Only used by EXTRA macro
10897 _res = _Py_Constant ( Py_None , NULL , EXTRA );
10898 if (_res == NULL && PyErr_Occurred()) {
10899 p->error_indicator = 1;
10900 D(p->level--);
10901 return NULL;
10902 }
10903 goto done;
10904 }
10905 p->mark = _mark;
10906 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
10908 }
10909 { // &STRING strings
10910 if (p->error_indicator) {
10911 D(p->level--);
10912 return NULL;
10913 }
10914 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
10915 expr_ty strings_var;
10916 if (
10917 _PyPegen_lookahead(1, _PyPegen_string_token, p)
10918 &&
10919 (strings_var = strings_rule(p)) // strings
10920 )
10921 {
10922 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
10923 _res = strings_var;
10924 goto done;
10925 }
10926 p->mark = _mark;
10927 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
10929 }
10930 { // NUMBER
10931 if (p->error_indicator) {
10932 D(p->level--);
10933 return NULL;
10934 }
10935 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
10936 expr_ty number_var;
10937 if (
10938 (number_var = _PyPegen_number_token(p)) // NUMBER
10939 )
10940 {
10941 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
10942 _res = number_var;
10943 goto done;
10944 }
10945 p->mark = _mark;
10946 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10947 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
10948 }
10949 { // &'(' (tuple | group | genexp)
10950 if (p->error_indicator) {
10951 D(p->level--);
10952 return NULL;
10953 }
10954 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010955 void *_tmp_95_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010956 if (
10957 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
10958 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010959 (_tmp_95_var = _tmp_95_rule(p)) // tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010960 )
10961 {
10962 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010963 _res = _tmp_95_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010964 goto done;
10965 }
10966 p->mark = _mark;
10967 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10968 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
10969 }
10970 { // &'[' (list | listcomp)
10971 if (p->error_indicator) {
10972 D(p->level--);
10973 return NULL;
10974 }
10975 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010976 void *_tmp_96_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010977 if (
10978 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
10979 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010980 (_tmp_96_var = _tmp_96_rule(p)) // list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010981 )
10982 {
10983 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010984 _res = _tmp_96_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010985 goto done;
10986 }
10987 p->mark = _mark;
10988 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10989 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
10990 }
10991 { // &'{' (dict | set | dictcomp | setcomp)
10992 if (p->error_indicator) {
10993 D(p->level--);
10994 return NULL;
10995 }
10996 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010997 void *_tmp_97_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010998 if (
10999 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
11000 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011001 (_tmp_97_var = _tmp_97_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011002 )
11003 {
11004 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011005 _res = _tmp_97_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011006 goto done;
11007 }
11008 p->mark = _mark;
11009 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
11010 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
11011 }
11012 { // '...'
11013 if (p->error_indicator) {
11014 D(p->level--);
11015 return NULL;
11016 }
11017 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
11018 Token * _literal;
11019 if (
11020 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
11021 )
11022 {
11023 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
11024 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11025 if (_token == NULL) {
11026 D(p->level--);
11027 return NULL;
11028 }
11029 int _end_lineno = _token->end_lineno;
11030 UNUSED(_end_lineno); // Only used by EXTRA macro
11031 int _end_col_offset = _token->end_col_offset;
11032 UNUSED(_end_col_offset); // Only used by EXTRA macro
11033 _res = _Py_Constant ( Py_Ellipsis , NULL , EXTRA );
11034 if (_res == NULL && PyErr_Occurred()) {
11035 p->error_indicator = 1;
11036 D(p->level--);
11037 return NULL;
11038 }
11039 goto done;
11040 }
11041 p->mark = _mark;
11042 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
11043 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
11044 }
11045 _res = NULL;
11046 done:
11047 D(p->level--);
11048 return _res;
11049}
11050
11051// strings: STRING+
11052static expr_ty
11053strings_rule(Parser *p)
11054{
11055 D(p->level++);
11056 if (p->error_indicator) {
11057 D(p->level--);
11058 return NULL;
11059 }
11060 expr_ty _res = NULL;
11061 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
11062 D(p->level--);
11063 return _res;
11064 }
11065 int _mark = p->mark;
11066 { // STRING+
11067 if (p->error_indicator) {
11068 D(p->level--);
11069 return NULL;
11070 }
11071 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
11072 asdl_seq * a;
11073 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011074 (a = _loop1_98_rule(p)) // STRING+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011075 )
11076 {
11077 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
11078 _res = _PyPegen_concatenate_strings ( p , a );
11079 if (_res == NULL && PyErr_Occurred()) {
11080 p->error_indicator = 1;
11081 D(p->level--);
11082 return NULL;
11083 }
11084 goto done;
11085 }
11086 p->mark = _mark;
11087 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
11088 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
11089 }
11090 _res = NULL;
11091 done:
11092 _PyPegen_insert_memo(p, _mark, strings_type, _res);
11093 D(p->level--);
11094 return _res;
11095}
11096
11097// list: '[' star_named_expressions? ']'
11098static expr_ty
11099list_rule(Parser *p)
11100{
11101 D(p->level++);
11102 if (p->error_indicator) {
11103 D(p->level--);
11104 return NULL;
11105 }
11106 expr_ty _res = NULL;
11107 int _mark = p->mark;
11108 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11109 p->error_indicator = 1;
11110 D(p->level--);
11111 return NULL;
11112 }
11113 int _start_lineno = p->tokens[_mark]->lineno;
11114 UNUSED(_start_lineno); // Only used by EXTRA macro
11115 int _start_col_offset = p->tokens[_mark]->col_offset;
11116 UNUSED(_start_col_offset); // Only used by EXTRA macro
11117 { // '[' star_named_expressions? ']'
11118 if (p->error_indicator) {
11119 D(p->level--);
11120 return NULL;
11121 }
11122 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
11123 Token * _literal;
11124 Token * _literal_1;
11125 void *a;
11126 if (
11127 (_literal = _PyPegen_expect_token(p, 9)) // token='['
11128 &&
11129 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
11130 &&
11131 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
11132 )
11133 {
11134 D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
11135 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11136 if (_token == NULL) {
11137 D(p->level--);
11138 return NULL;
11139 }
11140 int _end_lineno = _token->end_lineno;
11141 UNUSED(_end_lineno); // Only used by EXTRA macro
11142 int _end_col_offset = _token->end_col_offset;
11143 UNUSED(_end_col_offset); // Only used by EXTRA macro
11144 _res = _Py_List ( a , Load , EXTRA );
11145 if (_res == NULL && PyErr_Occurred()) {
11146 p->error_indicator = 1;
11147 D(p->level--);
11148 return NULL;
11149 }
11150 goto done;
11151 }
11152 p->mark = _mark;
11153 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
11154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
11155 }
11156 _res = NULL;
11157 done:
11158 D(p->level--);
11159 return _res;
11160}
11161
Pablo Galindo835f14f2021-01-31 22:52:56 +000011162// listcomp: '[' named_expression for_if_clauses ']' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011163static expr_ty
11164listcomp_rule(Parser *p)
11165{
11166 D(p->level++);
11167 if (p->error_indicator) {
11168 D(p->level--);
11169 return NULL;
11170 }
11171 expr_ty _res = NULL;
11172 int _mark = p->mark;
11173 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11174 p->error_indicator = 1;
11175 D(p->level--);
11176 return NULL;
11177 }
11178 int _start_lineno = p->tokens[_mark]->lineno;
11179 UNUSED(_start_lineno); // Only used by EXTRA macro
11180 int _start_col_offset = p->tokens[_mark]->col_offset;
11181 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000011182 { // '[' named_expression for_if_clauses ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011183 if (p->error_indicator) {
11184 D(p->level--);
11185 return NULL;
11186 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000011187 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 +010011188 Token * _literal;
11189 Token * _literal_1;
11190 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011191 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011192 if (
11193 (_literal = _PyPegen_expect_token(p, 9)) // token='['
11194 &&
11195 (a = named_expression_rule(p)) // named_expression
11196 &&
11197 (b = for_if_clauses_rule(p)) // for_if_clauses
11198 &&
11199 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
11200 )
11201 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000011202 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 +010011203 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11204 if (_token == NULL) {
11205 D(p->level--);
11206 return NULL;
11207 }
11208 int _end_lineno = _token->end_lineno;
11209 UNUSED(_end_lineno); // Only used by EXTRA macro
11210 int _end_col_offset = _token->end_col_offset;
11211 UNUSED(_end_col_offset); // Only used by EXTRA macro
11212 _res = _Py_ListComp ( a , b , EXTRA );
11213 if (_res == NULL && PyErr_Occurred()) {
11214 p->error_indicator = 1;
11215 D(p->level--);
11216 return NULL;
11217 }
11218 goto done;
11219 }
11220 p->mark = _mark;
11221 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000011222 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011223 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011224 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011225 if (p->error_indicator) {
11226 D(p->level--);
11227 return NULL;
11228 }
11229 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11230 void *invalid_comprehension_var;
11231 if (
11232 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
11233 )
11234 {
11235 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11236 _res = invalid_comprehension_var;
11237 goto done;
11238 }
11239 p->mark = _mark;
11240 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
11241 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
11242 }
11243 _res = NULL;
11244 done:
11245 D(p->level--);
11246 return _res;
11247}
11248
11249// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
11250static expr_ty
11251tuple_rule(Parser *p)
11252{
11253 D(p->level++);
11254 if (p->error_indicator) {
11255 D(p->level--);
11256 return NULL;
11257 }
11258 expr_ty _res = NULL;
11259 int _mark = p->mark;
11260 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11261 p->error_indicator = 1;
11262 D(p->level--);
11263 return NULL;
11264 }
11265 int _start_lineno = p->tokens[_mark]->lineno;
11266 UNUSED(_start_lineno); // Only used by EXTRA macro
11267 int _start_col_offset = p->tokens[_mark]->col_offset;
11268 UNUSED(_start_col_offset); // Only used by EXTRA macro
11269 { // '(' [star_named_expression ',' star_named_expressions?] ')'
11270 if (p->error_indicator) {
11271 D(p->level--);
11272 return NULL;
11273 }
11274 D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
11275 Token * _literal;
11276 Token * _literal_1;
11277 void *a;
11278 if (
11279 (_literal = _PyPegen_expect_token(p, 7)) // token='('
11280 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011281 (a = _tmp_99_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011282 &&
11283 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
11284 )
11285 {
11286 D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
11287 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11288 if (_token == NULL) {
11289 D(p->level--);
11290 return NULL;
11291 }
11292 int _end_lineno = _token->end_lineno;
11293 UNUSED(_end_lineno); // Only used by EXTRA macro
11294 int _end_col_offset = _token->end_col_offset;
11295 UNUSED(_end_col_offset); // Only used by EXTRA macro
11296 _res = _Py_Tuple ( a , Load , EXTRA );
11297 if (_res == NULL && PyErr_Occurred()) {
11298 p->error_indicator = 1;
11299 D(p->level--);
11300 return NULL;
11301 }
11302 goto done;
11303 }
11304 p->mark = _mark;
11305 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
11306 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
11307 }
11308 _res = NULL;
11309 done:
11310 D(p->level--);
11311 return _res;
11312}
11313
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011314// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011315static expr_ty
11316group_rule(Parser *p)
11317{
11318 D(p->level++);
11319 if (p->error_indicator) {
11320 D(p->level--);
11321 return NULL;
11322 }
11323 expr_ty _res = NULL;
11324 int _mark = p->mark;
11325 { // '(' (yield_expr | named_expression) ')'
11326 if (p->error_indicator) {
11327 D(p->level--);
11328 return NULL;
11329 }
11330 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
11331 Token * _literal;
11332 Token * _literal_1;
11333 void *a;
11334 if (
11335 (_literal = _PyPegen_expect_token(p, 7)) // token='('
11336 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011337 (a = _tmp_100_rule(p)) // yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011338 &&
11339 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
11340 )
11341 {
11342 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
11343 _res = a;
11344 if (_res == NULL && PyErr_Occurred()) {
11345 p->error_indicator = 1;
11346 D(p->level--);
11347 return NULL;
11348 }
11349 goto done;
11350 }
11351 p->mark = _mark;
11352 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
11353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
11354 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011355 if (p->call_invalid_rules) { // invalid_group
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011356 if (p->error_indicator) {
11357 D(p->level--);
11358 return NULL;
11359 }
11360 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
11361 void *invalid_group_var;
11362 if (
11363 (invalid_group_var = invalid_group_rule(p)) // invalid_group
11364 )
11365 {
11366 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
11367 _res = invalid_group_var;
11368 goto done;
11369 }
11370 p->mark = _mark;
11371 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
11372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
11373 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011374 _res = NULL;
11375 done:
11376 D(p->level--);
11377 return _res;
11378}
11379
Pablo Galindo835f14f2021-01-31 22:52:56 +000011380// genexp: '(' named_expression for_if_clauses ')' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011381static expr_ty
11382genexp_rule(Parser *p)
11383{
11384 D(p->level++);
11385 if (p->error_indicator) {
11386 D(p->level--);
11387 return NULL;
11388 }
11389 expr_ty _res = NULL;
11390 int _mark = p->mark;
11391 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11392 p->error_indicator = 1;
11393 D(p->level--);
11394 return NULL;
11395 }
11396 int _start_lineno = p->tokens[_mark]->lineno;
11397 UNUSED(_start_lineno); // Only used by EXTRA macro
11398 int _start_col_offset = p->tokens[_mark]->col_offset;
11399 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000011400 { // '(' named_expression for_if_clauses ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011401 if (p->error_indicator) {
11402 D(p->level--);
11403 return NULL;
11404 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000011405 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 +010011406 Token * _literal;
11407 Token * _literal_1;
11408 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011409 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011410 if (
11411 (_literal = _PyPegen_expect_token(p, 7)) // token='('
11412 &&
Lysandros Nikolaoucb3e5ed2020-11-17 01:08:35 +020011413 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011414 &&
11415 (b = for_if_clauses_rule(p)) // for_if_clauses
11416 &&
11417 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
11418 )
11419 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000011420 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 +010011421 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11422 if (_token == NULL) {
11423 D(p->level--);
11424 return NULL;
11425 }
11426 int _end_lineno = _token->end_lineno;
11427 UNUSED(_end_lineno); // Only used by EXTRA macro
11428 int _end_col_offset = _token->end_col_offset;
11429 UNUSED(_end_col_offset); // Only used by EXTRA macro
11430 _res = _Py_GeneratorExp ( a , b , EXTRA );
11431 if (_res == NULL && PyErr_Occurred()) {
11432 p->error_indicator = 1;
11433 D(p->level--);
11434 return NULL;
11435 }
11436 goto done;
11437 }
11438 p->mark = _mark;
11439 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000011440 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011441 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011442 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011443 if (p->error_indicator) {
11444 D(p->level--);
11445 return NULL;
11446 }
11447 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11448 void *invalid_comprehension_var;
11449 if (
11450 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
11451 )
11452 {
11453 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11454 _res = invalid_comprehension_var;
11455 goto done;
11456 }
11457 p->mark = _mark;
11458 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
11459 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
11460 }
11461 _res = NULL;
11462 done:
11463 D(p->level--);
11464 return _res;
11465}
11466
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011467// set: '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011468static expr_ty
11469set_rule(Parser *p)
11470{
11471 D(p->level++);
11472 if (p->error_indicator) {
11473 D(p->level--);
11474 return NULL;
11475 }
11476 expr_ty _res = NULL;
11477 int _mark = p->mark;
11478 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11479 p->error_indicator = 1;
11480 D(p->level--);
11481 return NULL;
11482 }
11483 int _start_lineno = p->tokens[_mark]->lineno;
11484 UNUSED(_start_lineno); // Only used by EXTRA macro
11485 int _start_col_offset = p->tokens[_mark]->col_offset;
11486 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011487 { // '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011488 if (p->error_indicator) {
11489 D(p->level--);
11490 return NULL;
11491 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011492 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011493 Token * _literal;
11494 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011495 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011496 if (
11497 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
11498 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011499 (a = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011500 &&
11501 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
11502 )
11503 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011504 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 +010011505 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11506 if (_token == NULL) {
11507 D(p->level--);
11508 return NULL;
11509 }
11510 int _end_lineno = _token->end_lineno;
11511 UNUSED(_end_lineno); // Only used by EXTRA macro
11512 int _end_col_offset = _token->end_col_offset;
11513 UNUSED(_end_col_offset); // Only used by EXTRA macro
11514 _res = _Py_Set ( a , EXTRA );
11515 if (_res == NULL && PyErr_Occurred()) {
11516 p->error_indicator = 1;
11517 D(p->level--);
11518 return NULL;
11519 }
11520 goto done;
11521 }
11522 p->mark = _mark;
11523 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011524 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011525 }
11526 _res = NULL;
11527 done:
11528 D(p->level--);
11529 return _res;
11530}
11531
Pablo Galindo835f14f2021-01-31 22:52:56 +000011532// setcomp: '{' named_expression for_if_clauses '}' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011533static expr_ty
11534setcomp_rule(Parser *p)
11535{
11536 D(p->level++);
11537 if (p->error_indicator) {
11538 D(p->level--);
11539 return NULL;
11540 }
11541 expr_ty _res = NULL;
11542 int _mark = p->mark;
11543 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11544 p->error_indicator = 1;
11545 D(p->level--);
11546 return NULL;
11547 }
11548 int _start_lineno = p->tokens[_mark]->lineno;
11549 UNUSED(_start_lineno); // Only used by EXTRA macro
11550 int _start_col_offset = p->tokens[_mark]->col_offset;
11551 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000011552 { // '{' named_expression for_if_clauses '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011553 if (p->error_indicator) {
11554 D(p->level--);
11555 return NULL;
11556 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000011557 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 +010011558 Token * _literal;
11559 Token * _literal_1;
11560 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011561 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011562 if (
11563 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
11564 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011565 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011566 &&
11567 (b = for_if_clauses_rule(p)) // for_if_clauses
11568 &&
11569 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
11570 )
11571 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000011572 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 +010011573 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11574 if (_token == NULL) {
11575 D(p->level--);
11576 return NULL;
11577 }
11578 int _end_lineno = _token->end_lineno;
11579 UNUSED(_end_lineno); // Only used by EXTRA macro
11580 int _end_col_offset = _token->end_col_offset;
11581 UNUSED(_end_col_offset); // Only used by EXTRA macro
11582 _res = _Py_SetComp ( a , b , EXTRA );
11583 if (_res == NULL && PyErr_Occurred()) {
11584 p->error_indicator = 1;
11585 D(p->level--);
11586 return NULL;
11587 }
11588 goto done;
11589 }
11590 p->mark = _mark;
11591 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000011592 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011593 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011594 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011595 if (p->error_indicator) {
11596 D(p->level--);
11597 return NULL;
11598 }
11599 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11600 void *invalid_comprehension_var;
11601 if (
11602 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
11603 )
11604 {
11605 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11606 _res = invalid_comprehension_var;
11607 goto done;
11608 }
11609 p->mark = _mark;
11610 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
11611 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
11612 }
11613 _res = NULL;
11614 done:
11615 D(p->level--);
11616 return _res;
11617}
11618
11619// dict: '{' double_starred_kvpairs? '}'
11620static expr_ty
11621dict_rule(Parser *p)
11622{
11623 D(p->level++);
11624 if (p->error_indicator) {
11625 D(p->level--);
11626 return NULL;
11627 }
11628 expr_ty _res = NULL;
11629 int _mark = p->mark;
11630 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11631 p->error_indicator = 1;
11632 D(p->level--);
11633 return NULL;
11634 }
11635 int _start_lineno = p->tokens[_mark]->lineno;
11636 UNUSED(_start_lineno); // Only used by EXTRA macro
11637 int _start_col_offset = p->tokens[_mark]->col_offset;
11638 UNUSED(_start_col_offset); // Only used by EXTRA macro
11639 { // '{' double_starred_kvpairs? '}'
11640 if (p->error_indicator) {
11641 D(p->level--);
11642 return NULL;
11643 }
11644 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
11645 Token * _literal;
11646 Token * _literal_1;
11647 void *a;
11648 if (
11649 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
11650 &&
11651 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
11652 &&
11653 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
11654 )
11655 {
11656 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
11657 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11658 if (_token == NULL) {
11659 D(p->level--);
11660 return NULL;
11661 }
11662 int _end_lineno = _token->end_lineno;
11663 UNUSED(_end_lineno); // Only used by EXTRA macro
11664 int _end_col_offset = _token->end_col_offset;
11665 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030011666 _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 +010011667 if (_res == NULL && PyErr_Occurred()) {
11668 p->error_indicator = 1;
11669 D(p->level--);
11670 return NULL;
11671 }
11672 goto done;
11673 }
11674 p->mark = _mark;
11675 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
11676 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
11677 }
11678 _res = NULL;
11679 done:
11680 D(p->level--);
11681 return _res;
11682}
11683
11684// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
11685static expr_ty
11686dictcomp_rule(Parser *p)
11687{
11688 D(p->level++);
11689 if (p->error_indicator) {
11690 D(p->level--);
11691 return NULL;
11692 }
11693 expr_ty _res = NULL;
11694 int _mark = p->mark;
11695 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11696 p->error_indicator = 1;
11697 D(p->level--);
11698 return NULL;
11699 }
11700 int _start_lineno = p->tokens[_mark]->lineno;
11701 UNUSED(_start_lineno); // Only used by EXTRA macro
11702 int _start_col_offset = p->tokens[_mark]->col_offset;
11703 UNUSED(_start_col_offset); // Only used by EXTRA macro
11704 { // '{' kvpair for_if_clauses '}'
11705 if (p->error_indicator) {
11706 D(p->level--);
11707 return NULL;
11708 }
11709 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
11710 Token * _literal;
11711 Token * _literal_1;
11712 KeyValuePair* a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011713 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011714 if (
11715 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
11716 &&
11717 (a = kvpair_rule(p)) // kvpair
11718 &&
11719 (b = for_if_clauses_rule(p)) // for_if_clauses
11720 &&
11721 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
11722 )
11723 {
11724 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
11725 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11726 if (_token == NULL) {
11727 D(p->level--);
11728 return NULL;
11729 }
11730 int _end_lineno = _token->end_lineno;
11731 UNUSED(_end_lineno); // Only used by EXTRA macro
11732 int _end_col_offset = _token->end_col_offset;
11733 UNUSED(_end_col_offset); // Only used by EXTRA macro
11734 _res = _Py_DictComp ( a -> key , a -> value , b , EXTRA );
11735 if (_res == NULL && PyErr_Occurred()) {
11736 p->error_indicator = 1;
11737 D(p->level--);
11738 return NULL;
11739 }
11740 goto done;
11741 }
11742 p->mark = _mark;
11743 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
11744 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
11745 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011746 if (p->call_invalid_rules) { // invalid_dict_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011747 if (p->error_indicator) {
11748 D(p->level--);
11749 return NULL;
11750 }
11751 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
11752 void *invalid_dict_comprehension_var;
11753 if (
11754 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
11755 )
11756 {
11757 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
11758 _res = invalid_dict_comprehension_var;
11759 goto done;
11760 }
11761 p->mark = _mark;
11762 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
11763 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
11764 }
11765 _res = NULL;
11766 done:
11767 D(p->level--);
11768 return _res;
11769}
11770
11771// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
11772static asdl_seq*
11773double_starred_kvpairs_rule(Parser *p)
11774{
11775 D(p->level++);
11776 if (p->error_indicator) {
11777 D(p->level--);
11778 return NULL;
11779 }
11780 asdl_seq* _res = NULL;
11781 int _mark = p->mark;
11782 { // ','.double_starred_kvpair+ ','?
11783 if (p->error_indicator) {
11784 D(p->level--);
11785 return NULL;
11786 }
11787 D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
11788 void *_opt_var;
11789 UNUSED(_opt_var); // Silence compiler warnings
11790 asdl_seq * a;
11791 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011792 (a = _gather_101_rule(p)) // ','.double_starred_kvpair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011793 &&
11794 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
11795 )
11796 {
11797 D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
11798 _res = a;
11799 if (_res == NULL && PyErr_Occurred()) {
11800 p->error_indicator = 1;
11801 D(p->level--);
11802 return NULL;
11803 }
11804 goto done;
11805 }
11806 p->mark = _mark;
11807 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
11808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
11809 }
11810 _res = NULL;
11811 done:
11812 D(p->level--);
11813 return _res;
11814}
11815
11816// double_starred_kvpair: '**' bitwise_or | kvpair
11817static KeyValuePair*
11818double_starred_kvpair_rule(Parser *p)
11819{
11820 D(p->level++);
11821 if (p->error_indicator) {
11822 D(p->level--);
11823 return NULL;
11824 }
11825 KeyValuePair* _res = NULL;
11826 int _mark = p->mark;
11827 { // '**' bitwise_or
11828 if (p->error_indicator) {
11829 D(p->level--);
11830 return NULL;
11831 }
11832 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
11833 Token * _literal;
11834 expr_ty a;
11835 if (
11836 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
11837 &&
11838 (a = bitwise_or_rule(p)) // bitwise_or
11839 )
11840 {
11841 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
11842 _res = _PyPegen_key_value_pair ( p , NULL , a );
11843 if (_res == NULL && PyErr_Occurred()) {
11844 p->error_indicator = 1;
11845 D(p->level--);
11846 return NULL;
11847 }
11848 goto done;
11849 }
11850 p->mark = _mark;
11851 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11852 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
11853 }
11854 { // kvpair
11855 if (p->error_indicator) {
11856 D(p->level--);
11857 return NULL;
11858 }
11859 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
11860 KeyValuePair* kvpair_var;
11861 if (
11862 (kvpair_var = kvpair_rule(p)) // kvpair
11863 )
11864 {
11865 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
11866 _res = kvpair_var;
11867 goto done;
11868 }
11869 p->mark = _mark;
11870 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11871 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
11872 }
11873 _res = NULL;
11874 done:
11875 D(p->level--);
11876 return _res;
11877}
11878
11879// kvpair: expression ':' expression
11880static KeyValuePair*
11881kvpair_rule(Parser *p)
11882{
11883 D(p->level++);
11884 if (p->error_indicator) {
11885 D(p->level--);
11886 return NULL;
11887 }
11888 KeyValuePair* _res = NULL;
11889 int _mark = p->mark;
11890 { // expression ':' expression
11891 if (p->error_indicator) {
11892 D(p->level--);
11893 return NULL;
11894 }
11895 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
11896 Token * _literal;
11897 expr_ty a;
11898 expr_ty b;
11899 if (
11900 (a = expression_rule(p)) // expression
11901 &&
11902 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
11903 &&
11904 (b = expression_rule(p)) // expression
11905 )
11906 {
11907 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
11908 _res = _PyPegen_key_value_pair ( p , a , b );
11909 if (_res == NULL && PyErr_Occurred()) {
11910 p->error_indicator = 1;
11911 D(p->level--);
11912 return NULL;
11913 }
11914 goto done;
11915 }
11916 p->mark = _mark;
11917 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11918 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
11919 }
11920 _res = NULL;
11921 done:
11922 D(p->level--);
11923 return _res;
11924}
11925
11926// for_if_clauses: for_if_clause+
Pablo Galindoa5634c42020-09-16 19:42:00 +010011927static asdl_comprehension_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011928for_if_clauses_rule(Parser *p)
11929{
11930 D(p->level++);
11931 if (p->error_indicator) {
11932 D(p->level--);
11933 return NULL;
11934 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010011935 asdl_comprehension_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011936 int _mark = p->mark;
11937 { // for_if_clause+
11938 if (p->error_indicator) {
11939 D(p->level--);
11940 return NULL;
11941 }
11942 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 +010011943 asdl_comprehension_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011944 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011945 (a = (asdl_comprehension_seq*)_loop1_103_rule(p)) // for_if_clause+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011946 )
11947 {
11948 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 +010011949 _res = a;
11950 if (_res == NULL && PyErr_Occurred()) {
11951 p->error_indicator = 1;
11952 D(p->level--);
11953 return NULL;
11954 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011955 goto done;
11956 }
11957 p->mark = _mark;
11958 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
11959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
11960 }
11961 _res = NULL;
11962 done:
11963 D(p->level--);
11964 return _res;
11965}
11966
11967// for_if_clause:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011968// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
11969// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
11970// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011971static comprehension_ty
11972for_if_clause_rule(Parser *p)
11973{
11974 D(p->level++);
11975 if (p->error_indicator) {
11976 D(p->level--);
11977 return NULL;
11978 }
11979 comprehension_ty _res = NULL;
11980 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011981 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011982 if (p->error_indicator) {
11983 D(p->level--);
11984 return NULL;
11985 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011986 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
11987 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011988 Token * _keyword;
11989 Token * _keyword_1;
11990 expr_ty a;
11991 Token * async_var;
11992 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011993 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011994 if (
11995 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
11996 &&
11997 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
11998 &&
11999 (a = star_targets_rule(p)) // star_targets
12000 &&
12001 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
12002 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030012003 (_cut_var = 1)
12004 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012005 (b = disjunction_rule(p)) // disjunction
12006 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012007 (c = (asdl_expr_seq*)_loop0_104_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012008 )
12009 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030012010 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 +030012011 _res = CHECK_VERSION ( comprehension_ty , 6 , "Async comprehensions are" , _Py_comprehension ( a , b , c , 1 , p -> arena ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012012 if (_res == NULL && PyErr_Occurred()) {
12013 p->error_indicator = 1;
12014 D(p->level--);
12015 return NULL;
12016 }
12017 goto done;
12018 }
12019 p->mark = _mark;
12020 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030012021 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
12022 if (_cut_var) {
12023 D(p->level--);
12024 return NULL;
12025 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012026 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030012027 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012028 if (p->error_indicator) {
12029 D(p->level--);
12030 return NULL;
12031 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030012032 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
12033 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012034 Token * _keyword;
12035 Token * _keyword_1;
12036 expr_ty a;
12037 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010012038 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012039 if (
12040 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
12041 &&
12042 (a = star_targets_rule(p)) // star_targets
12043 &&
12044 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
12045 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030012046 (_cut_var = 1)
12047 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012048 (b = disjunction_rule(p)) // disjunction
12049 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012050 (c = (asdl_expr_seq*)_loop0_105_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012051 )
12052 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030012053 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 +010012054 _res = _Py_comprehension ( a , b , c , 0 , p -> arena );
12055 if (_res == NULL && PyErr_Occurred()) {
12056 p->error_indicator = 1;
12057 D(p->level--);
12058 return NULL;
12059 }
12060 goto done;
12061 }
12062 p->mark = _mark;
12063 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030012064 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
12065 if (_cut_var) {
12066 D(p->level--);
12067 return NULL;
12068 }
12069 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012070 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030012071 if (p->error_indicator) {
12072 D(p->level--);
12073 return NULL;
12074 }
12075 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
12076 void *invalid_for_target_var;
12077 if (
12078 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
12079 )
12080 {
12081 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
12082 _res = invalid_for_target_var;
12083 goto done;
12084 }
12085 p->mark = _mark;
12086 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
12087 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012088 }
12089 _res = NULL;
12090 done:
12091 D(p->level--);
12092 return _res;
12093}
12094
12095// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
12096static expr_ty
12097yield_expr_rule(Parser *p)
12098{
12099 D(p->level++);
12100 if (p->error_indicator) {
12101 D(p->level--);
12102 return NULL;
12103 }
12104 expr_ty _res = NULL;
12105 int _mark = p->mark;
12106 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12107 p->error_indicator = 1;
12108 D(p->level--);
12109 return NULL;
12110 }
12111 int _start_lineno = p->tokens[_mark]->lineno;
12112 UNUSED(_start_lineno); // Only used by EXTRA macro
12113 int _start_col_offset = p->tokens[_mark]->col_offset;
12114 UNUSED(_start_col_offset); // Only used by EXTRA macro
12115 { // 'yield' 'from' expression
12116 if (p->error_indicator) {
12117 D(p->level--);
12118 return NULL;
12119 }
12120 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
12121 Token * _keyword;
12122 Token * _keyword_1;
12123 expr_ty a;
12124 if (
12125 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
12126 &&
12127 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
12128 &&
12129 (a = expression_rule(p)) // expression
12130 )
12131 {
12132 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
12133 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12134 if (_token == NULL) {
12135 D(p->level--);
12136 return NULL;
12137 }
12138 int _end_lineno = _token->end_lineno;
12139 UNUSED(_end_lineno); // Only used by EXTRA macro
12140 int _end_col_offset = _token->end_col_offset;
12141 UNUSED(_end_col_offset); // Only used by EXTRA macro
12142 _res = _Py_YieldFrom ( a , EXTRA );
12143 if (_res == NULL && PyErr_Occurred()) {
12144 p->error_indicator = 1;
12145 D(p->level--);
12146 return NULL;
12147 }
12148 goto done;
12149 }
12150 p->mark = _mark;
12151 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
12152 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
12153 }
12154 { // 'yield' star_expressions?
12155 if (p->error_indicator) {
12156 D(p->level--);
12157 return NULL;
12158 }
12159 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
12160 Token * _keyword;
12161 void *a;
12162 if (
12163 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
12164 &&
12165 (a = star_expressions_rule(p), 1) // star_expressions?
12166 )
12167 {
12168 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
12169 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12170 if (_token == NULL) {
12171 D(p->level--);
12172 return NULL;
12173 }
12174 int _end_lineno = _token->end_lineno;
12175 UNUSED(_end_lineno); // Only used by EXTRA macro
12176 int _end_col_offset = _token->end_col_offset;
12177 UNUSED(_end_col_offset); // Only used by EXTRA macro
12178 _res = _Py_Yield ( a , EXTRA );
12179 if (_res == NULL && PyErr_Occurred()) {
12180 p->error_indicator = 1;
12181 D(p->level--);
12182 return NULL;
12183 }
12184 goto done;
12185 }
12186 p->mark = _mark;
12187 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
12188 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
12189 }
12190 _res = NULL;
12191 done:
12192 D(p->level--);
12193 return _res;
12194}
12195
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012196// arguments: args ','? &')' | invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012197static expr_ty
12198arguments_rule(Parser *p)
12199{
12200 D(p->level++);
12201 if (p->error_indicator) {
12202 D(p->level--);
12203 return NULL;
12204 }
12205 expr_ty _res = NULL;
12206 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
12207 D(p->level--);
12208 return _res;
12209 }
12210 int _mark = p->mark;
12211 { // args ','? &')'
12212 if (p->error_indicator) {
12213 D(p->level--);
12214 return NULL;
12215 }
12216 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
12217 void *_opt_var;
12218 UNUSED(_opt_var); // Silence compiler warnings
12219 expr_ty a;
12220 if (
12221 (a = args_rule(p)) // args
12222 &&
12223 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
12224 &&
12225 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
12226 )
12227 {
12228 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
12229 _res = a;
12230 if (_res == NULL && PyErr_Occurred()) {
12231 p->error_indicator = 1;
12232 D(p->level--);
12233 return NULL;
12234 }
12235 goto done;
12236 }
12237 p->mark = _mark;
12238 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
12239 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
12240 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012241 if (p->call_invalid_rules) { // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012242 if (p->error_indicator) {
12243 D(p->level--);
12244 return NULL;
12245 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012246 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
12247 void *invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012248 if (
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012249 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012250 )
12251 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012252 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
12253 _res = invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012254 goto done;
12255 }
12256 p->mark = _mark;
12257 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012258 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012259 }
12260 _res = NULL;
12261 done:
12262 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
12263 D(p->level--);
12264 return _res;
12265}
12266
Pablo Galindo4a97b152020-09-02 17:44:19 +010012267// args: ','.(starred_expression | named_expression !'=')+ [',' kwargs] | kwargs
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012268static expr_ty
12269args_rule(Parser *p)
12270{
12271 D(p->level++);
12272 if (p->error_indicator) {
12273 D(p->level--);
12274 return NULL;
12275 }
12276 expr_ty _res = NULL;
12277 int _mark = p->mark;
12278 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12279 p->error_indicator = 1;
12280 D(p->level--);
12281 return NULL;
12282 }
12283 int _start_lineno = p->tokens[_mark]->lineno;
12284 UNUSED(_start_lineno); // Only used by EXTRA macro
12285 int _start_col_offset = p->tokens[_mark]->col_offset;
12286 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo4a97b152020-09-02 17:44:19 +010012287 { // ','.(starred_expression | named_expression !'=')+ [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012288 if (p->error_indicator) {
12289 D(p->level--);
12290 return NULL;
12291 }
Pablo Galindo4a97b152020-09-02 17:44:19 +010012292 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 +010012293 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012294 void *b;
12295 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012296 (a = (asdl_expr_seq*)_gather_106_rule(p)) // ','.(starred_expression | named_expression !'=')+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012297 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012298 (b = _tmp_108_rule(p), 1) // [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012299 )
12300 {
Pablo Galindo4a97b152020-09-02 17:44:19 +010012301 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 +010012302 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12303 if (_token == NULL) {
12304 D(p->level--);
12305 return NULL;
12306 }
12307 int _end_lineno = _token->end_lineno;
12308 UNUSED(_end_lineno); // Only used by EXTRA macro
12309 int _end_col_offset = _token->end_col_offset;
12310 UNUSED(_end_col_offset); // Only used by EXTRA macro
12311 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012312 if (_res == NULL && PyErr_Occurred()) {
12313 p->error_indicator = 1;
12314 D(p->level--);
12315 return NULL;
12316 }
12317 goto done;
12318 }
12319 p->mark = _mark;
12320 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010012321 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012322 }
12323 { // kwargs
12324 if (p->error_indicator) {
12325 D(p->level--);
12326 return NULL;
12327 }
12328 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
12329 asdl_seq* a;
12330 if (
12331 (a = kwargs_rule(p)) // kwargs
12332 )
12333 {
12334 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
12335 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12336 if (_token == NULL) {
12337 D(p->level--);
12338 return NULL;
12339 }
12340 int _end_lineno = _token->end_lineno;
12341 UNUSED(_end_lineno); // Only used by EXTRA macro
12342 int _end_col_offset = _token->end_col_offset;
12343 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012344 _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 +010012345 if (_res == NULL && PyErr_Occurred()) {
12346 p->error_indicator = 1;
12347 D(p->level--);
12348 return NULL;
12349 }
12350 goto done;
12351 }
12352 p->mark = _mark;
12353 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
12354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
12355 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012356 _res = NULL;
12357 done:
12358 D(p->level--);
12359 return _res;
12360}
12361
12362// kwargs:
12363// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
12364// | ','.kwarg_or_starred+
12365// | ','.kwarg_or_double_starred+
12366static asdl_seq*
12367kwargs_rule(Parser *p)
12368{
12369 D(p->level++);
12370 if (p->error_indicator) {
12371 D(p->level--);
12372 return NULL;
12373 }
12374 asdl_seq* _res = NULL;
12375 int _mark = p->mark;
12376 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
12377 if (p->error_indicator) {
12378 D(p->level--);
12379 return NULL;
12380 }
12381 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
12382 Token * _literal;
12383 asdl_seq * a;
12384 asdl_seq * b;
12385 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012386 (a = _gather_109_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012387 &&
12388 (_literal = _PyPegen_expect_token(p, 12)) // token=','
12389 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012390 (b = _gather_111_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012391 )
12392 {
12393 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
12394 _res = _PyPegen_join_sequences ( p , a , b );
12395 if (_res == NULL && PyErr_Occurred()) {
12396 p->error_indicator = 1;
12397 D(p->level--);
12398 return NULL;
12399 }
12400 goto done;
12401 }
12402 p->mark = _mark;
12403 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
12405 }
12406 { // ','.kwarg_or_starred+
12407 if (p->error_indicator) {
12408 D(p->level--);
12409 return NULL;
12410 }
12411 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012412 asdl_seq * _gather_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012413 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012414 (_gather_113_var = _gather_113_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012415 )
12416 {
12417 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012418 _res = _gather_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012419 goto done;
12420 }
12421 p->mark = _mark;
12422 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12423 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
12424 }
12425 { // ','.kwarg_or_double_starred+
12426 if (p->error_indicator) {
12427 D(p->level--);
12428 return NULL;
12429 }
12430 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012431 asdl_seq * _gather_115_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012432 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012433 (_gather_115_var = _gather_115_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012434 )
12435 {
12436 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012437 _res = _gather_115_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012438 goto done;
12439 }
12440 p->mark = _mark;
12441 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12442 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
12443 }
12444 _res = NULL;
12445 done:
12446 D(p->level--);
12447 return _res;
12448}
12449
12450// starred_expression: '*' expression
12451static expr_ty
12452starred_expression_rule(Parser *p)
12453{
12454 D(p->level++);
12455 if (p->error_indicator) {
12456 D(p->level--);
12457 return NULL;
12458 }
12459 expr_ty _res = NULL;
12460 int _mark = p->mark;
12461 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12462 p->error_indicator = 1;
12463 D(p->level--);
12464 return NULL;
12465 }
12466 int _start_lineno = p->tokens[_mark]->lineno;
12467 UNUSED(_start_lineno); // Only used by EXTRA macro
12468 int _start_col_offset = p->tokens[_mark]->col_offset;
12469 UNUSED(_start_col_offset); // Only used by EXTRA macro
12470 { // '*' expression
12471 if (p->error_indicator) {
12472 D(p->level--);
12473 return NULL;
12474 }
12475 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
12476 Token * _literal;
12477 expr_ty a;
12478 if (
12479 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
12480 &&
12481 (a = expression_rule(p)) // expression
12482 )
12483 {
12484 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
12485 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12486 if (_token == NULL) {
12487 D(p->level--);
12488 return NULL;
12489 }
12490 int _end_lineno = _token->end_lineno;
12491 UNUSED(_end_lineno); // Only used by EXTRA macro
12492 int _end_col_offset = _token->end_col_offset;
12493 UNUSED(_end_col_offset); // Only used by EXTRA macro
12494 _res = _Py_Starred ( a , Load , EXTRA );
12495 if (_res == NULL && PyErr_Occurred()) {
12496 p->error_indicator = 1;
12497 D(p->level--);
12498 return NULL;
12499 }
12500 goto done;
12501 }
12502 p->mark = _mark;
12503 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
12504 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
12505 }
12506 _res = NULL;
12507 done:
12508 D(p->level--);
12509 return _res;
12510}
12511
12512// kwarg_or_starred: NAME '=' expression | starred_expression | invalid_kwarg
12513static KeywordOrStarred*
12514kwarg_or_starred_rule(Parser *p)
12515{
12516 D(p->level++);
12517 if (p->error_indicator) {
12518 D(p->level--);
12519 return NULL;
12520 }
12521 KeywordOrStarred* _res = NULL;
12522 int _mark = p->mark;
12523 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12524 p->error_indicator = 1;
12525 D(p->level--);
12526 return NULL;
12527 }
12528 int _start_lineno = p->tokens[_mark]->lineno;
12529 UNUSED(_start_lineno); // Only used by EXTRA macro
12530 int _start_col_offset = p->tokens[_mark]->col_offset;
12531 UNUSED(_start_col_offset); // Only used by EXTRA macro
12532 { // NAME '=' expression
12533 if (p->error_indicator) {
12534 D(p->level--);
12535 return NULL;
12536 }
12537 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
12538 Token * _literal;
12539 expr_ty a;
12540 expr_ty b;
12541 if (
12542 (a = _PyPegen_name_token(p)) // NAME
12543 &&
12544 (_literal = _PyPegen_expect_token(p, 22)) // token='='
12545 &&
12546 (b = expression_rule(p)) // expression
12547 )
12548 {
12549 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
12550 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12551 if (_token == NULL) {
12552 D(p->level--);
12553 return NULL;
12554 }
12555 int _end_lineno = _token->end_lineno;
12556 UNUSED(_end_lineno); // Only used by EXTRA macro
12557 int _end_col_offset = _token->end_col_offset;
12558 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012559 _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 +010012560 if (_res == NULL && PyErr_Occurred()) {
12561 p->error_indicator = 1;
12562 D(p->level--);
12563 return NULL;
12564 }
12565 goto done;
12566 }
12567 p->mark = _mark;
12568 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12569 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
12570 }
12571 { // starred_expression
12572 if (p->error_indicator) {
12573 D(p->level--);
12574 return NULL;
12575 }
12576 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
12577 expr_ty a;
12578 if (
12579 (a = starred_expression_rule(p)) // starred_expression
12580 )
12581 {
12582 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
12583 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
12584 if (_res == NULL && PyErr_Occurred()) {
12585 p->error_indicator = 1;
12586 D(p->level--);
12587 return NULL;
12588 }
12589 goto done;
12590 }
12591 p->mark = _mark;
12592 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12593 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
12594 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012595 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012596 if (p->error_indicator) {
12597 D(p->level--);
12598 return NULL;
12599 }
12600 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
12601 void *invalid_kwarg_var;
12602 if (
12603 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
12604 )
12605 {
12606 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
12607 _res = invalid_kwarg_var;
12608 goto done;
12609 }
12610 p->mark = _mark;
12611 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12612 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
12613 }
12614 _res = NULL;
12615 done:
12616 D(p->level--);
12617 return _res;
12618}
12619
12620// kwarg_or_double_starred: NAME '=' expression | '**' expression | invalid_kwarg
12621static KeywordOrStarred*
12622kwarg_or_double_starred_rule(Parser *p)
12623{
12624 D(p->level++);
12625 if (p->error_indicator) {
12626 D(p->level--);
12627 return NULL;
12628 }
12629 KeywordOrStarred* _res = NULL;
12630 int _mark = p->mark;
12631 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12632 p->error_indicator = 1;
12633 D(p->level--);
12634 return NULL;
12635 }
12636 int _start_lineno = p->tokens[_mark]->lineno;
12637 UNUSED(_start_lineno); // Only used by EXTRA macro
12638 int _start_col_offset = p->tokens[_mark]->col_offset;
12639 UNUSED(_start_col_offset); // Only used by EXTRA macro
12640 { // NAME '=' expression
12641 if (p->error_indicator) {
12642 D(p->level--);
12643 return NULL;
12644 }
12645 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
12646 Token * _literal;
12647 expr_ty a;
12648 expr_ty b;
12649 if (
12650 (a = _PyPegen_name_token(p)) // NAME
12651 &&
12652 (_literal = _PyPegen_expect_token(p, 22)) // token='='
12653 &&
12654 (b = expression_rule(p)) // expression
12655 )
12656 {
12657 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
12658 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12659 if (_token == NULL) {
12660 D(p->level--);
12661 return NULL;
12662 }
12663 int _end_lineno = _token->end_lineno;
12664 UNUSED(_end_lineno); // Only used by EXTRA macro
12665 int _end_col_offset = _token->end_col_offset;
12666 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012667 _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 +010012668 if (_res == NULL && PyErr_Occurred()) {
12669 p->error_indicator = 1;
12670 D(p->level--);
12671 return NULL;
12672 }
12673 goto done;
12674 }
12675 p->mark = _mark;
12676 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
12678 }
12679 { // '**' expression
12680 if (p->error_indicator) {
12681 D(p->level--);
12682 return NULL;
12683 }
12684 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
12685 Token * _literal;
12686 expr_ty a;
12687 if (
12688 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
12689 &&
12690 (a = expression_rule(p)) // expression
12691 )
12692 {
12693 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
12694 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12695 if (_token == NULL) {
12696 D(p->level--);
12697 return NULL;
12698 }
12699 int _end_lineno = _token->end_lineno;
12700 UNUSED(_end_lineno); // Only used by EXTRA macro
12701 int _end_col_offset = _token->end_col_offset;
12702 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012703 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _Py_keyword ( NULL , a , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012704 if (_res == NULL && PyErr_Occurred()) {
12705 p->error_indicator = 1;
12706 D(p->level--);
12707 return NULL;
12708 }
12709 goto done;
12710 }
12711 p->mark = _mark;
12712 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12713 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
12714 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012715 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012716 if (p->error_indicator) {
12717 D(p->level--);
12718 return NULL;
12719 }
12720 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
12721 void *invalid_kwarg_var;
12722 if (
12723 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
12724 )
12725 {
12726 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
12727 _res = invalid_kwarg_var;
12728 goto done;
12729 }
12730 p->mark = _mark;
12731 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12732 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
12733 }
12734 _res = NULL;
12735 done:
12736 D(p->level--);
12737 return _res;
12738}
12739
12740// star_targets: star_target !',' | star_target ((',' star_target))* ','?
12741static expr_ty
12742star_targets_rule(Parser *p)
12743{
12744 D(p->level++);
12745 if (p->error_indicator) {
12746 D(p->level--);
12747 return NULL;
12748 }
12749 expr_ty _res = NULL;
12750 int _mark = p->mark;
12751 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12752 p->error_indicator = 1;
12753 D(p->level--);
12754 return NULL;
12755 }
12756 int _start_lineno = p->tokens[_mark]->lineno;
12757 UNUSED(_start_lineno); // Only used by EXTRA macro
12758 int _start_col_offset = p->tokens[_mark]->col_offset;
12759 UNUSED(_start_col_offset); // Only used by EXTRA macro
12760 { // star_target !','
12761 if (p->error_indicator) {
12762 D(p->level--);
12763 return NULL;
12764 }
12765 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
12766 expr_ty a;
12767 if (
12768 (a = star_target_rule(p)) // star_target
12769 &&
12770 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
12771 )
12772 {
12773 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
12774 _res = a;
12775 if (_res == NULL && PyErr_Occurred()) {
12776 p->error_indicator = 1;
12777 D(p->level--);
12778 return NULL;
12779 }
12780 goto done;
12781 }
12782 p->mark = _mark;
12783 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
12784 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
12785 }
12786 { // star_target ((',' star_target))* ','?
12787 if (p->error_indicator) {
12788 D(p->level--);
12789 return NULL;
12790 }
12791 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
12792 void *_opt_var;
12793 UNUSED(_opt_var); // Silence compiler warnings
12794 expr_ty a;
12795 asdl_seq * b;
12796 if (
12797 (a = star_target_rule(p)) // star_target
12798 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012799 (b = _loop0_117_rule(p)) // ((',' star_target))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012800 &&
12801 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
12802 )
12803 {
12804 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
12805 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12806 if (_token == NULL) {
12807 D(p->level--);
12808 return NULL;
12809 }
12810 int _end_lineno = _token->end_lineno;
12811 UNUSED(_end_lineno); // Only used by EXTRA macro
12812 int _end_col_offset = _token->end_col_offset;
12813 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012814 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012815 if (_res == NULL && PyErr_Occurred()) {
12816 p->error_indicator = 1;
12817 D(p->level--);
12818 return NULL;
12819 }
12820 goto done;
12821 }
12822 p->mark = _mark;
12823 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
12824 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
12825 }
12826 _res = NULL;
12827 done:
12828 D(p->level--);
12829 return _res;
12830}
12831
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012832// star_targets_list_seq: ','.star_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010012833static asdl_expr_seq*
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012834star_targets_list_seq_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012835{
12836 D(p->level++);
12837 if (p->error_indicator) {
12838 D(p->level--);
12839 return NULL;
12840 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010012841 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012842 int _mark = p->mark;
12843 { // ','.star_target+ ','?
12844 if (p->error_indicator) {
12845 D(p->level--);
12846 return NULL;
12847 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012848 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 +010012849 void *_opt_var;
12850 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010012851 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012852 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012853 (a = (asdl_expr_seq*)_gather_118_rule(p)) // ','.star_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012854 &&
12855 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
12856 )
12857 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012858 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 +010012859 _res = a;
12860 if (_res == NULL && PyErr_Occurred()) {
12861 p->error_indicator = 1;
12862 D(p->level--);
12863 return NULL;
12864 }
12865 goto done;
12866 }
12867 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012868 D(fprintf(stderr, "%*c%s star_targets_list_seq[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012869 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
12870 }
12871 _res = NULL;
12872 done:
12873 D(p->level--);
12874 return _res;
12875}
12876
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012877// star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
12878static asdl_expr_seq*
12879star_targets_tuple_seq_rule(Parser *p)
12880{
12881 D(p->level++);
12882 if (p->error_indicator) {
12883 D(p->level--);
12884 return NULL;
12885 }
12886 asdl_expr_seq* _res = NULL;
12887 int _mark = p->mark;
12888 { // star_target ((',' star_target))+ ','?
12889 if (p->error_indicator) {
12890 D(p->level--);
12891 return NULL;
12892 }
12893 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
12894 void *_opt_var;
12895 UNUSED(_opt_var); // Silence compiler warnings
12896 expr_ty a;
12897 asdl_seq * b;
12898 if (
12899 (a = star_target_rule(p)) // star_target
12900 &&
12901 (b = _loop1_120_rule(p)) // ((',' star_target))+
12902 &&
12903 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
12904 )
12905 {
12906 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
12907 _res = ( asdl_expr_seq * ) _PyPegen_seq_insert_in_front ( p , a , b );
12908 if (_res == NULL && PyErr_Occurred()) {
12909 p->error_indicator = 1;
12910 D(p->level--);
12911 return NULL;
12912 }
12913 goto done;
12914 }
12915 p->mark = _mark;
12916 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
12917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))+ ','?"));
12918 }
12919 { // star_target ','
12920 if (p->error_indicator) {
12921 D(p->level--);
12922 return NULL;
12923 }
12924 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ','"));
12925 Token * _literal;
12926 expr_ty a;
12927 if (
12928 (a = star_target_rule(p)) // star_target
12929 &&
12930 (_literal = _PyPegen_expect_token(p, 12)) // token=','
12931 )
12932 {
12933 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
12934 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
12935 if (_res == NULL && PyErr_Occurred()) {
12936 p->error_indicator = 1;
12937 D(p->level--);
12938 return NULL;
12939 }
12940 goto done;
12941 }
12942 p->mark = _mark;
12943 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
12944 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ','"));
12945 }
12946 _res = NULL;
12947 done:
12948 D(p->level--);
12949 return _res;
12950}
12951
12952// star_target: '*' (!'*' star_target) | target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012953static expr_ty
12954star_target_rule(Parser *p)
12955{
12956 D(p->level++);
12957 if (p->error_indicator) {
12958 D(p->level--);
12959 return NULL;
12960 }
12961 expr_ty _res = NULL;
12962 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
12963 D(p->level--);
12964 return _res;
12965 }
12966 int _mark = p->mark;
12967 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12968 p->error_indicator = 1;
12969 D(p->level--);
12970 return NULL;
12971 }
12972 int _start_lineno = p->tokens[_mark]->lineno;
12973 UNUSED(_start_lineno); // Only used by EXTRA macro
12974 int _start_col_offset = p->tokens[_mark]->col_offset;
12975 UNUSED(_start_col_offset); // Only used by EXTRA macro
12976 { // '*' (!'*' star_target)
12977 if (p->error_indicator) {
12978 D(p->level--);
12979 return NULL;
12980 }
12981 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
12982 Token * _literal;
12983 void *a;
12984 if (
12985 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
12986 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012987 (a = _tmp_121_rule(p)) // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012988 )
12989 {
12990 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
12991 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12992 if (_token == NULL) {
12993 D(p->level--);
12994 return NULL;
12995 }
12996 int _end_lineno = _token->end_lineno;
12997 UNUSED(_end_lineno); // Only used by EXTRA macro
12998 int _end_col_offset = _token->end_col_offset;
12999 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030013000 _res = _Py_Starred ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013001 if (_res == NULL && PyErr_Occurred()) {
13002 p->error_indicator = 1;
13003 D(p->level--);
13004 return NULL;
13005 }
13006 goto done;
13007 }
13008 p->mark = _mark;
13009 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
13010 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
13011 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013012 { // target_with_star_atom
13013 if (p->error_indicator) {
13014 D(p->level--);
13015 return NULL;
13016 }
13017 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
13018 expr_ty target_with_star_atom_var;
13019 if (
13020 (target_with_star_atom_var = target_with_star_atom_rule(p)) // target_with_star_atom
13021 )
13022 {
13023 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
13024 _res = target_with_star_atom_var;
13025 goto done;
13026 }
13027 p->mark = _mark;
13028 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
13029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_with_star_atom"));
13030 }
13031 _res = NULL;
13032 done:
13033 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
13034 D(p->level--);
13035 return _res;
13036}
13037
13038// target_with_star_atom:
13039// | t_primary '.' NAME !t_lookahead
13040// | t_primary '[' slices ']' !t_lookahead
13041// | star_atom
13042static expr_ty
13043target_with_star_atom_rule(Parser *p)
13044{
13045 D(p->level++);
13046 if (p->error_indicator) {
13047 D(p->level--);
13048 return NULL;
13049 }
13050 expr_ty _res = NULL;
13051 if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
13052 D(p->level--);
13053 return _res;
13054 }
13055 int _mark = p->mark;
13056 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13057 p->error_indicator = 1;
13058 D(p->level--);
13059 return NULL;
13060 }
13061 int _start_lineno = p->tokens[_mark]->lineno;
13062 UNUSED(_start_lineno); // Only used by EXTRA macro
13063 int _start_col_offset = p->tokens[_mark]->col_offset;
13064 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013065 { // t_primary '.' NAME !t_lookahead
13066 if (p->error_indicator) {
13067 D(p->level--);
13068 return NULL;
13069 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013070 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 +010013071 Token * _literal;
13072 expr_ty a;
13073 expr_ty b;
13074 if (
13075 (a = t_primary_rule(p)) // t_primary
13076 &&
13077 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13078 &&
13079 (b = _PyPegen_name_token(p)) // NAME
13080 &&
13081 _PyPegen_lookahead(0, t_lookahead_rule, p)
13082 )
13083 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013084 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 +010013085 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_Attribute ( a , b -> v . Name . id , Store , 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;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013103 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013104 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13105 }
13106 { // t_primary '[' slices ']' !t_lookahead
13107 if (p->error_indicator) {
13108 D(p->level--);
13109 return NULL;
13110 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013111 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 +010013112 Token * _literal;
13113 Token * _literal_1;
13114 expr_ty a;
13115 expr_ty b;
13116 if (
13117 (a = t_primary_rule(p)) // t_primary
13118 &&
13119 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13120 &&
13121 (b = slices_rule(p)) // slices
13122 &&
13123 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13124 &&
13125 _PyPegen_lookahead(0, t_lookahead_rule, p)
13126 )
13127 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013128 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 +010013129 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13130 if (_token == NULL) {
13131 D(p->level--);
13132 return NULL;
13133 }
13134 int _end_lineno = _token->end_lineno;
13135 UNUSED(_end_lineno); // Only used by EXTRA macro
13136 int _end_col_offset = _token->end_col_offset;
13137 UNUSED(_end_col_offset); // Only used by EXTRA macro
13138 _res = _Py_Subscript ( a , b , Store , EXTRA );
13139 if (_res == NULL && PyErr_Occurred()) {
13140 p->error_indicator = 1;
13141 D(p->level--);
13142 return NULL;
13143 }
13144 goto done;
13145 }
13146 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013147 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13149 }
13150 { // star_atom
13151 if (p->error_indicator) {
13152 D(p->level--);
13153 return NULL;
13154 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013155 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 +010013156 expr_ty star_atom_var;
13157 if (
13158 (star_atom_var = star_atom_rule(p)) // star_atom
13159 )
13160 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013161 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 +010013162 _res = star_atom_var;
13163 goto done;
13164 }
13165 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013166 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013167 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
13168 }
13169 _res = NULL;
13170 done:
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013171 _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013172 D(p->level--);
13173 return _res;
13174}
13175
13176// star_atom:
13177// | NAME
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013178// | '(' target_with_star_atom ')'
13179// | '(' star_targets_tuple_seq? ')'
13180// | '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013181static expr_ty
13182star_atom_rule(Parser *p)
13183{
13184 D(p->level++);
13185 if (p->error_indicator) {
13186 D(p->level--);
13187 return NULL;
13188 }
13189 expr_ty _res = NULL;
13190 int _mark = p->mark;
13191 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13192 p->error_indicator = 1;
13193 D(p->level--);
13194 return NULL;
13195 }
13196 int _start_lineno = p->tokens[_mark]->lineno;
13197 UNUSED(_start_lineno); // Only used by EXTRA macro
13198 int _start_col_offset = p->tokens[_mark]->col_offset;
13199 UNUSED(_start_col_offset); // Only used by EXTRA macro
13200 { // NAME
13201 if (p->error_indicator) {
13202 D(p->level--);
13203 return NULL;
13204 }
13205 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
13206 expr_ty a;
13207 if (
13208 (a = _PyPegen_name_token(p)) // NAME
13209 )
13210 {
13211 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
13212 _res = _PyPegen_set_expr_context ( p , a , Store );
13213 if (_res == NULL && PyErr_Occurred()) {
13214 p->error_indicator = 1;
13215 D(p->level--);
13216 return NULL;
13217 }
13218 goto done;
13219 }
13220 p->mark = _mark;
13221 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13222 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
13223 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013224 { // '(' target_with_star_atom ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013225 if (p->error_indicator) {
13226 D(p->level--);
13227 return NULL;
13228 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013229 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 +010013230 Token * _literal;
13231 Token * _literal_1;
13232 expr_ty a;
13233 if (
13234 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13235 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013236 (a = target_with_star_atom_rule(p)) // target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013237 &&
13238 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13239 )
13240 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013241 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 +010013242 _res = _PyPegen_set_expr_context ( p , a , Store );
13243 if (_res == NULL && PyErr_Occurred()) {
13244 p->error_indicator = 1;
13245 D(p->level--);
13246 return NULL;
13247 }
13248 goto done;
13249 }
13250 p->mark = _mark;
13251 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013252 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013253 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013254 { // '(' star_targets_tuple_seq? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013255 if (p->error_indicator) {
13256 D(p->level--);
13257 return NULL;
13258 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013259 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 +010013260 Token * _literal;
13261 Token * _literal_1;
13262 void *a;
13263 if (
13264 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13265 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013266 (a = star_targets_tuple_seq_rule(p), 1) // star_targets_tuple_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013267 &&
13268 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13269 )
13270 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013271 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 +010013272 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13273 if (_token == NULL) {
13274 D(p->level--);
13275 return NULL;
13276 }
13277 int _end_lineno = _token->end_lineno;
13278 UNUSED(_end_lineno); // Only used by EXTRA macro
13279 int _end_col_offset = _token->end_col_offset;
13280 UNUSED(_end_col_offset); // Only used by EXTRA macro
13281 _res = _Py_Tuple ( a , Store , EXTRA );
13282 if (_res == NULL && PyErr_Occurred()) {
13283 p->error_indicator = 1;
13284 D(p->level--);
13285 return NULL;
13286 }
13287 goto done;
13288 }
13289 p->mark = _mark;
13290 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013291 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013292 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013293 { // '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013294 if (p->error_indicator) {
13295 D(p->level--);
13296 return NULL;
13297 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013298 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 +010013299 Token * _literal;
13300 Token * _literal_1;
13301 void *a;
13302 if (
13303 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13304 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013305 (a = star_targets_list_seq_rule(p), 1) // star_targets_list_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013306 &&
13307 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13308 )
13309 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013310 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 +010013311 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13312 if (_token == NULL) {
13313 D(p->level--);
13314 return NULL;
13315 }
13316 int _end_lineno = _token->end_lineno;
13317 UNUSED(_end_lineno); // Only used by EXTRA macro
13318 int _end_col_offset = _token->end_col_offset;
13319 UNUSED(_end_col_offset); // Only used by EXTRA macro
13320 _res = _Py_List ( a , Store , EXTRA );
13321 if (_res == NULL && PyErr_Occurred()) {
13322 p->error_indicator = 1;
13323 D(p->level--);
13324 return NULL;
13325 }
13326 goto done;
13327 }
13328 p->mark = _mark;
13329 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013330 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013331 }
13332 _res = NULL;
13333 done:
13334 D(p->level--);
13335 return _res;
13336}
13337
13338// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
13339static expr_ty
13340single_target_rule(Parser *p)
13341{
13342 D(p->level++);
13343 if (p->error_indicator) {
13344 D(p->level--);
13345 return NULL;
13346 }
13347 expr_ty _res = NULL;
13348 int _mark = p->mark;
13349 { // single_subscript_attribute_target
13350 if (p->error_indicator) {
13351 D(p->level--);
13352 return NULL;
13353 }
13354 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
13355 expr_ty single_subscript_attribute_target_var;
13356 if (
13357 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
13358 )
13359 {
13360 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
13361 _res = single_subscript_attribute_target_var;
13362 goto done;
13363 }
13364 p->mark = _mark;
13365 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13366 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
13367 }
13368 { // NAME
13369 if (p->error_indicator) {
13370 D(p->level--);
13371 return NULL;
13372 }
13373 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
13374 expr_ty a;
13375 if (
13376 (a = _PyPegen_name_token(p)) // NAME
13377 )
13378 {
13379 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
13380 _res = _PyPegen_set_expr_context ( p , a , Store );
13381 if (_res == NULL && PyErr_Occurred()) {
13382 p->error_indicator = 1;
13383 D(p->level--);
13384 return NULL;
13385 }
13386 goto done;
13387 }
13388 p->mark = _mark;
13389 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13390 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
13391 }
13392 { // '(' single_target ')'
13393 if (p->error_indicator) {
13394 D(p->level--);
13395 return NULL;
13396 }
13397 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
13398 Token * _literal;
13399 Token * _literal_1;
13400 expr_ty a;
13401 if (
13402 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13403 &&
13404 (a = single_target_rule(p)) // single_target
13405 &&
13406 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13407 )
13408 {
13409 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
13410 _res = a;
13411 if (_res == NULL && PyErr_Occurred()) {
13412 p->error_indicator = 1;
13413 D(p->level--);
13414 return NULL;
13415 }
13416 goto done;
13417 }
13418 p->mark = _mark;
13419 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13420 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
13421 }
13422 _res = NULL;
13423 done:
13424 D(p->level--);
13425 return _res;
13426}
13427
13428// single_subscript_attribute_target:
13429// | t_primary '.' NAME !t_lookahead
13430// | t_primary '[' slices ']' !t_lookahead
13431static expr_ty
13432single_subscript_attribute_target_rule(Parser *p)
13433{
13434 D(p->level++);
13435 if (p->error_indicator) {
13436 D(p->level--);
13437 return NULL;
13438 }
13439 expr_ty _res = NULL;
13440 int _mark = p->mark;
13441 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13442 p->error_indicator = 1;
13443 D(p->level--);
13444 return NULL;
13445 }
13446 int _start_lineno = p->tokens[_mark]->lineno;
13447 UNUSED(_start_lineno); // Only used by EXTRA macro
13448 int _start_col_offset = p->tokens[_mark]->col_offset;
13449 UNUSED(_start_col_offset); // Only used by EXTRA macro
13450 { // t_primary '.' NAME !t_lookahead
13451 if (p->error_indicator) {
13452 D(p->level--);
13453 return NULL;
13454 }
13455 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13456 Token * _literal;
13457 expr_ty a;
13458 expr_ty b;
13459 if (
13460 (a = t_primary_rule(p)) // t_primary
13461 &&
13462 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13463 &&
13464 (b = _PyPegen_name_token(p)) // NAME
13465 &&
13466 _PyPegen_lookahead(0, t_lookahead_rule, p)
13467 )
13468 {
13469 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13470 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13471 if (_token == NULL) {
13472 D(p->level--);
13473 return NULL;
13474 }
13475 int _end_lineno = _token->end_lineno;
13476 UNUSED(_end_lineno); // Only used by EXTRA macro
13477 int _end_col_offset = _token->end_col_offset;
13478 UNUSED(_end_col_offset); // Only used by EXTRA macro
13479 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13480 if (_res == NULL && PyErr_Occurred()) {
13481 p->error_indicator = 1;
13482 D(p->level--);
13483 return NULL;
13484 }
13485 goto done;
13486 }
13487 p->mark = _mark;
13488 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
13489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13490 }
13491 { // t_primary '[' slices ']' !t_lookahead
13492 if (p->error_indicator) {
13493 D(p->level--);
13494 return NULL;
13495 }
13496 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13497 Token * _literal;
13498 Token * _literal_1;
13499 expr_ty a;
13500 expr_ty b;
13501 if (
13502 (a = t_primary_rule(p)) // t_primary
13503 &&
13504 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13505 &&
13506 (b = slices_rule(p)) // slices
13507 &&
13508 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13509 &&
13510 _PyPegen_lookahead(0, t_lookahead_rule, p)
13511 )
13512 {
13513 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13514 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13515 if (_token == NULL) {
13516 D(p->level--);
13517 return NULL;
13518 }
13519 int _end_lineno = _token->end_lineno;
13520 UNUSED(_end_lineno); // Only used by EXTRA macro
13521 int _end_col_offset = _token->end_col_offset;
13522 UNUSED(_end_col_offset); // Only used by EXTRA macro
13523 _res = _Py_Subscript ( a , b , Store , EXTRA );
13524 if (_res == NULL && PyErr_Occurred()) {
13525 p->error_indicator = 1;
13526 D(p->level--);
13527 return NULL;
13528 }
13529 goto done;
13530 }
13531 p->mark = _mark;
13532 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
13533 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13534 }
13535 _res = NULL;
13536 done:
13537 D(p->level--);
13538 return _res;
13539}
13540
13541// del_targets: ','.del_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010013542static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013543del_targets_rule(Parser *p)
13544{
13545 D(p->level++);
13546 if (p->error_indicator) {
13547 D(p->level--);
13548 return NULL;
13549 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010013550 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013551 int _mark = p->mark;
13552 { // ','.del_target+ ','?
13553 if (p->error_indicator) {
13554 D(p->level--);
13555 return NULL;
13556 }
13557 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
13558 void *_opt_var;
13559 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010013560 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013561 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013562 (a = (asdl_expr_seq*)_gather_122_rule(p)) // ','.del_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013563 &&
13564 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
13565 )
13566 {
13567 D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
13568 _res = a;
13569 if (_res == NULL && PyErr_Occurred()) {
13570 p->error_indicator = 1;
13571 D(p->level--);
13572 return NULL;
13573 }
13574 goto done;
13575 }
13576 p->mark = _mark;
13577 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
13578 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
13579 }
13580 _res = NULL;
13581 done:
13582 D(p->level--);
13583 return _res;
13584}
13585
13586// del_target:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013587// | t_primary '.' NAME !t_lookahead
13588// | t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013589// | del_t_atom
13590static expr_ty
13591del_target_rule(Parser *p)
13592{
13593 D(p->level++);
13594 if (p->error_indicator) {
13595 D(p->level--);
13596 return NULL;
13597 }
13598 expr_ty _res = NULL;
13599 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
13600 D(p->level--);
13601 return _res;
13602 }
13603 int _mark = p->mark;
13604 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13605 p->error_indicator = 1;
13606 D(p->level--);
13607 return NULL;
13608 }
13609 int _start_lineno = p->tokens[_mark]->lineno;
13610 UNUSED(_start_lineno); // Only used by EXTRA macro
13611 int _start_col_offset = p->tokens[_mark]->col_offset;
13612 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013613 { // t_primary '.' NAME !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013614 if (p->error_indicator) {
13615 D(p->level--);
13616 return NULL;
13617 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013618 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 +010013619 Token * _literal;
13620 expr_ty a;
13621 expr_ty b;
13622 if (
13623 (a = t_primary_rule(p)) // t_primary
13624 &&
13625 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13626 &&
13627 (b = _PyPegen_name_token(p)) // NAME
13628 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013629 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013630 )
13631 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013632 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 +010013633 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13634 if (_token == NULL) {
13635 D(p->level--);
13636 return NULL;
13637 }
13638 int _end_lineno = _token->end_lineno;
13639 UNUSED(_end_lineno); // Only used by EXTRA macro
13640 int _end_col_offset = _token->end_col_offset;
13641 UNUSED(_end_col_offset); // Only used by EXTRA macro
13642 _res = _Py_Attribute ( a , b -> v . Name . id , Del , EXTRA );
13643 if (_res == NULL && PyErr_Occurred()) {
13644 p->error_indicator = 1;
13645 D(p->level--);
13646 return NULL;
13647 }
13648 goto done;
13649 }
13650 p->mark = _mark;
13651 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013652 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013653 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013654 { // t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013655 if (p->error_indicator) {
13656 D(p->level--);
13657 return NULL;
13658 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013659 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 +010013660 Token * _literal;
13661 Token * _literal_1;
13662 expr_ty a;
13663 expr_ty b;
13664 if (
13665 (a = t_primary_rule(p)) // t_primary
13666 &&
13667 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13668 &&
13669 (b = slices_rule(p)) // slices
13670 &&
13671 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13672 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013673 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013674 )
13675 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013676 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 +010013677 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13678 if (_token == NULL) {
13679 D(p->level--);
13680 return NULL;
13681 }
13682 int _end_lineno = _token->end_lineno;
13683 UNUSED(_end_lineno); // Only used by EXTRA macro
13684 int _end_col_offset = _token->end_col_offset;
13685 UNUSED(_end_col_offset); // Only used by EXTRA macro
13686 _res = _Py_Subscript ( a , b , Del , EXTRA );
13687 if (_res == NULL && PyErr_Occurred()) {
13688 p->error_indicator = 1;
13689 D(p->level--);
13690 return NULL;
13691 }
13692 goto done;
13693 }
13694 p->mark = _mark;
13695 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013696 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013697 }
13698 { // del_t_atom
13699 if (p->error_indicator) {
13700 D(p->level--);
13701 return NULL;
13702 }
13703 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
13704 expr_ty del_t_atom_var;
13705 if (
13706 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
13707 )
13708 {
13709 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
13710 _res = del_t_atom_var;
13711 goto done;
13712 }
13713 p->mark = _mark;
13714 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
13715 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
13716 }
13717 _res = NULL;
13718 done:
13719 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
13720 D(p->level--);
13721 return _res;
13722}
13723
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013724// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013725static expr_ty
13726del_t_atom_rule(Parser *p)
13727{
13728 D(p->level++);
13729 if (p->error_indicator) {
13730 D(p->level--);
13731 return NULL;
13732 }
13733 expr_ty _res = NULL;
13734 int _mark = p->mark;
13735 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13736 p->error_indicator = 1;
13737 D(p->level--);
13738 return NULL;
13739 }
13740 int _start_lineno = p->tokens[_mark]->lineno;
13741 UNUSED(_start_lineno); // Only used by EXTRA macro
13742 int _start_col_offset = p->tokens[_mark]->col_offset;
13743 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013744 { // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013745 if (p->error_indicator) {
13746 D(p->level--);
13747 return NULL;
13748 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013749 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013750 expr_ty a;
13751 if (
13752 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013753 )
13754 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013755 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 +010013756 _res = _PyPegen_set_expr_context ( p , a , Del );
13757 if (_res == NULL && PyErr_Occurred()) {
13758 p->error_indicator = 1;
13759 D(p->level--);
13760 return NULL;
13761 }
13762 goto done;
13763 }
13764 p->mark = _mark;
13765 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013766 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013767 }
13768 { // '(' del_target ')'
13769 if (p->error_indicator) {
13770 D(p->level--);
13771 return NULL;
13772 }
13773 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
13774 Token * _literal;
13775 Token * _literal_1;
13776 expr_ty a;
13777 if (
13778 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13779 &&
13780 (a = del_target_rule(p)) // del_target
13781 &&
13782 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13783 )
13784 {
13785 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
13786 _res = _PyPegen_set_expr_context ( p , a , Del );
13787 if (_res == NULL && PyErr_Occurred()) {
13788 p->error_indicator = 1;
13789 D(p->level--);
13790 return NULL;
13791 }
13792 goto done;
13793 }
13794 p->mark = _mark;
13795 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13796 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
13797 }
13798 { // '(' del_targets? ')'
13799 if (p->error_indicator) {
13800 D(p->level--);
13801 return NULL;
13802 }
13803 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
13804 Token * _literal;
13805 Token * _literal_1;
13806 void *a;
13807 if (
13808 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13809 &&
13810 (a = del_targets_rule(p), 1) // del_targets?
13811 &&
13812 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13813 )
13814 {
13815 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
13816 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13817 if (_token == NULL) {
13818 D(p->level--);
13819 return NULL;
13820 }
13821 int _end_lineno = _token->end_lineno;
13822 UNUSED(_end_lineno); // Only used by EXTRA macro
13823 int _end_col_offset = _token->end_col_offset;
13824 UNUSED(_end_col_offset); // Only used by EXTRA macro
13825 _res = _Py_Tuple ( a , Del , EXTRA );
13826 if (_res == NULL && PyErr_Occurred()) {
13827 p->error_indicator = 1;
13828 D(p->level--);
13829 return NULL;
13830 }
13831 goto done;
13832 }
13833 p->mark = _mark;
13834 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13835 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
13836 }
13837 { // '[' del_targets? ']'
13838 if (p->error_indicator) {
13839 D(p->level--);
13840 return NULL;
13841 }
13842 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
13843 Token * _literal;
13844 Token * _literal_1;
13845 void *a;
13846 if (
13847 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13848 &&
13849 (a = del_targets_rule(p), 1) // del_targets?
13850 &&
13851 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13852 )
13853 {
13854 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
13855 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13856 if (_token == NULL) {
13857 D(p->level--);
13858 return NULL;
13859 }
13860 int _end_lineno = _token->end_lineno;
13861 UNUSED(_end_lineno); // Only used by EXTRA macro
13862 int _end_col_offset = _token->end_col_offset;
13863 UNUSED(_end_col_offset); // Only used by EXTRA macro
13864 _res = _Py_List ( a , Del , EXTRA );
13865 if (_res == NULL && PyErr_Occurred()) {
13866 p->error_indicator = 1;
13867 D(p->level--);
13868 return NULL;
13869 }
13870 goto done;
13871 }
13872 p->mark = _mark;
13873 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13874 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
13875 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013876 _res = NULL;
13877 done:
13878 D(p->level--);
13879 return _res;
13880}
13881
13882// targets: ','.target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010013883static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013884targets_rule(Parser *p)
13885{
13886 D(p->level++);
13887 if (p->error_indicator) {
13888 D(p->level--);
13889 return NULL;
13890 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010013891 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013892 int _mark = p->mark;
13893 { // ','.target+ ','?
13894 if (p->error_indicator) {
13895 D(p->level--);
13896 return NULL;
13897 }
13898 D(fprintf(stderr, "%*c> targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
13899 void *_opt_var;
13900 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010013901 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013902 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013903 (a = (asdl_expr_seq*)_gather_124_rule(p)) // ','.target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013904 &&
13905 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
13906 )
13907 {
13908 D(fprintf(stderr, "%*c+ targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
13909 _res = a;
13910 if (_res == NULL && PyErr_Occurred()) {
13911 p->error_indicator = 1;
13912 D(p->level--);
13913 return NULL;
13914 }
13915 goto done;
13916 }
13917 p->mark = _mark;
13918 D(fprintf(stderr, "%*c%s targets[%d-%d]: %s failed!\n", p->level, ' ',
13919 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.target+ ','?"));
13920 }
13921 _res = NULL;
13922 done:
13923 D(p->level--);
13924 return _res;
13925}
13926
13927// target:
13928// | t_primary '.' NAME !t_lookahead
13929// | t_primary '[' slices ']' !t_lookahead
13930// | t_atom
13931static expr_ty
13932target_rule(Parser *p)
13933{
13934 D(p->level++);
13935 if (p->error_indicator) {
13936 D(p->level--);
13937 return NULL;
13938 }
13939 expr_ty _res = NULL;
13940 if (_PyPegen_is_memoized(p, target_type, &_res)) {
13941 D(p->level--);
13942 return _res;
13943 }
13944 int _mark = p->mark;
13945 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13946 p->error_indicator = 1;
13947 D(p->level--);
13948 return NULL;
13949 }
13950 int _start_lineno = p->tokens[_mark]->lineno;
13951 UNUSED(_start_lineno); // Only used by EXTRA macro
13952 int _start_col_offset = p->tokens[_mark]->col_offset;
13953 UNUSED(_start_col_offset); // Only used by EXTRA macro
13954 { // t_primary '.' NAME !t_lookahead
13955 if (p->error_indicator) {
13956 D(p->level--);
13957 return NULL;
13958 }
13959 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13960 Token * _literal;
13961 expr_ty a;
13962 expr_ty b;
13963 if (
13964 (a = t_primary_rule(p)) // t_primary
13965 &&
13966 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13967 &&
13968 (b = _PyPegen_name_token(p)) // NAME
13969 &&
13970 _PyPegen_lookahead(0, t_lookahead_rule, p)
13971 )
13972 {
13973 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13974 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13975 if (_token == NULL) {
13976 D(p->level--);
13977 return NULL;
13978 }
13979 int _end_lineno = _token->end_lineno;
13980 UNUSED(_end_lineno); // Only used by EXTRA macro
13981 int _end_col_offset = _token->end_col_offset;
13982 UNUSED(_end_col_offset); // Only used by EXTRA macro
13983 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13984 if (_res == NULL && PyErr_Occurred()) {
13985 p->error_indicator = 1;
13986 D(p->level--);
13987 return NULL;
13988 }
13989 goto done;
13990 }
13991 p->mark = _mark;
13992 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13994 }
13995 { // t_primary '[' slices ']' !t_lookahead
13996 if (p->error_indicator) {
13997 D(p->level--);
13998 return NULL;
13999 }
14000 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
14001 Token * _literal;
14002 Token * _literal_1;
14003 expr_ty a;
14004 expr_ty b;
14005 if (
14006 (a = t_primary_rule(p)) // t_primary
14007 &&
14008 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14009 &&
14010 (b = slices_rule(p)) // slices
14011 &&
14012 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14013 &&
14014 _PyPegen_lookahead(0, t_lookahead_rule, p)
14015 )
14016 {
14017 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
14018 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14019 if (_token == NULL) {
14020 D(p->level--);
14021 return NULL;
14022 }
14023 int _end_lineno = _token->end_lineno;
14024 UNUSED(_end_lineno); // Only used by EXTRA macro
14025 int _end_col_offset = _token->end_col_offset;
14026 UNUSED(_end_col_offset); // Only used by EXTRA macro
14027 _res = _Py_Subscript ( a , b , Store , EXTRA );
14028 if (_res == NULL && PyErr_Occurred()) {
14029 p->error_indicator = 1;
14030 D(p->level--);
14031 return NULL;
14032 }
14033 goto done;
14034 }
14035 p->mark = _mark;
14036 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
14037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
14038 }
14039 { // t_atom
14040 if (p->error_indicator) {
14041 D(p->level--);
14042 return NULL;
14043 }
14044 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_atom"));
14045 expr_ty t_atom_var;
14046 if (
14047 (t_atom_var = t_atom_rule(p)) // t_atom
14048 )
14049 {
14050 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_atom"));
14051 _res = t_atom_var;
14052 goto done;
14053 }
14054 p->mark = _mark;
14055 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
14056 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_atom"));
14057 }
14058 _res = NULL;
14059 done:
14060 _PyPegen_insert_memo(p, _mark, target_type, _res);
14061 D(p->level--);
14062 return _res;
14063}
14064
14065// Left-recursive
14066// t_primary:
14067// | t_primary '.' NAME &t_lookahead
14068// | t_primary '[' slices ']' &t_lookahead
14069// | t_primary genexp &t_lookahead
14070// | t_primary '(' arguments? ')' &t_lookahead
14071// | atom &t_lookahead
14072static expr_ty t_primary_raw(Parser *);
14073static expr_ty
14074t_primary_rule(Parser *p)
14075{
14076 D(p->level++);
14077 expr_ty _res = NULL;
14078 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
14079 D(p->level--);
14080 return _res;
14081 }
14082 int _mark = p->mark;
14083 int _resmark = p->mark;
14084 while (1) {
14085 int tmpvar_8 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
14086 if (tmpvar_8) {
14087 D(p->level--);
14088 return _res;
14089 }
14090 p->mark = _mark;
14091 void *_raw = t_primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020014092 if (p->error_indicator)
14093 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014094 if (_raw == NULL || p->mark <= _resmark)
14095 break;
14096 _resmark = p->mark;
14097 _res = _raw;
14098 }
14099 p->mark = _resmark;
14100 D(p->level--);
14101 return _res;
14102}
14103static expr_ty
14104t_primary_raw(Parser *p)
14105{
14106 D(p->level++);
14107 if (p->error_indicator) {
14108 D(p->level--);
14109 return NULL;
14110 }
14111 expr_ty _res = NULL;
14112 int _mark = p->mark;
14113 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14114 p->error_indicator = 1;
14115 D(p->level--);
14116 return NULL;
14117 }
14118 int _start_lineno = p->tokens[_mark]->lineno;
14119 UNUSED(_start_lineno); // Only used by EXTRA macro
14120 int _start_col_offset = p->tokens[_mark]->col_offset;
14121 UNUSED(_start_col_offset); // Only used by EXTRA macro
14122 { // t_primary '.' NAME &t_lookahead
14123 if (p->error_indicator) {
14124 D(p->level--);
14125 return NULL;
14126 }
14127 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
14128 Token * _literal;
14129 expr_ty a;
14130 expr_ty b;
14131 if (
14132 (a = t_primary_rule(p)) // t_primary
14133 &&
14134 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
14135 &&
14136 (b = _PyPegen_name_token(p)) // NAME
14137 &&
14138 _PyPegen_lookahead(1, t_lookahead_rule, p)
14139 )
14140 {
14141 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
14142 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14143 if (_token == NULL) {
14144 D(p->level--);
14145 return NULL;
14146 }
14147 int _end_lineno = _token->end_lineno;
14148 UNUSED(_end_lineno); // Only used by EXTRA macro
14149 int _end_col_offset = _token->end_col_offset;
14150 UNUSED(_end_col_offset); // Only used by EXTRA macro
14151 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
14152 if (_res == NULL && PyErr_Occurred()) {
14153 p->error_indicator = 1;
14154 D(p->level--);
14155 return NULL;
14156 }
14157 goto done;
14158 }
14159 p->mark = _mark;
14160 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14161 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
14162 }
14163 { // t_primary '[' slices ']' &t_lookahead
14164 if (p->error_indicator) {
14165 D(p->level--);
14166 return NULL;
14167 }
14168 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
14169 Token * _literal;
14170 Token * _literal_1;
14171 expr_ty a;
14172 expr_ty b;
14173 if (
14174 (a = t_primary_rule(p)) // t_primary
14175 &&
14176 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14177 &&
14178 (b = slices_rule(p)) // slices
14179 &&
14180 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14181 &&
14182 _PyPegen_lookahead(1, t_lookahead_rule, p)
14183 )
14184 {
14185 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
14186 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14187 if (_token == NULL) {
14188 D(p->level--);
14189 return NULL;
14190 }
14191 int _end_lineno = _token->end_lineno;
14192 UNUSED(_end_lineno); // Only used by EXTRA macro
14193 int _end_col_offset = _token->end_col_offset;
14194 UNUSED(_end_col_offset); // Only used by EXTRA macro
14195 _res = _Py_Subscript ( a , b , Load , EXTRA );
14196 if (_res == NULL && PyErr_Occurred()) {
14197 p->error_indicator = 1;
14198 D(p->level--);
14199 return NULL;
14200 }
14201 goto done;
14202 }
14203 p->mark = _mark;
14204 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14205 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
14206 }
14207 { // t_primary genexp &t_lookahead
14208 if (p->error_indicator) {
14209 D(p->level--);
14210 return NULL;
14211 }
14212 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
14213 expr_ty a;
14214 expr_ty b;
14215 if (
14216 (a = t_primary_rule(p)) // t_primary
14217 &&
14218 (b = genexp_rule(p)) // genexp
14219 &&
14220 _PyPegen_lookahead(1, t_lookahead_rule, p)
14221 )
14222 {
14223 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
14224 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14225 if (_token == NULL) {
14226 D(p->level--);
14227 return NULL;
14228 }
14229 int _end_lineno = _token->end_lineno;
14230 UNUSED(_end_lineno); // Only used by EXTRA macro
14231 int _end_col_offset = _token->end_col_offset;
14232 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030014233 _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 +010014234 if (_res == NULL && PyErr_Occurred()) {
14235 p->error_indicator = 1;
14236 D(p->level--);
14237 return NULL;
14238 }
14239 goto done;
14240 }
14241 p->mark = _mark;
14242 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14243 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
14244 }
14245 { // t_primary '(' arguments? ')' &t_lookahead
14246 if (p->error_indicator) {
14247 D(p->level--);
14248 return NULL;
14249 }
14250 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
14251 Token * _literal;
14252 Token * _literal_1;
14253 expr_ty a;
14254 void *b;
14255 if (
14256 (a = t_primary_rule(p)) // t_primary
14257 &&
14258 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14259 &&
14260 (b = arguments_rule(p), 1) // arguments?
14261 &&
14262 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14263 &&
14264 _PyPegen_lookahead(1, t_lookahead_rule, p)
14265 )
14266 {
14267 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
14268 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14269 if (_token == NULL) {
14270 D(p->level--);
14271 return NULL;
14272 }
14273 int _end_lineno = _token->end_lineno;
14274 UNUSED(_end_lineno); // Only used by EXTRA macro
14275 int _end_col_offset = _token->end_col_offset;
14276 UNUSED(_end_col_offset); // Only used by EXTRA macro
14277 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
14278 if (_res == NULL && PyErr_Occurred()) {
14279 p->error_indicator = 1;
14280 D(p->level--);
14281 return NULL;
14282 }
14283 goto done;
14284 }
14285 p->mark = _mark;
14286 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14287 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
14288 }
14289 { // atom &t_lookahead
14290 if (p->error_indicator) {
14291 D(p->level--);
14292 return NULL;
14293 }
14294 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
14295 expr_ty a;
14296 if (
14297 (a = atom_rule(p)) // atom
14298 &&
14299 _PyPegen_lookahead(1, t_lookahead_rule, p)
14300 )
14301 {
14302 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
14303 _res = a;
14304 if (_res == NULL && PyErr_Occurred()) {
14305 p->error_indicator = 1;
14306 D(p->level--);
14307 return NULL;
14308 }
14309 goto done;
14310 }
14311 p->mark = _mark;
14312 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14313 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
14314 }
14315 _res = NULL;
14316 done:
14317 D(p->level--);
14318 return _res;
14319}
14320
14321// t_lookahead: '(' | '[' | '.'
14322static void *
14323t_lookahead_rule(Parser *p)
14324{
14325 D(p->level++);
14326 if (p->error_indicator) {
14327 D(p->level--);
14328 return NULL;
14329 }
14330 void * _res = NULL;
14331 int _mark = p->mark;
14332 { // '('
14333 if (p->error_indicator) {
14334 D(p->level--);
14335 return NULL;
14336 }
14337 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
14338 Token * _literal;
14339 if (
14340 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14341 )
14342 {
14343 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
14344 _res = _literal;
14345 goto done;
14346 }
14347 p->mark = _mark;
14348 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
14350 }
14351 { // '['
14352 if (p->error_indicator) {
14353 D(p->level--);
14354 return NULL;
14355 }
14356 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
14357 Token * _literal;
14358 if (
14359 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14360 )
14361 {
14362 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
14363 _res = _literal;
14364 goto done;
14365 }
14366 p->mark = _mark;
14367 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14368 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
14369 }
14370 { // '.'
14371 if (p->error_indicator) {
14372 D(p->level--);
14373 return NULL;
14374 }
14375 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
14376 Token * _literal;
14377 if (
14378 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
14379 )
14380 {
14381 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
14382 _res = _literal;
14383 goto done;
14384 }
14385 p->mark = _mark;
14386 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14387 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
14388 }
14389 _res = NULL;
14390 done:
14391 D(p->level--);
14392 return _res;
14393}
14394
14395// t_atom: NAME | '(' target ')' | '(' targets? ')' | '[' targets? ']'
14396static expr_ty
14397t_atom_rule(Parser *p)
14398{
14399 D(p->level++);
14400 if (p->error_indicator) {
14401 D(p->level--);
14402 return NULL;
14403 }
14404 expr_ty _res = NULL;
14405 int _mark = p->mark;
14406 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14407 p->error_indicator = 1;
14408 D(p->level--);
14409 return NULL;
14410 }
14411 int _start_lineno = p->tokens[_mark]->lineno;
14412 UNUSED(_start_lineno); // Only used by EXTRA macro
14413 int _start_col_offset = p->tokens[_mark]->col_offset;
14414 UNUSED(_start_col_offset); // Only used by EXTRA macro
14415 { // NAME
14416 if (p->error_indicator) {
14417 D(p->level--);
14418 return NULL;
14419 }
14420 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
14421 expr_ty a;
14422 if (
14423 (a = _PyPegen_name_token(p)) // NAME
14424 )
14425 {
14426 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
14427 _res = _PyPegen_set_expr_context ( p , a , Store );
14428 if (_res == NULL && PyErr_Occurred()) {
14429 p->error_indicator = 1;
14430 D(p->level--);
14431 return NULL;
14432 }
14433 goto done;
14434 }
14435 p->mark = _mark;
14436 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14437 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
14438 }
14439 { // '(' target ')'
14440 if (p->error_indicator) {
14441 D(p->level--);
14442 return NULL;
14443 }
14444 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
14445 Token * _literal;
14446 Token * _literal_1;
14447 expr_ty a;
14448 if (
14449 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14450 &&
14451 (a = target_rule(p)) // target
14452 &&
14453 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14454 )
14455 {
14456 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
14457 _res = _PyPegen_set_expr_context ( p , a , Store );
14458 if (_res == NULL && PyErr_Occurred()) {
14459 p->error_indicator = 1;
14460 D(p->level--);
14461 return NULL;
14462 }
14463 goto done;
14464 }
14465 p->mark = _mark;
14466 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14467 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target ')'"));
14468 }
14469 { // '(' targets? ')'
14470 if (p->error_indicator) {
14471 D(p->level--);
14472 return NULL;
14473 }
14474 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
14475 Token * _literal;
14476 Token * _literal_1;
14477 void *b;
14478 if (
14479 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14480 &&
14481 (b = targets_rule(p), 1) // targets?
14482 &&
14483 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14484 )
14485 {
14486 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
14487 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14488 if (_token == NULL) {
14489 D(p->level--);
14490 return NULL;
14491 }
14492 int _end_lineno = _token->end_lineno;
14493 UNUSED(_end_lineno); // Only used by EXTRA macro
14494 int _end_col_offset = _token->end_col_offset;
14495 UNUSED(_end_col_offset); // Only used by EXTRA macro
14496 _res = _Py_Tuple ( b , Store , EXTRA );
14497 if (_res == NULL && PyErr_Occurred()) {
14498 p->error_indicator = 1;
14499 D(p->level--);
14500 return NULL;
14501 }
14502 goto done;
14503 }
14504 p->mark = _mark;
14505 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' targets? ')'"));
14507 }
14508 { // '[' targets? ']'
14509 if (p->error_indicator) {
14510 D(p->level--);
14511 return NULL;
14512 }
14513 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
14514 Token * _literal;
14515 Token * _literal_1;
14516 void *b;
14517 if (
14518 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14519 &&
14520 (b = targets_rule(p), 1) // targets?
14521 &&
14522 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14523 )
14524 {
14525 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
14526 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14527 if (_token == NULL) {
14528 D(p->level--);
14529 return NULL;
14530 }
14531 int _end_lineno = _token->end_lineno;
14532 UNUSED(_end_lineno); // Only used by EXTRA macro
14533 int _end_col_offset = _token->end_col_offset;
14534 UNUSED(_end_col_offset); // Only used by EXTRA macro
14535 _res = _Py_List ( b , Store , EXTRA );
14536 if (_res == NULL && PyErr_Occurred()) {
14537 p->error_indicator = 1;
14538 D(p->level--);
14539 return NULL;
14540 }
14541 goto done;
14542 }
14543 p->mark = _mark;
14544 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' targets? ']'"));
14546 }
14547 _res = NULL;
14548 done:
14549 D(p->level--);
14550 return _res;
14551}
14552
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014553// invalid_arguments:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014554// | args ',' '*'
14555// | expression for_if_clauses ',' [args | expression for_if_clauses]
14556// | args for_if_clauses
14557// | args ',' expression for_if_clauses
14558// | args ',' args
14559static void *
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014560invalid_arguments_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014561{
14562 D(p->level++);
14563 if (p->error_indicator) {
14564 D(p->level--);
14565 return NULL;
14566 }
14567 void * _res = NULL;
14568 int _mark = p->mark;
14569 { // args ',' '*'
14570 if (p->error_indicator) {
14571 D(p->level--);
14572 return NULL;
14573 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014574 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014575 Token * _literal;
14576 Token * _literal_1;
14577 expr_ty args_var;
14578 if (
14579 (args_var = args_rule(p)) // args
14580 &&
14581 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14582 &&
14583 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
14584 )
14585 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014586 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014587 _res = RAISE_SYNTAX_ERROR ( "iterable argument unpacking follows keyword argument unpacking" );
14588 if (_res == NULL && PyErr_Occurred()) {
14589 p->error_indicator = 1;
14590 D(p->level--);
14591 return NULL;
14592 }
14593 goto done;
14594 }
14595 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014596 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
14598 }
14599 { // expression for_if_clauses ',' [args | expression for_if_clauses]
14600 if (p->error_indicator) {
14601 D(p->level--);
14602 return NULL;
14603 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014604 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 +010014605 Token * _literal;
14606 void *_opt_var;
14607 UNUSED(_opt_var); // Silence compiler warnings
14608 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014609 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014610 if (
14611 (a = expression_rule(p)) // expression
14612 &&
14613 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14614 &&
14615 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14616 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014617 (_opt_var = _tmp_126_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014618 )
14619 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014620 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 +010014621 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
14622 if (_res == NULL && PyErr_Occurred()) {
14623 p->error_indicator = 1;
14624 D(p->level--);
14625 return NULL;
14626 }
14627 goto done;
14628 }
14629 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014630 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014631 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
14632 }
14633 { // args for_if_clauses
14634 if (p->error_indicator) {
14635 D(p->level--);
14636 return NULL;
14637 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014638 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 +010014639 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014640 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014641 if (
14642 (a = args_rule(p)) // args
14643 &&
14644 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14645 )
14646 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014647 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 +010014648 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
14649 if (_res == NULL && PyErr_Occurred()) {
14650 p->error_indicator = 1;
14651 D(p->level--);
14652 return NULL;
14653 }
14654 goto done;
14655 }
14656 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014657 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
14659 }
14660 { // args ',' expression for_if_clauses
14661 if (p->error_indicator) {
14662 D(p->level--);
14663 return NULL;
14664 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014665 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 +010014666 Token * _literal;
14667 expr_ty a;
14668 expr_ty args_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014669 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014670 if (
14671 (args_var = args_rule(p)) // args
14672 &&
14673 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14674 &&
14675 (a = expression_rule(p)) // expression
14676 &&
14677 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14678 )
14679 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014680 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 +010014681 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
14682 if (_res == NULL && PyErr_Occurred()) {
14683 p->error_indicator = 1;
14684 D(p->level--);
14685 return NULL;
14686 }
14687 goto done;
14688 }
14689 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014690 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014691 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
14692 }
14693 { // args ',' args
14694 if (p->error_indicator) {
14695 D(p->level--);
14696 return NULL;
14697 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014698 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014699 Token * _literal;
14700 expr_ty a;
14701 expr_ty args_var;
14702 if (
14703 (a = args_rule(p)) // args
14704 &&
14705 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14706 &&
14707 (args_var = args_rule(p)) // args
14708 )
14709 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014710 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 +010014711 _res = _PyPegen_arguments_parsing_error ( p , a );
14712 if (_res == NULL && PyErr_Occurred()) {
14713 p->error_indicator = 1;
14714 D(p->level--);
14715 return NULL;
14716 }
14717 goto done;
14718 }
14719 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014720 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014721 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
14722 }
14723 _res = NULL;
14724 done:
14725 D(p->level--);
14726 return _res;
14727}
14728
14729// invalid_kwarg: expression '='
14730static void *
14731invalid_kwarg_rule(Parser *p)
14732{
14733 D(p->level++);
14734 if (p->error_indicator) {
14735 D(p->level--);
14736 return NULL;
14737 }
14738 void * _res = NULL;
14739 int _mark = p->mark;
14740 { // expression '='
14741 if (p->error_indicator) {
14742 D(p->level--);
14743 return NULL;
14744 }
14745 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression '='"));
Pablo Galindo43c4fb62020-12-13 16:46:48 +000014746 Token * a;
14747 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014748 if (
Pablo Galindo43c4fb62020-12-13 16:46:48 +000014749 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014750 &&
Pablo Galindo43c4fb62020-12-13 16:46:48 +000014751 (a = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014752 )
14753 {
14754 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression '='"));
14755 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression cannot contain assignment, perhaps you meant \"==\"?" );
14756 if (_res == NULL && PyErr_Occurred()) {
14757 p->error_indicator = 1;
14758 D(p->level--);
14759 return NULL;
14760 }
14761 goto done;
14762 }
14763 p->mark = _mark;
14764 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
14765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression '='"));
14766 }
14767 _res = NULL;
14768 done:
14769 D(p->level--);
14770 return _res;
14771}
14772
14773// invalid_named_expression: expression ':=' expression
14774static void *
14775invalid_named_expression_rule(Parser *p)
14776{
14777 D(p->level++);
14778 if (p->error_indicator) {
14779 D(p->level--);
14780 return NULL;
14781 }
14782 void * _res = NULL;
14783 int _mark = p->mark;
14784 { // expression ':=' expression
14785 if (p->error_indicator) {
14786 D(p->level--);
14787 return NULL;
14788 }
14789 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
14790 Token * _literal;
14791 expr_ty a;
14792 expr_ty expression_var;
14793 if (
14794 (a = expression_rule(p)) // expression
14795 &&
14796 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
14797 &&
14798 (expression_var = expression_rule(p)) // expression
14799 )
14800 {
14801 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
14802 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
14803 if (_res == NULL && PyErr_Occurred()) {
14804 p->error_indicator = 1;
14805 D(p->level--);
14806 return NULL;
14807 }
14808 goto done;
14809 }
14810 p->mark = _mark;
14811 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
14812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
14813 }
14814 _res = NULL;
14815 done:
14816 D(p->level--);
14817 return _res;
14818}
14819
14820// invalid_assignment:
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014821// | invalid_ann_assign_target ':' expression
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014822// | star_named_expression ',' star_named_expressions* ':' expression
14823// | expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014824// | ((star_targets '='))* star_expressions '='
14825// | ((star_targets '='))* yield_expr '='
14826// | star_expressions augassign (yield_expr | star_expressions)
14827static void *
14828invalid_assignment_rule(Parser *p)
14829{
14830 D(p->level++);
14831 if (p->error_indicator) {
14832 D(p->level--);
14833 return NULL;
14834 }
14835 void * _res = NULL;
14836 int _mark = p->mark;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014837 { // invalid_ann_assign_target ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014838 if (p->error_indicator) {
14839 D(p->level--);
14840 return NULL;
14841 }
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014842 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 +010014843 Token * _literal;
14844 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014845 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014846 if (
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014847 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014848 &&
14849 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014850 &&
14851 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014852 )
14853 {
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014854 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
14855 _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 +010014856 if (_res == NULL && PyErr_Occurred()) {
14857 p->error_indicator = 1;
14858 D(p->level--);
14859 return NULL;
14860 }
14861 goto done;
14862 }
14863 p->mark = _mark;
14864 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014866 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014867 { // star_named_expression ',' star_named_expressions* ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014868 if (p->error_indicator) {
14869 D(p->level--);
14870 return NULL;
14871 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014872 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 +010014873 Token * _literal;
14874 Token * _literal_1;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014875 asdl_seq * _loop0_127_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014876 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014877 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014878 if (
14879 (a = star_named_expression_rule(p)) // star_named_expression
14880 &&
14881 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14882 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014883 (_loop0_127_var = _loop0_127_rule(p)) // star_named_expressions*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014884 &&
14885 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014886 &&
14887 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014888 )
14889 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014890 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 +010014891 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
14892 if (_res == NULL && PyErr_Occurred()) {
14893 p->error_indicator = 1;
14894 D(p->level--);
14895 return NULL;
14896 }
14897 goto done;
14898 }
14899 p->mark = _mark;
14900 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014901 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014902 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014903 { // expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014904 if (p->error_indicator) {
14905 D(p->level--);
14906 return NULL;
14907 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014908 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014909 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014910 expr_ty a;
14911 expr_ty expression_var;
14912 if (
14913 (a = expression_rule(p)) // expression
14914 &&
14915 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
14916 &&
14917 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014918 )
14919 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014920 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 +010014921 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
14922 if (_res == NULL && PyErr_Occurred()) {
14923 p->error_indicator = 1;
14924 D(p->level--);
14925 return NULL;
14926 }
14927 goto done;
14928 }
14929 p->mark = _mark;
14930 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014932 }
14933 { // ((star_targets '='))* star_expressions '='
14934 if (p->error_indicator) {
14935 D(p->level--);
14936 return NULL;
14937 }
14938 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
14939 Token * _literal;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014940 asdl_seq * _loop0_128_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014941 expr_ty a;
14942 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014943 (_loop0_128_var = _loop0_128_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014944 &&
14945 (a = star_expressions_rule(p)) // star_expressions
14946 &&
14947 (_literal = _PyPegen_expect_token(p, 22)) // token='='
14948 )
14949 {
14950 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 +030014951 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014952 if (_res == NULL && PyErr_Occurred()) {
14953 p->error_indicator = 1;
14954 D(p->level--);
14955 return NULL;
14956 }
14957 goto done;
14958 }
14959 p->mark = _mark;
14960 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
14962 }
14963 { // ((star_targets '='))* yield_expr '='
14964 if (p->error_indicator) {
14965 D(p->level--);
14966 return NULL;
14967 }
14968 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14969 Token * _literal;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014970 asdl_seq * _loop0_129_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014971 expr_ty a;
14972 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014973 (_loop0_129_var = _loop0_129_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014974 &&
14975 (a = yield_expr_rule(p)) // yield_expr
14976 &&
14977 (_literal = _PyPegen_expect_token(p, 22)) // token='='
14978 )
14979 {
14980 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14981 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
14982 if (_res == NULL && PyErr_Occurred()) {
14983 p->error_indicator = 1;
14984 D(p->level--);
14985 return NULL;
14986 }
14987 goto done;
14988 }
14989 p->mark = _mark;
14990 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14992 }
14993 { // star_expressions augassign (yield_expr | star_expressions)
14994 if (p->error_indicator) {
14995 D(p->level--);
14996 return NULL;
14997 }
14998 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014999 void *_tmp_130_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015000 expr_ty a;
15001 AugOperator* augassign_var;
15002 if (
15003 (a = star_expressions_rule(p)) // star_expressions
15004 &&
15005 (augassign_var = augassign_rule(p)) // augassign
15006 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015007 (_tmp_130_var = _tmp_130_rule(p)) // yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015008 )
15009 {
15010 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
15011 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
15012 if (_res == NULL && PyErr_Occurred()) {
15013 p->error_indicator = 1;
15014 D(p->level--);
15015 return NULL;
15016 }
15017 goto done;
15018 }
15019 p->mark = _mark;
15020 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
15021 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
15022 }
15023 _res = NULL;
15024 done:
15025 D(p->level--);
15026 return _res;
15027}
15028
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030015029// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
15030static expr_ty
15031invalid_ann_assign_target_rule(Parser *p)
15032{
15033 D(p->level++);
15034 if (p->error_indicator) {
15035 D(p->level--);
15036 return NULL;
15037 }
15038 expr_ty _res = NULL;
15039 int _mark = p->mark;
15040 { // list
15041 if (p->error_indicator) {
15042 D(p->level--);
15043 return NULL;
15044 }
15045 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
15046 expr_ty list_var;
15047 if (
15048 (list_var = list_rule(p)) // list
15049 )
15050 {
15051 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
15052 _res = list_var;
15053 goto done;
15054 }
15055 p->mark = _mark;
15056 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
15057 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
15058 }
15059 { // tuple
15060 if (p->error_indicator) {
15061 D(p->level--);
15062 return NULL;
15063 }
15064 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
15065 expr_ty tuple_var;
15066 if (
15067 (tuple_var = tuple_rule(p)) // tuple
15068 )
15069 {
15070 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
15071 _res = tuple_var;
15072 goto done;
15073 }
15074 p->mark = _mark;
15075 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
15076 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
15077 }
15078 { // '(' invalid_ann_assign_target ')'
15079 if (p->error_indicator) {
15080 D(p->level--);
15081 return NULL;
15082 }
15083 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
15084 Token * _literal;
15085 Token * _literal_1;
15086 expr_ty a;
15087 if (
15088 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15089 &&
15090 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
15091 &&
15092 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15093 )
15094 {
15095 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
15096 _res = a;
15097 if (_res == NULL && PyErr_Occurred()) {
15098 p->error_indicator = 1;
15099 D(p->level--);
15100 return NULL;
15101 }
15102 goto done;
15103 }
15104 p->mark = _mark;
15105 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
15106 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
15107 }
15108 _res = NULL;
15109 done:
15110 D(p->level--);
15111 return _res;
15112}
15113
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015114// invalid_del_stmt: 'del' star_expressions
15115static void *
15116invalid_del_stmt_rule(Parser *p)
15117{
15118 D(p->level++);
15119 if (p->error_indicator) {
15120 D(p->level--);
15121 return NULL;
15122 }
15123 void * _res = NULL;
15124 int _mark = p->mark;
15125 { // 'del' star_expressions
15126 if (p->error_indicator) {
15127 D(p->level--);
15128 return NULL;
15129 }
15130 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
15131 Token * _keyword;
15132 expr_ty a;
15133 if (
15134 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
15135 &&
15136 (a = star_expressions_rule(p)) // star_expressions
15137 )
15138 {
15139 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 +030015140 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015141 if (_res == NULL && PyErr_Occurred()) {
15142 p->error_indicator = 1;
15143 D(p->level--);
15144 return NULL;
15145 }
15146 goto done;
15147 }
15148 p->mark = _mark;
15149 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
15150 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
15151 }
15152 _res = NULL;
15153 done:
15154 D(p->level--);
15155 return _res;
15156}
15157
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015158// invalid_block: NEWLINE !INDENT
15159static void *
15160invalid_block_rule(Parser *p)
15161{
15162 D(p->level++);
15163 if (p->error_indicator) {
15164 D(p->level--);
15165 return NULL;
15166 }
15167 void * _res = NULL;
15168 int _mark = p->mark;
15169 { // NEWLINE !INDENT
15170 if (p->error_indicator) {
15171 D(p->level--);
15172 return NULL;
15173 }
15174 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
15175 Token * newline_var;
15176 if (
15177 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
15178 &&
15179 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
15180 )
15181 {
15182 D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
15183 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
15184 if (_res == NULL && PyErr_Occurred()) {
15185 p->error_indicator = 1;
15186 D(p->level--);
15187 return NULL;
15188 }
15189 goto done;
15190 }
15191 p->mark = _mark;
15192 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
15193 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
15194 }
15195 _res = NULL;
15196 done:
15197 D(p->level--);
15198 return _res;
15199}
15200
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020015201// Left-recursive
15202// invalid_primary: primary '{'
15203static void *
15204invalid_primary_rule(Parser *p)
15205{
15206 D(p->level++);
15207 if (p->error_indicator) {
15208 D(p->level--);
15209 return NULL;
15210 }
15211 void * _res = NULL;
15212 int _mark = p->mark;
15213 { // primary '{'
15214 if (p->error_indicator) {
15215 D(p->level--);
15216 return NULL;
15217 }
15218 D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
15219 Token * a;
15220 expr_ty primary_var;
15221 if (
15222 (primary_var = primary_rule(p)) // primary
15223 &&
15224 (a = _PyPegen_expect_token(p, 25)) // token='{'
15225 )
15226 {
15227 D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
15228 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
15229 if (_res == NULL && PyErr_Occurred()) {
15230 p->error_indicator = 1;
15231 D(p->level--);
15232 return NULL;
15233 }
15234 goto done;
15235 }
15236 p->mark = _mark;
15237 D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
15238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
15239 }
15240 _res = NULL;
15241 done:
15242 D(p->level--);
15243 return _res;
15244}
15245
Pablo Galindo835f14f2021-01-31 22:52:56 +000015246// invalid_comprehension:
15247// | ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindod4e6ed72021-02-03 23:29:26 +000015248// | ('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015249static void *
15250invalid_comprehension_rule(Parser *p)
15251{
15252 D(p->level++);
15253 if (p->error_indicator) {
15254 D(p->level--);
15255 return NULL;
15256 }
15257 void * _res = NULL;
15258 int _mark = p->mark;
15259 { // ('[' | '(' | '{') starred_expression for_if_clauses
15260 if (p->error_indicator) {
15261 D(p->level--);
15262 return NULL;
15263 }
15264 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015265 void *_tmp_131_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015266 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015267 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015268 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015269 (_tmp_131_var = _tmp_131_rule(p)) // '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015270 &&
15271 (a = starred_expression_rule(p)) // starred_expression
15272 &&
15273 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
15274 )
15275 {
15276 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
15277 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
15278 if (_res == NULL && PyErr_Occurred()) {
15279 p->error_indicator = 1;
15280 D(p->level--);
15281 return NULL;
15282 }
15283 goto done;
15284 }
15285 p->mark = _mark;
15286 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
15287 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
15288 }
Pablo Galindod4e6ed72021-02-03 23:29:26 +000015289 { // ('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000015290 if (p->error_indicator) {
15291 D(p->level--);
15292 return NULL;
15293 }
Pablo Galindod4e6ed72021-02-03 23:29:26 +000015294 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 +000015295 Token * _literal;
15296 void *_opt_var;
15297 UNUSED(_opt_var); // Silence compiler warnings
15298 void *_tmp_132_var;
15299 expr_ty a;
Pablo Galindod4e6ed72021-02-03 23:29:26 +000015300 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000015301 if (
15302 (_tmp_132_var = _tmp_132_rule(p)) // '[' | '{'
15303 &&
15304 (a = star_named_expression_rule(p)) // star_named_expression
15305 &&
15306 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15307 &&
15308 (_opt_var = star_named_expressions_rule(p), 1) // star_named_expressions?
Pablo Galindod4e6ed72021-02-03 23:29:26 +000015309 &&
15310 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000015311 )
15312 {
Pablo Galindod4e6ed72021-02-03 23:29:26 +000015313 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 +000015314 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "did you forget parentheses around the comprehension target?" );
15315 if (_res == NULL && PyErr_Occurred()) {
15316 p->error_indicator = 1;
15317 D(p->level--);
15318 return NULL;
15319 }
15320 goto done;
15321 }
15322 p->mark = _mark;
15323 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod4e6ed72021-02-03 23:29:26 +000015324 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000015325 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015326 _res = NULL;
15327 done:
15328 D(p->level--);
15329 return _res;
15330}
15331
15332// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
15333static void *
15334invalid_dict_comprehension_rule(Parser *p)
15335{
15336 D(p->level++);
15337 if (p->error_indicator) {
15338 D(p->level--);
15339 return NULL;
15340 }
15341 void * _res = NULL;
15342 int _mark = p->mark;
15343 { // '{' '**' bitwise_or for_if_clauses '}'
15344 if (p->error_indicator) {
15345 D(p->level--);
15346 return NULL;
15347 }
15348 D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
15349 Token * _literal;
15350 Token * _literal_1;
15351 Token * a;
15352 expr_ty bitwise_or_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015353 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015354 if (
15355 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15356 &&
15357 (a = _PyPegen_expect_token(p, 35)) // token='**'
15358 &&
15359 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
15360 &&
15361 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
15362 &&
15363 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15364 )
15365 {
15366 D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
15367 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
15368 if (_res == NULL && PyErr_Occurred()) {
15369 p->error_indicator = 1;
15370 D(p->level--);
15371 return NULL;
15372 }
15373 goto done;
15374 }
15375 p->mark = _mark;
15376 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
15377 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
15378 }
15379 _res = NULL;
15380 done:
15381 D(p->level--);
15382 return _res;
15383}
15384
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015385// invalid_parameters: param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015386static void *
15387invalid_parameters_rule(Parser *p)
15388{
15389 D(p->level++);
15390 if (p->error_indicator) {
15391 D(p->level--);
15392 return NULL;
15393 }
15394 void * _res = NULL;
15395 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015396 { // param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015397 if (p->error_indicator) {
15398 D(p->level--);
15399 return NULL;
15400 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015401 D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000015402 asdl_seq * _loop0_133_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015403 void *invalid_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015404 arg_ty param_no_default_var;
15405 if (
Pablo Galindo835f14f2021-01-31 22:52:56 +000015406 (_loop0_133_var = _loop0_133_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015407 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015408 (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015409 &&
15410 (param_no_default_var = param_no_default_rule(p)) // param_no_default
15411 )
15412 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015413 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 +010015414 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
15415 if (_res == NULL && PyErr_Occurred()) {
15416 p->error_indicator = 1;
15417 D(p->level--);
15418 return NULL;
15419 }
15420 goto done;
15421 }
15422 p->mark = _mark;
15423 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015424 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
15425 }
15426 _res = NULL;
15427 done:
15428 D(p->level--);
15429 return _res;
15430}
15431
15432// invalid_parameters_helper: slash_with_default | param_with_default+
15433static void *
15434invalid_parameters_helper_rule(Parser *p)
15435{
15436 D(p->level++);
15437 if (p->error_indicator) {
15438 D(p->level--);
15439 return NULL;
15440 }
15441 void * _res = NULL;
15442 int _mark = p->mark;
15443 { // slash_with_default
15444 if (p->error_indicator) {
15445 D(p->level--);
15446 return NULL;
15447 }
15448 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
15449 SlashWithDefault* a;
15450 if (
15451 (a = slash_with_default_rule(p)) // slash_with_default
15452 )
15453 {
15454 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
15455 _res = _PyPegen_singleton_seq ( p , a );
15456 if (_res == NULL && PyErr_Occurred()) {
15457 p->error_indicator = 1;
15458 D(p->level--);
15459 return NULL;
15460 }
15461 goto done;
15462 }
15463 p->mark = _mark;
15464 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
15465 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
15466 }
15467 { // param_with_default+
15468 if (p->error_indicator) {
15469 D(p->level--);
15470 return NULL;
15471 }
15472 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000015473 asdl_seq * _loop1_134_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015474 if (
Pablo Galindo835f14f2021-01-31 22:52:56 +000015475 (_loop1_134_var = _loop1_134_rule(p)) // param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015476 )
15477 {
15478 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000015479 _res = _loop1_134_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015480 goto done;
15481 }
15482 p->mark = _mark;
15483 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
15484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015485 }
15486 _res = NULL;
15487 done:
15488 D(p->level--);
15489 return _res;
15490}
15491
15492// invalid_lambda_parameters:
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015493// | lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015494static void *
15495invalid_lambda_parameters_rule(Parser *p)
15496{
15497 D(p->level++);
15498 if (p->error_indicator) {
15499 D(p->level--);
15500 return NULL;
15501 }
15502 void * _res = NULL;
15503 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015504 { // lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015505 if (p->error_indicator) {
15506 D(p->level--);
15507 return NULL;
15508 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015509 D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000015510 asdl_seq * _loop0_135_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015511 void *invalid_lambda_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015512 arg_ty lambda_param_no_default_var;
15513 if (
Pablo Galindo835f14f2021-01-31 22:52:56 +000015514 (_loop0_135_var = _loop0_135_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015515 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015516 (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015517 &&
15518 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
15519 )
15520 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015521 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 +010015522 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
15523 if (_res == NULL && PyErr_Occurred()) {
15524 p->error_indicator = 1;
15525 D(p->level--);
15526 return NULL;
15527 }
15528 goto done;
15529 }
15530 p->mark = _mark;
15531 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015532 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
15533 }
15534 _res = NULL;
15535 done:
15536 D(p->level--);
15537 return _res;
15538}
15539
15540// invalid_lambda_parameters_helper:
15541// | lambda_slash_with_default
15542// | lambda_param_with_default+
15543static void *
15544invalid_lambda_parameters_helper_rule(Parser *p)
15545{
15546 D(p->level++);
15547 if (p->error_indicator) {
15548 D(p->level--);
15549 return NULL;
15550 }
15551 void * _res = NULL;
15552 int _mark = p->mark;
15553 { // lambda_slash_with_default
15554 if (p->error_indicator) {
15555 D(p->level--);
15556 return NULL;
15557 }
15558 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
15559 SlashWithDefault* a;
15560 if (
15561 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
15562 )
15563 {
15564 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
15565 _res = _PyPegen_singleton_seq ( p , a );
15566 if (_res == NULL && PyErr_Occurred()) {
15567 p->error_indicator = 1;
15568 D(p->level--);
15569 return NULL;
15570 }
15571 goto done;
15572 }
15573 p->mark = _mark;
15574 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
15575 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
15576 }
15577 { // lambda_param_with_default+
15578 if (p->error_indicator) {
15579 D(p->level--);
15580 return NULL;
15581 }
15582 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000015583 asdl_seq * _loop1_136_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015584 if (
Pablo Galindo835f14f2021-01-31 22:52:56 +000015585 (_loop1_136_var = _loop1_136_rule(p)) // lambda_param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015586 )
15587 {
15588 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000015589 _res = _loop1_136_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015590 goto done;
15591 }
15592 p->mark = _mark;
15593 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
15594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015595 }
15596 _res = NULL;
15597 done:
15598 D(p->level--);
15599 return _res;
15600}
15601
15602// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
15603static void *
15604invalid_star_etc_rule(Parser *p)
15605{
15606 D(p->level++);
15607 if (p->error_indicator) {
15608 D(p->level--);
15609 return NULL;
15610 }
15611 void * _res = NULL;
15612 int _mark = p->mark;
15613 { // '*' (')' | ',' (')' | '**'))
15614 if (p->error_indicator) {
15615 D(p->level--);
15616 return NULL;
15617 }
15618 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
15619 Token * _literal;
Pablo Galindo835f14f2021-01-31 22:52:56 +000015620 void *_tmp_137_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015621 if (
15622 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15623 &&
Pablo Galindo835f14f2021-01-31 22:52:56 +000015624 (_tmp_137_var = _tmp_137_rule(p)) // ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015625 )
15626 {
15627 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
15628 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15629 if (_res == NULL && PyErr_Occurred()) {
15630 p->error_indicator = 1;
15631 D(p->level--);
15632 return NULL;
15633 }
15634 goto done;
15635 }
15636 p->mark = _mark;
15637 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15638 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
15639 }
15640 { // '*' ',' TYPE_COMMENT
15641 if (p->error_indicator) {
15642 D(p->level--);
15643 return NULL;
15644 }
15645 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
15646 Token * _literal;
15647 Token * _literal_1;
15648 Token * type_comment_var;
15649 if (
15650 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15651 &&
15652 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
15653 &&
15654 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
15655 )
15656 {
15657 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
15658 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
15659 if (_res == NULL && PyErr_Occurred()) {
15660 p->error_indicator = 1;
15661 D(p->level--);
15662 return NULL;
15663 }
15664 goto done;
15665 }
15666 p->mark = _mark;
15667 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15668 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
15669 }
15670 _res = NULL;
15671 done:
15672 D(p->level--);
15673 return _res;
15674}
15675
15676// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
15677static void *
15678invalid_lambda_star_etc_rule(Parser *p)
15679{
15680 D(p->level++);
15681 if (p->error_indicator) {
15682 D(p->level--);
15683 return NULL;
15684 }
15685 void * _res = NULL;
15686 int _mark = p->mark;
15687 { // '*' (':' | ',' (':' | '**'))
15688 if (p->error_indicator) {
15689 D(p->level--);
15690 return NULL;
15691 }
15692 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
15693 Token * _literal;
Pablo Galindo835f14f2021-01-31 22:52:56 +000015694 void *_tmp_138_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015695 if (
15696 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15697 &&
Pablo Galindo835f14f2021-01-31 22:52:56 +000015698 (_tmp_138_var = _tmp_138_rule(p)) // ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015699 )
15700 {
15701 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
15702 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15703 if (_res == NULL && PyErr_Occurred()) {
15704 p->error_indicator = 1;
15705 D(p->level--);
15706 return NULL;
15707 }
15708 goto done;
15709 }
15710 p->mark = _mark;
15711 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15712 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
15713 }
15714 _res = NULL;
15715 done:
15716 D(p->level--);
15717 return _res;
15718}
15719
15720// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
15721static void *
15722invalid_double_type_comments_rule(Parser *p)
15723{
15724 D(p->level++);
15725 if (p->error_indicator) {
15726 D(p->level--);
15727 return NULL;
15728 }
15729 void * _res = NULL;
15730 int _mark = p->mark;
15731 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
15732 if (p->error_indicator) {
15733 D(p->level--);
15734 return NULL;
15735 }
15736 D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
15737 Token * indent_var;
15738 Token * newline_var;
15739 Token * newline_var_1;
15740 Token * type_comment_var;
15741 Token * type_comment_var_1;
15742 if (
15743 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
15744 &&
15745 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
15746 &&
15747 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
15748 &&
15749 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
15750 &&
15751 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
15752 )
15753 {
15754 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"));
15755 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
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 invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
15765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
15766 }
15767 _res = NULL;
15768 done:
15769 D(p->level--);
15770 return _res;
15771}
15772
Pablo Galindo58fb1562021-02-02 19:54:22 +000015773// invalid_with_item: expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015774static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015775invalid_with_item_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015776{
15777 D(p->level++);
15778 if (p->error_indicator) {
15779 D(p->level--);
15780 return NULL;
15781 }
15782 void * _res = NULL;
15783 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000015784 { // expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015785 if (p->error_indicator) {
15786 D(p->level--);
15787 return NULL;
15788 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000015789 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 +030015790 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015791 expr_ty a;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015792 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015793 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015794 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015795 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015796 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
15797 &&
15798 (a = expression_rule(p)) // expression
Pablo Galindo58fb1562021-02-02 19:54:22 +000015799 &&
15800 _PyPegen_lookahead(1, _tmp_139_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015801 )
15802 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000015803 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 +030015804 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015805 if (_res == NULL && PyErr_Occurred()) {
15806 p->error_indicator = 1;
15807 D(p->level--);
15808 return NULL;
15809 }
15810 goto done;
15811 }
15812 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015813 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000015814 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015815 }
15816 _res = NULL;
15817 done:
15818 D(p->level--);
15819 return _res;
15820}
15821
15822// invalid_for_target: ASYNC? 'for' star_expressions
15823static void *
15824invalid_for_target_rule(Parser *p)
15825{
15826 D(p->level++);
15827 if (p->error_indicator) {
15828 D(p->level--);
15829 return NULL;
15830 }
15831 void * _res = NULL;
15832 int _mark = p->mark;
15833 { // ASYNC? 'for' star_expressions
15834 if (p->error_indicator) {
15835 D(p->level--);
15836 return NULL;
15837 }
15838 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
15839 Token * _keyword;
15840 void *_opt_var;
15841 UNUSED(_opt_var); // Silence compiler warnings
15842 expr_ty a;
15843 if (
15844 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
15845 &&
15846 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15847 &&
15848 (a = star_expressions_rule(p)) // star_expressions
15849 )
15850 {
15851 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 +030015852 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015853 if (_res == NULL && PyErr_Occurred()) {
15854 p->error_indicator = 1;
15855 D(p->level--);
15856 return NULL;
15857 }
15858 goto done;
15859 }
15860 p->mark = _mark;
15861 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
15862 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
15863 }
15864 _res = NULL;
15865 done:
15866 D(p->level--);
15867 return _res;
15868}
15869
15870// invalid_group: '(' starred_expression ')'
15871static void *
15872invalid_group_rule(Parser *p)
15873{
15874 D(p->level++);
15875 if (p->error_indicator) {
15876 D(p->level--);
15877 return NULL;
15878 }
15879 void * _res = NULL;
15880 int _mark = p->mark;
15881 { // '(' starred_expression ')'
15882 if (p->error_indicator) {
15883 D(p->level--);
15884 return NULL;
15885 }
15886 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
15887 Token * _literal;
15888 Token * _literal_1;
15889 expr_ty a;
15890 if (
15891 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15892 &&
15893 (a = starred_expression_rule(p)) // starred_expression
15894 &&
15895 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15896 )
15897 {
15898 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
15899 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "can't use starred expression here" );
15900 if (_res == NULL && PyErr_Occurred()) {
15901 p->error_indicator = 1;
15902 D(p->level--);
15903 return NULL;
15904 }
15905 goto done;
15906 }
15907 p->mark = _mark;
15908 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
15909 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015910 }
15911 _res = NULL;
15912 done:
15913 D(p->level--);
15914 return _res;
15915}
15916
15917// invalid_import_from_targets: import_from_as_names ','
15918static void *
15919invalid_import_from_targets_rule(Parser *p)
15920{
15921 D(p->level++);
15922 if (p->error_indicator) {
15923 D(p->level--);
15924 return NULL;
15925 }
15926 void * _res = NULL;
15927 int _mark = p->mark;
15928 { // import_from_as_names ','
15929 if (p->error_indicator) {
15930 D(p->level--);
15931 return NULL;
15932 }
15933 D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
15934 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015935 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015936 if (
15937 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
15938 &&
15939 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15940 )
15941 {
15942 D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
15943 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
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 invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
15953 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
15954 }
15955 _res = NULL;
15956 done:
15957 D(p->level--);
15958 return _res;
15959}
15960
Pablo Galindo58fb1562021-02-02 19:54:22 +000015961// invalid_with_stmt:
15962// | ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
15963// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
15964static void *
15965invalid_with_stmt_rule(Parser *p)
15966{
15967 D(p->level++);
15968 if (p->error_indicator) {
15969 D(p->level--);
15970 return NULL;
15971 }
15972 void * _res = NULL;
15973 int _mark = p->mark;
15974 { // ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
15975 if (p->error_indicator) {
15976 D(p->level--);
15977 return NULL;
15978 }
15979 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
15980 asdl_seq * _gather_140_var;
15981 Token * _keyword;
15982 Token * _literal;
15983 void *_opt_var;
15984 UNUSED(_opt_var); // Silence compiler warnings
15985 if (
15986 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
15987 &&
15988 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
15989 &&
15990 (_gather_140_var = _gather_140_rule(p)) // ','.(expression ['as' star_target])+
15991 &&
15992 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
15993 )
15994 {
15995 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
15996 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_140_var, _literal);
15997 goto done;
15998 }
15999 p->mark = _mark;
16000 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
16001 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
16002 }
16003 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
16004 if (p->error_indicator) {
16005 D(p->level--);
16006 return NULL;
16007 }
16008 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
16009 asdl_seq * _gather_142_var;
16010 Token * _keyword;
16011 Token * _literal;
16012 Token * _literal_1;
16013 Token * _literal_2;
16014 void *_opt_var;
16015 UNUSED(_opt_var); // Silence compiler warnings
16016 void *_opt_var_1;
16017 UNUSED(_opt_var_1); // Silence compiler warnings
16018 if (
16019 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
16020 &&
16021 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
16022 &&
16023 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16024 &&
16025 (_gather_142_var = _gather_142_rule(p)) // ','.(expressions ['as' star_target])+
16026 &&
16027 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
16028 &&
16029 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16030 &&
16031 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
16032 )
16033 {
16034 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
16035 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _literal, _gather_142_var, _opt_var_1, _literal_1, _literal_2);
16036 goto done;
16037 }
16038 p->mark = _mark;
16039 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
16040 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
16041 }
16042 _res = NULL;
16043 done:
16044 D(p->level--);
16045 return _res;
16046}
16047
Pablo Galindo206cbda2021-02-07 18:42:21 +000016048// invalid_except_block:
16049// | 'except' expression ',' expressions ['as' NAME] ':'
16050// | 'except' expression ['as' NAME] &&':'
16051// | 'except' &&':'
16052static void *
16053invalid_except_block_rule(Parser *p)
16054{
16055 D(p->level++);
16056 if (p->error_indicator) {
16057 D(p->level--);
16058 return NULL;
16059 }
16060 void * _res = NULL;
16061 int _mark = p->mark;
16062 { // 'except' expression ',' expressions ['as' NAME] ':'
16063 if (p->error_indicator) {
16064 D(p->level--);
16065 return NULL;
16066 }
16067 D(fprintf(stderr, "%*c> invalid_except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
16068 Token * _keyword;
16069 Token * _literal;
16070 Token * _literal_1;
16071 void *_opt_var;
16072 UNUSED(_opt_var); // Silence compiler warnings
16073 expr_ty a;
16074 expr_ty expressions_var;
16075 if (
16076 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
16077 &&
16078 (a = expression_rule(p)) // expression
16079 &&
16080 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16081 &&
16082 (expressions_var = expressions_rule(p)) // expressions
16083 &&
16084 (_opt_var = _tmp_144_rule(p), 1) // ['as' NAME]
16085 &&
16086 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
16087 )
16088 {
16089 D(fprintf(stderr, "%*c+ invalid_except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
16090 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "exception group must be parenthesized" );
16091 if (_res == NULL && PyErr_Occurred()) {
16092 p->error_indicator = 1;
16093 D(p->level--);
16094 return NULL;
16095 }
16096 goto done;
16097 }
16098 p->mark = _mark;
16099 D(fprintf(stderr, "%*c%s invalid_except_block[%d-%d]: %s failed!\n", p->level, ' ',
16100 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
16101 }
16102 { // 'except' expression ['as' NAME] &&':'
16103 if (p->error_indicator) {
16104 D(p->level--);
16105 return NULL;
16106 }
16107 D(fprintf(stderr, "%*c> invalid_except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] &&':'"));
16108 Token * _keyword;
16109 Token * _literal;
16110 void *_opt_var;
16111 UNUSED(_opt_var); // Silence compiler warnings
16112 expr_ty expression_var;
16113 if (
16114 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
16115 &&
16116 (expression_var = expression_rule(p)) // expression
16117 &&
16118 (_opt_var = _tmp_145_rule(p), 1) // ['as' NAME]
16119 &&
16120 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
16121 )
16122 {
16123 D(fprintf(stderr, "%*c+ invalid_except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] &&':'"));
16124 _res = _PyPegen_dummy_name(p, _keyword, expression_var, _opt_var, _literal);
16125 goto done;
16126 }
16127 p->mark = _mark;
16128 D(fprintf(stderr, "%*c%s invalid_except_block[%d-%d]: %s failed!\n", p->level, ' ',
16129 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] &&':'"));
16130 }
16131 { // 'except' &&':'
16132 if (p->error_indicator) {
16133 D(p->level--);
16134 return NULL;
16135 }
16136 D(fprintf(stderr, "%*c> invalid_except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' &&':'"));
16137 Token * _keyword;
16138 Token * _literal;
16139 if (
16140 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
16141 &&
16142 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
16143 )
16144 {
16145 D(fprintf(stderr, "%*c+ invalid_except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' &&':'"));
16146 _res = _PyPegen_dummy_name(p, _keyword, _literal);
16147 goto done;
16148 }
16149 p->mark = _mark;
16150 D(fprintf(stderr, "%*c%s invalid_except_block[%d-%d]: %s failed!\n", p->level, ' ',
16151 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' &&':'"));
16152 }
16153 _res = NULL;
16154 done:
16155 D(p->level--);
16156 return _res;
16157}
16158
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016159// _loop0_1: NEWLINE
16160static asdl_seq *
16161_loop0_1_rule(Parser *p)
16162{
16163 D(p->level++);
16164 if (p->error_indicator) {
16165 D(p->level--);
16166 return NULL;
16167 }
16168 void *_res = NULL;
16169 int _mark = p->mark;
16170 int _start_mark = p->mark;
16171 void **_children = PyMem_Malloc(sizeof(void *));
16172 if (!_children) {
16173 p->error_indicator = 1;
16174 PyErr_NoMemory();
16175 D(p->level--);
16176 return NULL;
16177 }
16178 ssize_t _children_capacity = 1;
16179 ssize_t _n = 0;
16180 { // NEWLINE
16181 if (p->error_indicator) {
16182 D(p->level--);
16183 return NULL;
16184 }
16185 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
16186 Token * newline_var;
16187 while (
16188 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
16189 )
16190 {
16191 _res = newline_var;
16192 if (_n == _children_capacity) {
16193 _children_capacity *= 2;
16194 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16195 if (!_new_children) {
16196 p->error_indicator = 1;
16197 PyErr_NoMemory();
16198 D(p->level--);
16199 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016200 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016201 _children = _new_children;
16202 }
16203 _children[_n++] = _res;
16204 _mark = p->mark;
16205 }
16206 p->mark = _mark;
16207 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
16208 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
16209 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016210 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016211 if (!_seq) {
16212 PyMem_Free(_children);
16213 p->error_indicator = 1;
16214 PyErr_NoMemory();
16215 D(p->level--);
16216 return NULL;
16217 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016218 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016219 PyMem_Free(_children);
16220 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
16221 D(p->level--);
16222 return _seq;
16223}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016224
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016225// _loop0_2: NEWLINE
16226static asdl_seq *
16227_loop0_2_rule(Parser *p)
16228{
16229 D(p->level++);
16230 if (p->error_indicator) {
16231 D(p->level--);
16232 return NULL;
16233 }
16234 void *_res = NULL;
16235 int _mark = p->mark;
16236 int _start_mark = p->mark;
16237 void **_children = PyMem_Malloc(sizeof(void *));
16238 if (!_children) {
16239 p->error_indicator = 1;
16240 PyErr_NoMemory();
16241 D(p->level--);
16242 return NULL;
16243 }
16244 ssize_t _children_capacity = 1;
16245 ssize_t _n = 0;
16246 { // NEWLINE
16247 if (p->error_indicator) {
16248 D(p->level--);
16249 return NULL;
16250 }
16251 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
16252 Token * newline_var;
16253 while (
16254 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
16255 )
16256 {
16257 _res = newline_var;
16258 if (_n == _children_capacity) {
16259 _children_capacity *= 2;
16260 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16261 if (!_new_children) {
16262 p->error_indicator = 1;
16263 PyErr_NoMemory();
16264 D(p->level--);
16265 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016266 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016267 _children = _new_children;
16268 }
16269 _children[_n++] = _res;
16270 _mark = p->mark;
16271 }
16272 p->mark = _mark;
16273 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
16274 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
16275 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016276 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016277 if (!_seq) {
16278 PyMem_Free(_children);
16279 p->error_indicator = 1;
16280 PyErr_NoMemory();
16281 D(p->level--);
16282 return NULL;
16283 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016284 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016285 PyMem_Free(_children);
16286 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
16287 D(p->level--);
16288 return _seq;
16289}
16290
16291// _loop0_4: ',' expression
16292static asdl_seq *
16293_loop0_4_rule(Parser *p)
16294{
16295 D(p->level++);
16296 if (p->error_indicator) {
16297 D(p->level--);
16298 return NULL;
16299 }
16300 void *_res = NULL;
16301 int _mark = p->mark;
16302 int _start_mark = p->mark;
16303 void **_children = PyMem_Malloc(sizeof(void *));
16304 if (!_children) {
16305 p->error_indicator = 1;
16306 PyErr_NoMemory();
16307 D(p->level--);
16308 return NULL;
16309 }
16310 ssize_t _children_capacity = 1;
16311 ssize_t _n = 0;
16312 { // ',' expression
16313 if (p->error_indicator) {
16314 D(p->level--);
16315 return NULL;
16316 }
16317 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
16318 Token * _literal;
16319 expr_ty elem;
16320 while (
16321 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16322 &&
16323 (elem = expression_rule(p)) // expression
16324 )
16325 {
16326 _res = elem;
16327 if (_res == NULL && PyErr_Occurred()) {
16328 p->error_indicator = 1;
16329 PyMem_Free(_children);
16330 D(p->level--);
16331 return NULL;
16332 }
16333 if (_n == _children_capacity) {
16334 _children_capacity *= 2;
16335 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16336 if (!_new_children) {
16337 p->error_indicator = 1;
16338 PyErr_NoMemory();
16339 D(p->level--);
16340 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016341 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016342 _children = _new_children;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016343 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016344 _children[_n++] = _res;
16345 _mark = p->mark;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016346 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016347 p->mark = _mark;
16348 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
16349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016350 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016351 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016352 if (!_seq) {
16353 PyMem_Free(_children);
16354 p->error_indicator = 1;
16355 PyErr_NoMemory();
16356 D(p->level--);
16357 return NULL;
16358 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016359 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016360 PyMem_Free(_children);
16361 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
16362 D(p->level--);
16363 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016364}
16365
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016366// _gather_3: expression _loop0_4
16367static asdl_seq *
16368_gather_3_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016369{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016370 D(p->level++);
16371 if (p->error_indicator) {
16372 D(p->level--);
16373 return NULL;
16374 }
16375 asdl_seq * _res = NULL;
16376 int _mark = p->mark;
16377 { // expression _loop0_4
16378 if (p->error_indicator) {
16379 D(p->level--);
16380 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016381 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016382 D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
16383 expr_ty elem;
16384 asdl_seq * seq;
16385 if (
16386 (elem = expression_rule(p)) // expression
16387 &&
16388 (seq = _loop0_4_rule(p)) // _loop0_4
16389 )
16390 {
16391 D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
16392 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16393 goto done;
16394 }
16395 p->mark = _mark;
16396 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
16397 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016398 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016399 _res = NULL;
16400 done:
16401 D(p->level--);
16402 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016403}
16404
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016405// _loop0_6: ',' expression
16406static asdl_seq *
16407_loop0_6_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016408{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016409 D(p->level++);
16410 if (p->error_indicator) {
16411 D(p->level--);
16412 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016413 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016414 void *_res = NULL;
16415 int _mark = p->mark;
16416 int _start_mark = p->mark;
16417 void **_children = PyMem_Malloc(sizeof(void *));
16418 if (!_children) {
16419 p->error_indicator = 1;
16420 PyErr_NoMemory();
16421 D(p->level--);
16422 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016423 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016424 ssize_t _children_capacity = 1;
16425 ssize_t _n = 0;
16426 { // ',' expression
16427 if (p->error_indicator) {
16428 D(p->level--);
16429 return NULL;
16430 }
16431 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
16432 Token * _literal;
16433 expr_ty elem;
16434 while (
16435 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16436 &&
16437 (elem = expression_rule(p)) // expression
16438 )
16439 {
16440 _res = elem;
16441 if (_res == NULL && PyErr_Occurred()) {
16442 p->error_indicator = 1;
16443 PyMem_Free(_children);
16444 D(p->level--);
16445 return NULL;
16446 }
16447 if (_n == _children_capacity) {
16448 _children_capacity *= 2;
16449 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16450 if (!_new_children) {
16451 p->error_indicator = 1;
16452 PyErr_NoMemory();
16453 D(p->level--);
16454 return NULL;
16455 }
16456 _children = _new_children;
16457 }
16458 _children[_n++] = _res;
16459 _mark = p->mark;
16460 }
16461 p->mark = _mark;
16462 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
16463 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
16464 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016465 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016466 if (!_seq) {
16467 PyMem_Free(_children);
16468 p->error_indicator = 1;
16469 PyErr_NoMemory();
16470 D(p->level--);
16471 return NULL;
16472 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016473 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016474 PyMem_Free(_children);
16475 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
16476 D(p->level--);
16477 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016478}
16479
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016480// _gather_5: expression _loop0_6
16481static asdl_seq *
16482_gather_5_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016483{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016484 D(p->level++);
16485 if (p->error_indicator) {
16486 D(p->level--);
16487 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016488 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016489 asdl_seq * _res = NULL;
16490 int _mark = p->mark;
16491 { // expression _loop0_6
16492 if (p->error_indicator) {
16493 D(p->level--);
16494 return NULL;
16495 }
16496 D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
16497 expr_ty elem;
16498 asdl_seq * seq;
16499 if (
16500 (elem = expression_rule(p)) // expression
16501 &&
16502 (seq = _loop0_6_rule(p)) // _loop0_6
16503 )
16504 {
16505 D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
16506 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16507 goto done;
16508 }
16509 p->mark = _mark;
16510 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
16511 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
16512 }
16513 _res = NULL;
16514 done:
16515 D(p->level--);
16516 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016517}
16518
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016519// _loop0_8: ',' expression
16520static asdl_seq *
16521_loop0_8_rule(Parser *p)
16522{
16523 D(p->level++);
16524 if (p->error_indicator) {
16525 D(p->level--);
16526 return NULL;
16527 }
16528 void *_res = NULL;
16529 int _mark = p->mark;
16530 int _start_mark = p->mark;
16531 void **_children = PyMem_Malloc(sizeof(void *));
16532 if (!_children) {
16533 p->error_indicator = 1;
16534 PyErr_NoMemory();
16535 D(p->level--);
16536 return NULL;
16537 }
16538 ssize_t _children_capacity = 1;
16539 ssize_t _n = 0;
16540 { // ',' expression
16541 if (p->error_indicator) {
16542 D(p->level--);
16543 return NULL;
16544 }
16545 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
16546 Token * _literal;
16547 expr_ty elem;
16548 while (
16549 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16550 &&
16551 (elem = expression_rule(p)) // expression
16552 )
16553 {
16554 _res = elem;
16555 if (_res == NULL && PyErr_Occurred()) {
16556 p->error_indicator = 1;
16557 PyMem_Free(_children);
16558 D(p->level--);
16559 return NULL;
16560 }
16561 if (_n == _children_capacity) {
16562 _children_capacity *= 2;
16563 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16564 if (!_new_children) {
16565 p->error_indicator = 1;
16566 PyErr_NoMemory();
16567 D(p->level--);
16568 return NULL;
16569 }
16570 _children = _new_children;
16571 }
16572 _children[_n++] = _res;
16573 _mark = p->mark;
16574 }
16575 p->mark = _mark;
16576 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
16577 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
16578 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016579 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016580 if (!_seq) {
16581 PyMem_Free(_children);
16582 p->error_indicator = 1;
16583 PyErr_NoMemory();
16584 D(p->level--);
16585 return NULL;
16586 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016587 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016588 PyMem_Free(_children);
16589 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
16590 D(p->level--);
16591 return _seq;
16592}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016593
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016594// _gather_7: expression _loop0_8
16595static asdl_seq *
16596_gather_7_rule(Parser *p)
16597{
16598 D(p->level++);
16599 if (p->error_indicator) {
16600 D(p->level--);
16601 return NULL;
16602 }
16603 asdl_seq * _res = NULL;
16604 int _mark = p->mark;
16605 { // expression _loop0_8
16606 if (p->error_indicator) {
16607 D(p->level--);
16608 return NULL;
16609 }
16610 D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
16611 expr_ty elem;
16612 asdl_seq * seq;
16613 if (
16614 (elem = expression_rule(p)) // expression
16615 &&
16616 (seq = _loop0_8_rule(p)) // _loop0_8
16617 )
16618 {
16619 D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
16620 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16621 goto done;
16622 }
16623 p->mark = _mark;
16624 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
16625 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
16626 }
16627 _res = NULL;
16628 done:
16629 D(p->level--);
16630 return _res;
16631}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016632
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016633// _loop0_10: ',' expression
16634static asdl_seq *
16635_loop0_10_rule(Parser *p)
16636{
16637 D(p->level++);
16638 if (p->error_indicator) {
16639 D(p->level--);
16640 return NULL;
16641 }
16642 void *_res = NULL;
16643 int _mark = p->mark;
16644 int _start_mark = p->mark;
16645 void **_children = PyMem_Malloc(sizeof(void *));
16646 if (!_children) {
16647 p->error_indicator = 1;
16648 PyErr_NoMemory();
16649 D(p->level--);
16650 return NULL;
16651 }
16652 ssize_t _children_capacity = 1;
16653 ssize_t _n = 0;
16654 { // ',' expression
16655 if (p->error_indicator) {
16656 D(p->level--);
16657 return NULL;
16658 }
16659 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
16660 Token * _literal;
16661 expr_ty elem;
16662 while (
16663 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16664 &&
16665 (elem = expression_rule(p)) // expression
16666 )
16667 {
16668 _res = elem;
16669 if (_res == NULL && PyErr_Occurred()) {
16670 p->error_indicator = 1;
16671 PyMem_Free(_children);
16672 D(p->level--);
16673 return NULL;
16674 }
16675 if (_n == _children_capacity) {
16676 _children_capacity *= 2;
16677 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16678 if (!_new_children) {
16679 p->error_indicator = 1;
16680 PyErr_NoMemory();
16681 D(p->level--);
16682 return NULL;
16683 }
16684 _children = _new_children;
16685 }
16686 _children[_n++] = _res;
16687 _mark = p->mark;
16688 }
16689 p->mark = _mark;
16690 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
16691 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
16692 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016693 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016694 if (!_seq) {
16695 PyMem_Free(_children);
16696 p->error_indicator = 1;
16697 PyErr_NoMemory();
16698 D(p->level--);
16699 return NULL;
16700 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016701 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016702 PyMem_Free(_children);
16703 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
16704 D(p->level--);
16705 return _seq;
16706}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016707
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016708// _gather_9: expression _loop0_10
16709static asdl_seq *
16710_gather_9_rule(Parser *p)
16711{
16712 D(p->level++);
16713 if (p->error_indicator) {
16714 D(p->level--);
16715 return NULL;
16716 }
16717 asdl_seq * _res = NULL;
16718 int _mark = p->mark;
16719 { // expression _loop0_10
16720 if (p->error_indicator) {
16721 D(p->level--);
16722 return NULL;
16723 }
16724 D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
16725 expr_ty elem;
16726 asdl_seq * seq;
16727 if (
16728 (elem = expression_rule(p)) // expression
16729 &&
16730 (seq = _loop0_10_rule(p)) // _loop0_10
16731 )
16732 {
16733 D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
16734 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16735 goto done;
16736 }
16737 p->mark = _mark;
16738 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
16739 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
16740 }
16741 _res = NULL;
16742 done:
16743 D(p->level--);
16744 return _res;
16745}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016746
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016747// _loop1_11: statement
16748static asdl_seq *
16749_loop1_11_rule(Parser *p)
16750{
16751 D(p->level++);
16752 if (p->error_indicator) {
16753 D(p->level--);
16754 return NULL;
16755 }
16756 void *_res = NULL;
16757 int _mark = p->mark;
16758 int _start_mark = p->mark;
16759 void **_children = PyMem_Malloc(sizeof(void *));
16760 if (!_children) {
16761 p->error_indicator = 1;
16762 PyErr_NoMemory();
16763 D(p->level--);
16764 return NULL;
16765 }
16766 ssize_t _children_capacity = 1;
16767 ssize_t _n = 0;
16768 { // statement
16769 if (p->error_indicator) {
16770 D(p->level--);
16771 return NULL;
16772 }
16773 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010016774 asdl_stmt_seq* statement_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016775 while (
16776 (statement_var = statement_rule(p)) // statement
16777 )
16778 {
16779 _res = statement_var;
16780 if (_n == _children_capacity) {
16781 _children_capacity *= 2;
16782 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16783 if (!_new_children) {
16784 p->error_indicator = 1;
16785 PyErr_NoMemory();
16786 D(p->level--);
16787 return NULL;
16788 }
16789 _children = _new_children;
16790 }
16791 _children[_n++] = _res;
16792 _mark = p->mark;
16793 }
16794 p->mark = _mark;
16795 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
16796 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
16797 }
16798 if (_n == 0 || p->error_indicator) {
16799 PyMem_Free(_children);
16800 D(p->level--);
16801 return NULL;
16802 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016803 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016804 if (!_seq) {
16805 PyMem_Free(_children);
16806 p->error_indicator = 1;
16807 PyErr_NoMemory();
16808 D(p->level--);
16809 return NULL;
16810 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016811 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016812 PyMem_Free(_children);
16813 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
16814 D(p->level--);
16815 return _seq;
16816}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016817
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016818// _loop0_13: ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016819static asdl_seq *
16820_loop0_13_rule(Parser *p)
16821{
16822 D(p->level++);
16823 if (p->error_indicator) {
16824 D(p->level--);
16825 return NULL;
16826 }
16827 void *_res = NULL;
16828 int _mark = p->mark;
16829 int _start_mark = p->mark;
16830 void **_children = PyMem_Malloc(sizeof(void *));
16831 if (!_children) {
16832 p->error_indicator = 1;
16833 PyErr_NoMemory();
16834 D(p->level--);
16835 return NULL;
16836 }
16837 ssize_t _children_capacity = 1;
16838 ssize_t _n = 0;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016839 { // ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016840 if (p->error_indicator) {
16841 D(p->level--);
16842 return NULL;
16843 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016844 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016845 Token * _literal;
16846 stmt_ty elem;
16847 while (
16848 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
16849 &&
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016850 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016851 )
16852 {
16853 _res = elem;
16854 if (_res == NULL && PyErr_Occurred()) {
16855 p->error_indicator = 1;
16856 PyMem_Free(_children);
16857 D(p->level--);
16858 return NULL;
16859 }
16860 if (_n == _children_capacity) {
16861 _children_capacity *= 2;
16862 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16863 if (!_new_children) {
16864 p->error_indicator = 1;
16865 PyErr_NoMemory();
16866 D(p->level--);
16867 return NULL;
16868 }
16869 _children = _new_children;
16870 }
16871 _children[_n++] = _res;
16872 _mark = p->mark;
16873 }
16874 p->mark = _mark;
16875 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016876 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016877 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016878 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016879 if (!_seq) {
16880 PyMem_Free(_children);
16881 p->error_indicator = 1;
16882 PyErr_NoMemory();
16883 D(p->level--);
16884 return NULL;
16885 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016886 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016887 PyMem_Free(_children);
16888 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
16889 D(p->level--);
16890 return _seq;
16891}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016892
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016893// _gather_12: simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016894static asdl_seq *
16895_gather_12_rule(Parser *p)
16896{
16897 D(p->level++);
16898 if (p->error_indicator) {
16899 D(p->level--);
16900 return NULL;
16901 }
16902 asdl_seq * _res = NULL;
16903 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016904 { // simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016905 if (p->error_indicator) {
16906 D(p->level--);
16907 return NULL;
16908 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016909 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 +010016910 stmt_ty elem;
16911 asdl_seq * seq;
16912 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016913 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016914 &&
16915 (seq = _loop0_13_rule(p)) // _loop0_13
16916 )
16917 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016918 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 +010016919 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16920 goto done;
16921 }
16922 p->mark = _mark;
16923 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016925 }
16926 _res = NULL;
16927 done:
16928 D(p->level--);
16929 return _res;
16930}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016931
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016932// _tmp_14: 'import' | 'from'
16933static void *
16934_tmp_14_rule(Parser *p)
16935{
16936 D(p->level++);
16937 if (p->error_indicator) {
16938 D(p->level--);
16939 return NULL;
16940 }
16941 void * _res = NULL;
16942 int _mark = p->mark;
16943 { // 'import'
16944 if (p->error_indicator) {
16945 D(p->level--);
16946 return NULL;
16947 }
16948 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
16949 Token * _keyword;
16950 if (
16951 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
16952 )
16953 {
16954 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
16955 _res = _keyword;
16956 goto done;
16957 }
16958 p->mark = _mark;
16959 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16960 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
16961 }
16962 { // 'from'
16963 if (p->error_indicator) {
16964 D(p->level--);
16965 return NULL;
16966 }
16967 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
16968 Token * _keyword;
16969 if (
16970 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
16971 )
16972 {
16973 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
16974 _res = _keyword;
16975 goto done;
16976 }
16977 p->mark = _mark;
16978 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16979 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
16980 }
16981 _res = NULL;
16982 done:
16983 D(p->level--);
16984 return _res;
16985}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016986
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016987// _tmp_15: 'def' | '@' | ASYNC
16988static void *
16989_tmp_15_rule(Parser *p)
16990{
16991 D(p->level++);
16992 if (p->error_indicator) {
16993 D(p->level--);
16994 return NULL;
16995 }
16996 void * _res = NULL;
16997 int _mark = p->mark;
16998 { // 'def'
16999 if (p->error_indicator) {
17000 D(p->level--);
17001 return NULL;
17002 }
17003 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
17004 Token * _keyword;
17005 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017006 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017007 )
17008 {
17009 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
17010 _res = _keyword;
17011 goto done;
17012 }
17013 p->mark = _mark;
17014 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
17015 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
17016 }
17017 { // '@'
17018 if (p->error_indicator) {
17019 D(p->level--);
17020 return NULL;
17021 }
17022 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
17023 Token * _literal;
17024 if (
17025 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
17026 )
17027 {
17028 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
17029 _res = _literal;
17030 goto done;
17031 }
17032 p->mark = _mark;
17033 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
17034 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
17035 }
17036 { // ASYNC
17037 if (p->error_indicator) {
17038 D(p->level--);
17039 return NULL;
17040 }
17041 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
17042 Token * async_var;
17043 if (
17044 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
17045 )
17046 {
17047 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
17048 _res = async_var;
17049 goto done;
17050 }
17051 p->mark = _mark;
17052 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
17053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
17054 }
17055 _res = NULL;
17056 done:
17057 D(p->level--);
17058 return _res;
17059}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000017060
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017061// _tmp_16: 'class' | '@'
17062static void *
17063_tmp_16_rule(Parser *p)
17064{
17065 D(p->level++);
17066 if (p->error_indicator) {
17067 D(p->level--);
17068 return NULL;
17069 }
17070 void * _res = NULL;
17071 int _mark = p->mark;
17072 { // 'class'
17073 if (p->error_indicator) {
17074 D(p->level--);
17075 return NULL;
17076 }
17077 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
17078 Token * _keyword;
17079 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017080 (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017081 )
17082 {
17083 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
17084 _res = _keyword;
17085 goto done;
17086 }
17087 p->mark = _mark;
17088 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
17089 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
17090 }
17091 { // '@'
17092 if (p->error_indicator) {
17093 D(p->level--);
17094 return NULL;
17095 }
17096 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
17097 Token * _literal;
17098 if (
17099 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
17100 )
17101 {
17102 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
17103 _res = _literal;
17104 goto done;
17105 }
17106 p->mark = _mark;
17107 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
17108 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
17109 }
17110 _res = NULL;
17111 done:
17112 D(p->level--);
17113 return _res;
17114}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000017115
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017116// _tmp_17: 'with' | ASYNC
17117static void *
17118_tmp_17_rule(Parser *p)
17119{
17120 D(p->level++);
17121 if (p->error_indicator) {
17122 D(p->level--);
17123 return NULL;
17124 }
17125 void * _res = NULL;
17126 int _mark = p->mark;
17127 { // 'with'
17128 if (p->error_indicator) {
17129 D(p->level--);
17130 return NULL;
17131 }
17132 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
17133 Token * _keyword;
17134 if (
17135 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
17136 )
17137 {
17138 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
17139 _res = _keyword;
17140 goto done;
17141 }
17142 p->mark = _mark;
17143 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
17144 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
17145 }
17146 { // ASYNC
17147 if (p->error_indicator) {
17148 D(p->level--);
17149 return NULL;
17150 }
17151 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
17152 Token * async_var;
17153 if (
17154 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
17155 )
17156 {
17157 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
17158 _res = async_var;
17159 goto done;
17160 }
17161 p->mark = _mark;
17162 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
17163 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
17164 }
17165 _res = NULL;
17166 done:
17167 D(p->level--);
17168 return _res;
17169}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000017170
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017171// _tmp_18: 'for' | ASYNC
17172static void *
17173_tmp_18_rule(Parser *p)
17174{
17175 D(p->level++);
17176 if (p->error_indicator) {
17177 D(p->level--);
17178 return NULL;
17179 }
17180 void * _res = NULL;
17181 int _mark = p->mark;
17182 { // 'for'
17183 if (p->error_indicator) {
17184 D(p->level--);
17185 return NULL;
17186 }
17187 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
17188 Token * _keyword;
17189 if (
17190 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
17191 )
17192 {
17193 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
17194 _res = _keyword;
17195 goto done;
17196 }
17197 p->mark = _mark;
17198 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
17199 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
17200 }
17201 { // ASYNC
17202 if (p->error_indicator) {
17203 D(p->level--);
17204 return NULL;
17205 }
17206 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
17207 Token * async_var;
17208 if (
17209 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
17210 )
17211 {
17212 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
17213 _res = async_var;
17214 goto done;
17215 }
17216 p->mark = _mark;
17217 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
17218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
17219 }
17220 _res = NULL;
17221 done:
17222 D(p->level--);
17223 return _res;
17224}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000017225
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017226// _tmp_19: '=' annotated_rhs
17227static void *
17228_tmp_19_rule(Parser *p)
17229{
17230 D(p->level++);
17231 if (p->error_indicator) {
17232 D(p->level--);
17233 return NULL;
17234 }
17235 void * _res = NULL;
17236 int _mark = p->mark;
17237 { // '=' annotated_rhs
17238 if (p->error_indicator) {
17239 D(p->level--);
17240 return NULL;
17241 }
17242 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
17243 Token * _literal;
17244 expr_ty d;
17245 if (
17246 (_literal = _PyPegen_expect_token(p, 22)) // token='='
17247 &&
17248 (d = annotated_rhs_rule(p)) // annotated_rhs
17249 )
17250 {
17251 D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
17252 _res = d;
17253 if (_res == NULL && PyErr_Occurred()) {
17254 p->error_indicator = 1;
17255 D(p->level--);
17256 return NULL;
17257 }
17258 goto done;
17259 }
17260 p->mark = _mark;
17261 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
17262 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
17263 }
17264 _res = NULL;
17265 done:
17266 D(p->level--);
17267 return _res;
17268}
17269
17270// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
17271static void *
17272_tmp_20_rule(Parser *p)
17273{
17274 D(p->level++);
17275 if (p->error_indicator) {
17276 D(p->level--);
17277 return NULL;
17278 }
17279 void * _res = NULL;
17280 int _mark = p->mark;
17281 { // '(' single_target ')'
17282 if (p->error_indicator) {
17283 D(p->level--);
17284 return NULL;
17285 }
17286 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
17287 Token * _literal;
17288 Token * _literal_1;
17289 expr_ty b;
17290 if (
17291 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17292 &&
17293 (b = single_target_rule(p)) // single_target
17294 &&
17295 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17296 )
17297 {
17298 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
17299 _res = b;
17300 if (_res == NULL && PyErr_Occurred()) {
17301 p->error_indicator = 1;
17302 D(p->level--);
17303 return NULL;
17304 }
17305 goto done;
17306 }
17307 p->mark = _mark;
17308 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
17309 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
17310 }
17311 { // single_subscript_attribute_target
17312 if (p->error_indicator) {
17313 D(p->level--);
17314 return NULL;
17315 }
17316 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
17317 expr_ty single_subscript_attribute_target_var;
17318 if (
17319 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
17320 )
17321 {
17322 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
17323 _res = single_subscript_attribute_target_var;
17324 goto done;
17325 }
17326 p->mark = _mark;
17327 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
17328 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
17329 }
17330 _res = NULL;
17331 done:
17332 D(p->level--);
17333 return _res;
17334}
17335
17336// _tmp_21: '=' annotated_rhs
17337static void *
17338_tmp_21_rule(Parser *p)
17339{
17340 D(p->level++);
17341 if (p->error_indicator) {
17342 D(p->level--);
17343 return NULL;
17344 }
17345 void * _res = NULL;
17346 int _mark = p->mark;
17347 { // '=' annotated_rhs
17348 if (p->error_indicator) {
17349 D(p->level--);
17350 return NULL;
17351 }
17352 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
17353 Token * _literal;
17354 expr_ty d;
17355 if (
17356 (_literal = _PyPegen_expect_token(p, 22)) // token='='
17357 &&
17358 (d = annotated_rhs_rule(p)) // annotated_rhs
17359 )
17360 {
17361 D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
17362 _res = d;
17363 if (_res == NULL && PyErr_Occurred()) {
17364 p->error_indicator = 1;
17365 D(p->level--);
17366 return NULL;
17367 }
17368 goto done;
17369 }
17370 p->mark = _mark;
17371 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
17372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
17373 }
17374 _res = NULL;
17375 done:
17376 D(p->level--);
17377 return _res;
17378}
17379
17380// _loop1_22: (star_targets '=')
17381static asdl_seq *
17382_loop1_22_rule(Parser *p)
17383{
17384 D(p->level++);
17385 if (p->error_indicator) {
17386 D(p->level--);
17387 return NULL;
17388 }
17389 void *_res = NULL;
17390 int _mark = p->mark;
17391 int _start_mark = p->mark;
17392 void **_children = PyMem_Malloc(sizeof(void *));
17393 if (!_children) {
17394 p->error_indicator = 1;
17395 PyErr_NoMemory();
17396 D(p->level--);
17397 return NULL;
17398 }
17399 ssize_t _children_capacity = 1;
17400 ssize_t _n = 0;
17401 { // (star_targets '=')
17402 if (p->error_indicator) {
17403 D(p->level--);
17404 return NULL;
17405 }
17406 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000017407 void *_tmp_146_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017408 while (
Pablo Galindo206cbda2021-02-07 18:42:21 +000017409 (_tmp_146_var = _tmp_146_rule(p)) // star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017410 )
17411 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000017412 _res = _tmp_146_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017413 if (_n == _children_capacity) {
17414 _children_capacity *= 2;
17415 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17416 if (!_new_children) {
17417 p->error_indicator = 1;
17418 PyErr_NoMemory();
17419 D(p->level--);
17420 return NULL;
17421 }
17422 _children = _new_children;
17423 }
17424 _children[_n++] = _res;
17425 _mark = p->mark;
17426 }
17427 p->mark = _mark;
17428 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
17429 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
17430 }
17431 if (_n == 0 || p->error_indicator) {
17432 PyMem_Free(_children);
17433 D(p->level--);
17434 return NULL;
17435 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017436 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017437 if (!_seq) {
17438 PyMem_Free(_children);
17439 p->error_indicator = 1;
17440 PyErr_NoMemory();
17441 D(p->level--);
17442 return NULL;
17443 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017444 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017445 PyMem_Free(_children);
17446 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
17447 D(p->level--);
17448 return _seq;
17449}
17450
17451// _tmp_23: yield_expr | star_expressions
17452static void *
17453_tmp_23_rule(Parser *p)
17454{
17455 D(p->level++);
17456 if (p->error_indicator) {
17457 D(p->level--);
17458 return NULL;
17459 }
17460 void * _res = NULL;
17461 int _mark = p->mark;
17462 { // yield_expr
17463 if (p->error_indicator) {
17464 D(p->level--);
17465 return NULL;
17466 }
17467 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
17468 expr_ty yield_expr_var;
17469 if (
17470 (yield_expr_var = yield_expr_rule(p)) // yield_expr
17471 )
17472 {
17473 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
17474 _res = yield_expr_var;
17475 goto done;
17476 }
17477 p->mark = _mark;
17478 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
17479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
17480 }
17481 { // star_expressions
17482 if (p->error_indicator) {
17483 D(p->level--);
17484 return NULL;
17485 }
17486 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
17487 expr_ty star_expressions_var;
17488 if (
17489 (star_expressions_var = star_expressions_rule(p)) // star_expressions
17490 )
17491 {
17492 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
17493 _res = star_expressions_var;
17494 goto done;
17495 }
17496 p->mark = _mark;
17497 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
17498 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
17499 }
17500 _res = NULL;
17501 done:
17502 D(p->level--);
17503 return _res;
17504}
17505
17506// _tmp_24: yield_expr | star_expressions
17507static void *
17508_tmp_24_rule(Parser *p)
17509{
17510 D(p->level++);
17511 if (p->error_indicator) {
17512 D(p->level--);
17513 return NULL;
17514 }
17515 void * _res = NULL;
17516 int _mark = p->mark;
17517 { // yield_expr
17518 if (p->error_indicator) {
17519 D(p->level--);
17520 return NULL;
17521 }
17522 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
17523 expr_ty yield_expr_var;
17524 if (
17525 (yield_expr_var = yield_expr_rule(p)) // yield_expr
17526 )
17527 {
17528 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
17529 _res = yield_expr_var;
17530 goto done;
17531 }
17532 p->mark = _mark;
17533 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
17534 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
17535 }
17536 { // star_expressions
17537 if (p->error_indicator) {
17538 D(p->level--);
17539 return NULL;
17540 }
17541 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
17542 expr_ty star_expressions_var;
17543 if (
17544 (star_expressions_var = star_expressions_rule(p)) // star_expressions
17545 )
17546 {
17547 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
17548 _res = star_expressions_var;
17549 goto done;
17550 }
17551 p->mark = _mark;
17552 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
17553 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
17554 }
17555 _res = NULL;
17556 done:
17557 D(p->level--);
17558 return _res;
17559}
17560
17561// _loop0_26: ',' NAME
17562static asdl_seq *
17563_loop0_26_rule(Parser *p)
17564{
17565 D(p->level++);
17566 if (p->error_indicator) {
17567 D(p->level--);
17568 return NULL;
17569 }
17570 void *_res = NULL;
17571 int _mark = p->mark;
17572 int _start_mark = p->mark;
17573 void **_children = PyMem_Malloc(sizeof(void *));
17574 if (!_children) {
17575 p->error_indicator = 1;
17576 PyErr_NoMemory();
17577 D(p->level--);
17578 return NULL;
17579 }
17580 ssize_t _children_capacity = 1;
17581 ssize_t _n = 0;
17582 { // ',' NAME
17583 if (p->error_indicator) {
17584 D(p->level--);
17585 return NULL;
17586 }
17587 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
17588 Token * _literal;
17589 expr_ty elem;
17590 while (
17591 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17592 &&
17593 (elem = _PyPegen_name_token(p)) // NAME
17594 )
17595 {
17596 _res = elem;
17597 if (_res == NULL && PyErr_Occurred()) {
17598 p->error_indicator = 1;
17599 PyMem_Free(_children);
17600 D(p->level--);
17601 return NULL;
17602 }
17603 if (_n == _children_capacity) {
17604 _children_capacity *= 2;
17605 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17606 if (!_new_children) {
17607 p->error_indicator = 1;
17608 PyErr_NoMemory();
17609 D(p->level--);
17610 return NULL;
17611 }
17612 _children = _new_children;
17613 }
17614 _children[_n++] = _res;
17615 _mark = p->mark;
17616 }
17617 p->mark = _mark;
17618 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
17619 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
17620 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017621 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017622 if (!_seq) {
17623 PyMem_Free(_children);
17624 p->error_indicator = 1;
17625 PyErr_NoMemory();
17626 D(p->level--);
17627 return NULL;
17628 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017629 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017630 PyMem_Free(_children);
17631 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
17632 D(p->level--);
17633 return _seq;
17634}
17635
17636// _gather_25: NAME _loop0_26
17637static asdl_seq *
17638_gather_25_rule(Parser *p)
17639{
17640 D(p->level++);
17641 if (p->error_indicator) {
17642 D(p->level--);
17643 return NULL;
17644 }
17645 asdl_seq * _res = NULL;
17646 int _mark = p->mark;
17647 { // NAME _loop0_26
17648 if (p->error_indicator) {
17649 D(p->level--);
17650 return NULL;
17651 }
17652 D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
17653 expr_ty elem;
17654 asdl_seq * seq;
17655 if (
17656 (elem = _PyPegen_name_token(p)) // NAME
17657 &&
17658 (seq = _loop0_26_rule(p)) // _loop0_26
17659 )
17660 {
17661 D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
17662 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
17663 goto done;
17664 }
17665 p->mark = _mark;
17666 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
17667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
17668 }
17669 _res = NULL;
17670 done:
17671 D(p->level--);
17672 return _res;
17673}
17674
17675// _loop0_28: ',' NAME
17676static asdl_seq *
17677_loop0_28_rule(Parser *p)
17678{
17679 D(p->level++);
17680 if (p->error_indicator) {
17681 D(p->level--);
17682 return NULL;
17683 }
17684 void *_res = NULL;
17685 int _mark = p->mark;
17686 int _start_mark = p->mark;
17687 void **_children = PyMem_Malloc(sizeof(void *));
17688 if (!_children) {
17689 p->error_indicator = 1;
17690 PyErr_NoMemory();
17691 D(p->level--);
17692 return NULL;
17693 }
17694 ssize_t _children_capacity = 1;
17695 ssize_t _n = 0;
17696 { // ',' NAME
17697 if (p->error_indicator) {
17698 D(p->level--);
17699 return NULL;
17700 }
17701 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
17702 Token * _literal;
17703 expr_ty elem;
17704 while (
17705 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17706 &&
17707 (elem = _PyPegen_name_token(p)) // NAME
17708 )
17709 {
17710 _res = elem;
17711 if (_res == NULL && PyErr_Occurred()) {
17712 p->error_indicator = 1;
17713 PyMem_Free(_children);
17714 D(p->level--);
17715 return NULL;
17716 }
17717 if (_n == _children_capacity) {
17718 _children_capacity *= 2;
17719 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17720 if (!_new_children) {
17721 p->error_indicator = 1;
17722 PyErr_NoMemory();
17723 D(p->level--);
17724 return NULL;
17725 }
17726 _children = _new_children;
17727 }
17728 _children[_n++] = _res;
17729 _mark = p->mark;
17730 }
17731 p->mark = _mark;
17732 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
17733 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
17734 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017735 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017736 if (!_seq) {
17737 PyMem_Free(_children);
17738 p->error_indicator = 1;
17739 PyErr_NoMemory();
17740 D(p->level--);
17741 return NULL;
17742 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017743 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017744 PyMem_Free(_children);
17745 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
17746 D(p->level--);
17747 return _seq;
17748}
17749
17750// _gather_27: NAME _loop0_28
17751static asdl_seq *
17752_gather_27_rule(Parser *p)
17753{
17754 D(p->level++);
17755 if (p->error_indicator) {
17756 D(p->level--);
17757 return NULL;
17758 }
17759 asdl_seq * _res = NULL;
17760 int _mark = p->mark;
17761 { // NAME _loop0_28
17762 if (p->error_indicator) {
17763 D(p->level--);
17764 return NULL;
17765 }
17766 D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
17767 expr_ty elem;
17768 asdl_seq * seq;
17769 if (
17770 (elem = _PyPegen_name_token(p)) // NAME
17771 &&
17772 (seq = _loop0_28_rule(p)) // _loop0_28
17773 )
17774 {
17775 D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
17776 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
17777 goto done;
17778 }
17779 p->mark = _mark;
17780 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
17781 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
17782 }
17783 _res = NULL;
17784 done:
17785 D(p->level--);
17786 return _res;
17787}
17788
17789// _tmp_29: ',' expression
17790static void *
17791_tmp_29_rule(Parser *p)
17792{
17793 D(p->level++);
17794 if (p->error_indicator) {
17795 D(p->level--);
17796 return NULL;
17797 }
17798 void * _res = NULL;
17799 int _mark = p->mark;
17800 { // ',' expression
17801 if (p->error_indicator) {
17802 D(p->level--);
17803 return NULL;
17804 }
17805 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
17806 Token * _literal;
17807 expr_ty z;
17808 if (
17809 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17810 &&
17811 (z = expression_rule(p)) // expression
17812 )
17813 {
17814 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
17815 _res = z;
17816 if (_res == NULL && PyErr_Occurred()) {
17817 p->error_indicator = 1;
17818 D(p->level--);
17819 return NULL;
17820 }
17821 goto done;
17822 }
17823 p->mark = _mark;
17824 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
17825 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
17826 }
17827 _res = NULL;
17828 done:
17829 D(p->level--);
17830 return _res;
17831}
17832
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017833// _tmp_30: ';' | NEWLINE
17834static void *
17835_tmp_30_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017836{
17837 D(p->level++);
17838 if (p->error_indicator) {
17839 D(p->level--);
17840 return NULL;
17841 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017842 void * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017843 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017844 { // ';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017845 if (p->error_indicator) {
17846 D(p->level--);
17847 return NULL;
17848 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017849 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
17850 Token * _literal;
17851 if (
17852 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017853 )
17854 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017855 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
17856 _res = _literal;
17857 goto done;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017858 }
17859 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017860 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
17861 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017862 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017863 { // NEWLINE
17864 if (p->error_indicator) {
17865 D(p->level--);
17866 return NULL;
17867 }
17868 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
17869 Token * newline_var;
17870 if (
17871 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
17872 )
17873 {
17874 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
17875 _res = newline_var;
17876 goto done;
17877 }
17878 p->mark = _mark;
17879 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
17880 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017881 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017882 _res = NULL;
17883 done:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017884 D(p->level--);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017885 return _res;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017886}
17887
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017888// _loop0_31: ('.' | '...')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017889static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017890_loop0_31_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017891{
17892 D(p->level++);
17893 if (p->error_indicator) {
17894 D(p->level--);
17895 return NULL;
17896 }
17897 void *_res = NULL;
17898 int _mark = p->mark;
17899 int _start_mark = p->mark;
17900 void **_children = PyMem_Malloc(sizeof(void *));
17901 if (!_children) {
17902 p->error_indicator = 1;
17903 PyErr_NoMemory();
17904 D(p->level--);
17905 return NULL;
17906 }
17907 ssize_t _children_capacity = 1;
17908 ssize_t _n = 0;
17909 { // ('.' | '...')
17910 if (p->error_indicator) {
17911 D(p->level--);
17912 return NULL;
17913 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017914 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000017915 void *_tmp_147_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017916 while (
Pablo Galindo206cbda2021-02-07 18:42:21 +000017917 (_tmp_147_var = _tmp_147_rule(p)) // '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017918 )
17919 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000017920 _res = _tmp_147_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017921 if (_n == _children_capacity) {
17922 _children_capacity *= 2;
17923 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17924 if (!_new_children) {
17925 p->error_indicator = 1;
17926 PyErr_NoMemory();
17927 D(p->level--);
17928 return NULL;
17929 }
17930 _children = _new_children;
17931 }
17932 _children[_n++] = _res;
17933 _mark = p->mark;
17934 }
17935 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017936 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
17937 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
17938 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017939 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017940 if (!_seq) {
17941 PyMem_Free(_children);
17942 p->error_indicator = 1;
17943 PyErr_NoMemory();
17944 D(p->level--);
17945 return NULL;
17946 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017947 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017948 PyMem_Free(_children);
17949 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
17950 D(p->level--);
17951 return _seq;
17952}
17953
17954// _loop1_32: ('.' | '...')
17955static asdl_seq *
17956_loop1_32_rule(Parser *p)
17957{
17958 D(p->level++);
17959 if (p->error_indicator) {
17960 D(p->level--);
17961 return NULL;
17962 }
17963 void *_res = NULL;
17964 int _mark = p->mark;
17965 int _start_mark = p->mark;
17966 void **_children = PyMem_Malloc(sizeof(void *));
17967 if (!_children) {
17968 p->error_indicator = 1;
17969 PyErr_NoMemory();
17970 D(p->level--);
17971 return NULL;
17972 }
17973 ssize_t _children_capacity = 1;
17974 ssize_t _n = 0;
17975 { // ('.' | '...')
17976 if (p->error_indicator) {
17977 D(p->level--);
17978 return NULL;
17979 }
17980 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000017981 void *_tmp_148_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017982 while (
Pablo Galindo206cbda2021-02-07 18:42:21 +000017983 (_tmp_148_var = _tmp_148_rule(p)) // '.' | '...'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017984 )
17985 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000017986 _res = _tmp_148_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017987 if (_n == _children_capacity) {
17988 _children_capacity *= 2;
17989 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17990 if (!_new_children) {
17991 p->error_indicator = 1;
17992 PyErr_NoMemory();
17993 D(p->level--);
17994 return NULL;
17995 }
17996 _children = _new_children;
17997 }
17998 _children[_n++] = _res;
17999 _mark = p->mark;
18000 }
18001 p->mark = _mark;
18002 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018003 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
18004 }
18005 if (_n == 0 || p->error_indicator) {
18006 PyMem_Free(_children);
18007 D(p->level--);
18008 return NULL;
18009 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018010 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018011 if (!_seq) {
18012 PyMem_Free(_children);
18013 p->error_indicator = 1;
18014 PyErr_NoMemory();
18015 D(p->level--);
18016 return NULL;
18017 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018018 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018019 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018020 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018021 D(p->level--);
18022 return _seq;
18023}
18024
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018025// _loop0_34: ',' import_from_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018026static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018027_loop0_34_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018028{
18029 D(p->level++);
18030 if (p->error_indicator) {
18031 D(p->level--);
18032 return NULL;
18033 }
18034 void *_res = NULL;
18035 int _mark = p->mark;
18036 int _start_mark = p->mark;
18037 void **_children = PyMem_Malloc(sizeof(void *));
18038 if (!_children) {
18039 p->error_indicator = 1;
18040 PyErr_NoMemory();
18041 D(p->level--);
18042 return NULL;
18043 }
18044 ssize_t _children_capacity = 1;
18045 ssize_t _n = 0;
18046 { // ',' import_from_as_name
18047 if (p->error_indicator) {
18048 D(p->level--);
18049 return NULL;
18050 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018051 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 +010018052 Token * _literal;
18053 alias_ty elem;
18054 while (
18055 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18056 &&
18057 (elem = import_from_as_name_rule(p)) // import_from_as_name
18058 )
18059 {
18060 _res = elem;
18061 if (_res == NULL && PyErr_Occurred()) {
18062 p->error_indicator = 1;
18063 PyMem_Free(_children);
18064 D(p->level--);
18065 return NULL;
18066 }
18067 if (_n == _children_capacity) {
18068 _children_capacity *= 2;
18069 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18070 if (!_new_children) {
18071 p->error_indicator = 1;
18072 PyErr_NoMemory();
18073 D(p->level--);
18074 return NULL;
18075 }
18076 _children = _new_children;
18077 }
18078 _children[_n++] = _res;
18079 _mark = p->mark;
18080 }
18081 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018082 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
18084 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018085 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018086 if (!_seq) {
18087 PyMem_Free(_children);
18088 p->error_indicator = 1;
18089 PyErr_NoMemory();
18090 D(p->level--);
18091 return NULL;
18092 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018093 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018094 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018095 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018096 D(p->level--);
18097 return _seq;
18098}
18099
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018100// _gather_33: import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018101static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018102_gather_33_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018103{
18104 D(p->level++);
18105 if (p->error_indicator) {
18106 D(p->level--);
18107 return NULL;
18108 }
18109 asdl_seq * _res = NULL;
18110 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018111 { // import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018112 if (p->error_indicator) {
18113 D(p->level--);
18114 return NULL;
18115 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018116 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 +010018117 alias_ty elem;
18118 asdl_seq * seq;
18119 if (
18120 (elem = import_from_as_name_rule(p)) // import_from_as_name
18121 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018122 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018123 )
18124 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018125 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 +010018126 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18127 goto done;
18128 }
18129 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018130 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
18131 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018132 }
18133 _res = NULL;
18134 done:
18135 D(p->level--);
18136 return _res;
18137}
18138
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018139// _tmp_35: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018140static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018141_tmp_35_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018142{
18143 D(p->level++);
18144 if (p->error_indicator) {
18145 D(p->level--);
18146 return NULL;
18147 }
18148 void * _res = NULL;
18149 int _mark = p->mark;
18150 { // 'as' NAME
18151 if (p->error_indicator) {
18152 D(p->level--);
18153 return NULL;
18154 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018155 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018156 Token * _keyword;
18157 expr_ty z;
18158 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018159 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018160 &&
18161 (z = _PyPegen_name_token(p)) // NAME
18162 )
18163 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018164 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 +010018165 _res = z;
18166 if (_res == NULL && PyErr_Occurred()) {
18167 p->error_indicator = 1;
18168 D(p->level--);
18169 return NULL;
18170 }
18171 goto done;
18172 }
18173 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018174 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
18176 }
18177 _res = NULL;
18178 done:
18179 D(p->level--);
18180 return _res;
18181}
18182
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018183// _loop0_37: ',' dotted_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018184static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018185_loop0_37_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018186{
18187 D(p->level++);
18188 if (p->error_indicator) {
18189 D(p->level--);
18190 return NULL;
18191 }
18192 void *_res = NULL;
18193 int _mark = p->mark;
18194 int _start_mark = p->mark;
18195 void **_children = PyMem_Malloc(sizeof(void *));
18196 if (!_children) {
18197 p->error_indicator = 1;
18198 PyErr_NoMemory();
18199 D(p->level--);
18200 return NULL;
18201 }
18202 ssize_t _children_capacity = 1;
18203 ssize_t _n = 0;
18204 { // ',' dotted_as_name
18205 if (p->error_indicator) {
18206 D(p->level--);
18207 return NULL;
18208 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018209 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 +010018210 Token * _literal;
18211 alias_ty elem;
18212 while (
18213 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18214 &&
18215 (elem = dotted_as_name_rule(p)) // dotted_as_name
18216 )
18217 {
18218 _res = elem;
18219 if (_res == NULL && PyErr_Occurred()) {
18220 p->error_indicator = 1;
18221 PyMem_Free(_children);
18222 D(p->level--);
18223 return NULL;
18224 }
18225 if (_n == _children_capacity) {
18226 _children_capacity *= 2;
18227 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18228 if (!_new_children) {
18229 p->error_indicator = 1;
18230 PyErr_NoMemory();
18231 D(p->level--);
18232 return NULL;
18233 }
18234 _children = _new_children;
18235 }
18236 _children[_n++] = _res;
18237 _mark = p->mark;
18238 }
18239 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018240 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018241 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
18242 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018243 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018244 if (!_seq) {
18245 PyMem_Free(_children);
18246 p->error_indicator = 1;
18247 PyErr_NoMemory();
18248 D(p->level--);
18249 return NULL;
18250 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018251 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018252 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018253 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018254 D(p->level--);
18255 return _seq;
18256}
18257
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018258// _gather_36: dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018259static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018260_gather_36_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018261{
18262 D(p->level++);
18263 if (p->error_indicator) {
18264 D(p->level--);
18265 return NULL;
18266 }
18267 asdl_seq * _res = NULL;
18268 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018269 { // dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018270 if (p->error_indicator) {
18271 D(p->level--);
18272 return NULL;
18273 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018274 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 +010018275 alias_ty elem;
18276 asdl_seq * seq;
18277 if (
18278 (elem = dotted_as_name_rule(p)) // dotted_as_name
18279 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018280 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018281 )
18282 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018283 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 +010018284 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18285 goto done;
18286 }
18287 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018288 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
18289 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018290 }
18291 _res = NULL;
18292 done:
18293 D(p->level--);
18294 return _res;
18295}
18296
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018297// _tmp_38: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018298static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018299_tmp_38_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018300{
18301 D(p->level++);
18302 if (p->error_indicator) {
18303 D(p->level--);
18304 return NULL;
18305 }
18306 void * _res = NULL;
18307 int _mark = p->mark;
18308 { // 'as' NAME
18309 if (p->error_indicator) {
18310 D(p->level--);
18311 return NULL;
18312 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018313 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018314 Token * _keyword;
18315 expr_ty z;
18316 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018317 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018318 &&
18319 (z = _PyPegen_name_token(p)) // NAME
18320 )
18321 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018322 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 +010018323 _res = z;
18324 if (_res == NULL && PyErr_Occurred()) {
18325 p->error_indicator = 1;
18326 D(p->level--);
18327 return NULL;
18328 }
18329 goto done;
18330 }
18331 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018332 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018333 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
18334 }
18335 _res = NULL;
18336 done:
18337 D(p->level--);
18338 return _res;
18339}
18340
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018341// _loop0_40: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018342static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018343_loop0_40_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018344{
18345 D(p->level++);
18346 if (p->error_indicator) {
18347 D(p->level--);
18348 return NULL;
18349 }
18350 void *_res = NULL;
18351 int _mark = p->mark;
18352 int _start_mark = p->mark;
18353 void **_children = PyMem_Malloc(sizeof(void *));
18354 if (!_children) {
18355 p->error_indicator = 1;
18356 PyErr_NoMemory();
18357 D(p->level--);
18358 return NULL;
18359 }
18360 ssize_t _children_capacity = 1;
18361 ssize_t _n = 0;
18362 { // ',' with_item
18363 if (p->error_indicator) {
18364 D(p->level--);
18365 return NULL;
18366 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018367 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018368 Token * _literal;
18369 withitem_ty elem;
18370 while (
18371 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18372 &&
18373 (elem = with_item_rule(p)) // with_item
18374 )
18375 {
18376 _res = elem;
18377 if (_res == NULL && PyErr_Occurred()) {
18378 p->error_indicator = 1;
18379 PyMem_Free(_children);
18380 D(p->level--);
18381 return NULL;
18382 }
18383 if (_n == _children_capacity) {
18384 _children_capacity *= 2;
18385 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18386 if (!_new_children) {
18387 p->error_indicator = 1;
18388 PyErr_NoMemory();
18389 D(p->level--);
18390 return NULL;
18391 }
18392 _children = _new_children;
18393 }
18394 _children[_n++] = _res;
18395 _mark = p->mark;
18396 }
18397 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018398 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018399 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
18400 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018401 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018402 if (!_seq) {
18403 PyMem_Free(_children);
18404 p->error_indicator = 1;
18405 PyErr_NoMemory();
18406 D(p->level--);
18407 return NULL;
18408 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018409 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018410 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018411 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018412 D(p->level--);
18413 return _seq;
18414}
18415
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018416// _gather_39: with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018417static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018418_gather_39_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018419{
18420 D(p->level++);
18421 if (p->error_indicator) {
18422 D(p->level--);
18423 return NULL;
18424 }
18425 asdl_seq * _res = NULL;
18426 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018427 { // with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018428 if (p->error_indicator) {
18429 D(p->level--);
18430 return NULL;
18431 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018432 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 +010018433 withitem_ty elem;
18434 asdl_seq * seq;
18435 if (
18436 (elem = with_item_rule(p)) // with_item
18437 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018438 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018439 )
18440 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018441 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 +010018442 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18443 goto done;
18444 }
18445 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018446 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
18447 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018448 }
18449 _res = NULL;
18450 done:
18451 D(p->level--);
18452 return _res;
18453}
18454
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018455// _loop0_42: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018456static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018457_loop0_42_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018458{
18459 D(p->level++);
18460 if (p->error_indicator) {
18461 D(p->level--);
18462 return NULL;
18463 }
18464 void *_res = NULL;
18465 int _mark = p->mark;
18466 int _start_mark = p->mark;
18467 void **_children = PyMem_Malloc(sizeof(void *));
18468 if (!_children) {
18469 p->error_indicator = 1;
18470 PyErr_NoMemory();
18471 D(p->level--);
18472 return NULL;
18473 }
18474 ssize_t _children_capacity = 1;
18475 ssize_t _n = 0;
18476 { // ',' with_item
18477 if (p->error_indicator) {
18478 D(p->level--);
18479 return NULL;
18480 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018481 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018482 Token * _literal;
18483 withitem_ty elem;
18484 while (
18485 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18486 &&
18487 (elem = with_item_rule(p)) // with_item
18488 )
18489 {
18490 _res = elem;
18491 if (_res == NULL && PyErr_Occurred()) {
18492 p->error_indicator = 1;
18493 PyMem_Free(_children);
18494 D(p->level--);
18495 return NULL;
18496 }
18497 if (_n == _children_capacity) {
18498 _children_capacity *= 2;
18499 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18500 if (!_new_children) {
18501 p->error_indicator = 1;
18502 PyErr_NoMemory();
18503 D(p->level--);
18504 return NULL;
18505 }
18506 _children = _new_children;
18507 }
18508 _children[_n++] = _res;
18509 _mark = p->mark;
18510 }
18511 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018512 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018513 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
18514 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018515 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018516 if (!_seq) {
18517 PyMem_Free(_children);
18518 p->error_indicator = 1;
18519 PyErr_NoMemory();
18520 D(p->level--);
18521 return NULL;
18522 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018523 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018524 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018525 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018526 D(p->level--);
18527 return _seq;
18528}
18529
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018530// _gather_41: with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018531static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018532_gather_41_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018533{
18534 D(p->level++);
18535 if (p->error_indicator) {
18536 D(p->level--);
18537 return NULL;
18538 }
18539 asdl_seq * _res = NULL;
18540 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018541 { // with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018542 if (p->error_indicator) {
18543 D(p->level--);
18544 return NULL;
18545 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018546 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 +010018547 withitem_ty elem;
18548 asdl_seq * seq;
18549 if (
18550 (elem = with_item_rule(p)) // with_item
18551 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018552 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018553 )
18554 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018555 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 +010018556 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18557 goto done;
18558 }
18559 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018560 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
18561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018562 }
18563 _res = NULL;
18564 done:
18565 D(p->level--);
18566 return _res;
18567}
18568
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018569// _loop0_44: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018570static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018571_loop0_44_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018572{
18573 D(p->level++);
18574 if (p->error_indicator) {
18575 D(p->level--);
18576 return NULL;
18577 }
18578 void *_res = NULL;
18579 int _mark = p->mark;
18580 int _start_mark = p->mark;
18581 void **_children = PyMem_Malloc(sizeof(void *));
18582 if (!_children) {
18583 p->error_indicator = 1;
18584 PyErr_NoMemory();
18585 D(p->level--);
18586 return NULL;
18587 }
18588 ssize_t _children_capacity = 1;
18589 ssize_t _n = 0;
18590 { // ',' with_item
18591 if (p->error_indicator) {
18592 D(p->level--);
18593 return NULL;
18594 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018595 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018596 Token * _literal;
18597 withitem_ty elem;
18598 while (
18599 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18600 &&
18601 (elem = with_item_rule(p)) // with_item
18602 )
18603 {
18604 _res = elem;
18605 if (_res == NULL && PyErr_Occurred()) {
18606 p->error_indicator = 1;
18607 PyMem_Free(_children);
18608 D(p->level--);
18609 return NULL;
18610 }
18611 if (_n == _children_capacity) {
18612 _children_capacity *= 2;
18613 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18614 if (!_new_children) {
18615 p->error_indicator = 1;
18616 PyErr_NoMemory();
18617 D(p->level--);
18618 return NULL;
18619 }
18620 _children = _new_children;
18621 }
18622 _children[_n++] = _res;
18623 _mark = p->mark;
18624 }
18625 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018626 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018627 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
18628 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018629 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018630 if (!_seq) {
18631 PyMem_Free(_children);
18632 p->error_indicator = 1;
18633 PyErr_NoMemory();
18634 D(p->level--);
18635 return NULL;
18636 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018637 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018638 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018639 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018640 D(p->level--);
18641 return _seq;
18642}
18643
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018644// _gather_43: with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018645static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018646_gather_43_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018647{
18648 D(p->level++);
18649 if (p->error_indicator) {
18650 D(p->level--);
18651 return NULL;
18652 }
18653 asdl_seq * _res = NULL;
18654 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018655 { // with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018656 if (p->error_indicator) {
18657 D(p->level--);
18658 return NULL;
18659 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018660 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 +010018661 withitem_ty elem;
18662 asdl_seq * seq;
18663 if (
18664 (elem = with_item_rule(p)) // with_item
18665 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018666 (seq = _loop0_44_rule(p)) // _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018667 )
18668 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018669 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 +010018670 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18671 goto done;
18672 }
18673 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018674 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
18675 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018676 }
18677 _res = NULL;
18678 done:
18679 D(p->level--);
18680 return _res;
18681}
18682
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018683// _loop0_46: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018684static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018685_loop0_46_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018686{
18687 D(p->level++);
18688 if (p->error_indicator) {
18689 D(p->level--);
18690 return NULL;
18691 }
18692 void *_res = NULL;
18693 int _mark = p->mark;
18694 int _start_mark = p->mark;
18695 void **_children = PyMem_Malloc(sizeof(void *));
18696 if (!_children) {
18697 p->error_indicator = 1;
18698 PyErr_NoMemory();
18699 D(p->level--);
18700 return NULL;
18701 }
18702 ssize_t _children_capacity = 1;
18703 ssize_t _n = 0;
18704 { // ',' with_item
18705 if (p->error_indicator) {
18706 D(p->level--);
18707 return NULL;
18708 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018709 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018710 Token * _literal;
18711 withitem_ty elem;
18712 while (
18713 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18714 &&
18715 (elem = with_item_rule(p)) // with_item
18716 )
18717 {
18718 _res = elem;
18719 if (_res == NULL && PyErr_Occurred()) {
18720 p->error_indicator = 1;
18721 PyMem_Free(_children);
18722 D(p->level--);
18723 return NULL;
18724 }
18725 if (_n == _children_capacity) {
18726 _children_capacity *= 2;
18727 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18728 if (!_new_children) {
18729 p->error_indicator = 1;
18730 PyErr_NoMemory();
18731 D(p->level--);
18732 return NULL;
18733 }
18734 _children = _new_children;
18735 }
18736 _children[_n++] = _res;
18737 _mark = p->mark;
18738 }
18739 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018740 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
18742 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018743 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018744 if (!_seq) {
18745 PyMem_Free(_children);
18746 p->error_indicator = 1;
18747 PyErr_NoMemory();
18748 D(p->level--);
18749 return NULL;
18750 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018751 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018752 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018753 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018754 D(p->level--);
18755 return _seq;
18756}
18757
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018758// _gather_45: with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018759static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018760_gather_45_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018761{
18762 D(p->level++);
18763 if (p->error_indicator) {
18764 D(p->level--);
18765 return NULL;
18766 }
18767 asdl_seq * _res = NULL;
18768 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018769 { // with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018770 if (p->error_indicator) {
18771 D(p->level--);
18772 return NULL;
18773 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018774 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 +010018775 withitem_ty elem;
18776 asdl_seq * seq;
18777 if (
18778 (elem = with_item_rule(p)) // with_item
18779 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018780 (seq = _loop0_46_rule(p)) // _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018781 )
18782 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018783 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 +010018784 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18785 goto done;
18786 }
18787 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018788 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
18789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018790 }
18791 _res = NULL;
18792 done:
18793 D(p->level--);
18794 return _res;
18795}
18796
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018797// _tmp_47: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018798static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018799_tmp_47_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018800{
18801 D(p->level++);
18802 if (p->error_indicator) {
18803 D(p->level--);
18804 return NULL;
18805 }
18806 void * _res = NULL;
18807 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018808 { // ','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018809 if (p->error_indicator) {
18810 D(p->level--);
18811 return NULL;
18812 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018813 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
18814 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018815 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018816 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018817 )
18818 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018819 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
18820 _res = _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018821 goto done;
18822 }
18823 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018824 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18825 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
18826 }
18827 { // ')'
18828 if (p->error_indicator) {
18829 D(p->level--);
18830 return NULL;
18831 }
18832 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
18833 Token * _literal;
18834 if (
18835 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
18836 )
18837 {
18838 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
18839 _res = _literal;
18840 goto done;
18841 }
18842 p->mark = _mark;
18843 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18844 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
18845 }
18846 { // ':'
18847 if (p->error_indicator) {
18848 D(p->level--);
18849 return NULL;
18850 }
18851 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
18852 Token * _literal;
18853 if (
18854 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
18855 )
18856 {
18857 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
18858 _res = _literal;
18859 goto done;
18860 }
18861 p->mark = _mark;
18862 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18863 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018864 }
18865 _res = NULL;
18866 done:
18867 D(p->level--);
18868 return _res;
18869}
18870
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018871// _loop1_48: except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018872static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018873_loop1_48_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018874{
18875 D(p->level++);
18876 if (p->error_indicator) {
18877 D(p->level--);
18878 return NULL;
18879 }
18880 void *_res = NULL;
18881 int _mark = p->mark;
18882 int _start_mark = p->mark;
18883 void **_children = PyMem_Malloc(sizeof(void *));
18884 if (!_children) {
18885 p->error_indicator = 1;
18886 PyErr_NoMemory();
18887 D(p->level--);
18888 return NULL;
18889 }
18890 ssize_t _children_capacity = 1;
18891 ssize_t _n = 0;
18892 { // except_block
18893 if (p->error_indicator) {
18894 D(p->level--);
18895 return NULL;
18896 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018897 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018898 excepthandler_ty except_block_var;
18899 while (
18900 (except_block_var = except_block_rule(p)) // except_block
18901 )
18902 {
18903 _res = except_block_var;
18904 if (_n == _children_capacity) {
18905 _children_capacity *= 2;
18906 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18907 if (!_new_children) {
18908 p->error_indicator = 1;
18909 PyErr_NoMemory();
18910 D(p->level--);
18911 return NULL;
18912 }
18913 _children = _new_children;
18914 }
18915 _children[_n++] = _res;
18916 _mark = p->mark;
18917 }
18918 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018919 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018920 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
18921 }
18922 if (_n == 0 || p->error_indicator) {
18923 PyMem_Free(_children);
18924 D(p->level--);
18925 return NULL;
18926 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018927 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018928 if (!_seq) {
18929 PyMem_Free(_children);
18930 p->error_indicator = 1;
18931 PyErr_NoMemory();
18932 D(p->level--);
18933 return NULL;
18934 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018935 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018936 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018937 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018938 D(p->level--);
18939 return _seq;
18940}
18941
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018942// _tmp_49: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018943static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018944_tmp_49_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018945{
18946 D(p->level++);
18947 if (p->error_indicator) {
18948 D(p->level--);
18949 return NULL;
18950 }
18951 void * _res = NULL;
18952 int _mark = p->mark;
18953 { // 'as' NAME
18954 if (p->error_indicator) {
18955 D(p->level--);
18956 return NULL;
18957 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018958 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018959 Token * _keyword;
18960 expr_ty z;
18961 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018962 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018963 &&
18964 (z = _PyPegen_name_token(p)) // NAME
18965 )
18966 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018967 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 +010018968 _res = z;
18969 if (_res == NULL && PyErr_Occurred()) {
18970 p->error_indicator = 1;
18971 D(p->level--);
18972 return NULL;
18973 }
18974 goto done;
18975 }
18976 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018977 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018978 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
18979 }
18980 _res = NULL;
18981 done:
18982 D(p->level--);
18983 return _res;
18984}
18985
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018986// _tmp_50: 'from' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018987static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018988_tmp_50_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018989{
18990 D(p->level++);
18991 if (p->error_indicator) {
18992 D(p->level--);
18993 return NULL;
18994 }
18995 void * _res = NULL;
18996 int _mark = p->mark;
18997 { // 'from' expression
18998 if (p->error_indicator) {
18999 D(p->level--);
19000 return NULL;
19001 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019002 D(fprintf(stderr, "%*c> _tmp_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019003 Token * _keyword;
19004 expr_ty z;
19005 if (
19006 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
19007 &&
19008 (z = expression_rule(p)) // expression
19009 )
19010 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019011 D(fprintf(stderr, "%*c+ _tmp_50[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019012 _res = z;
19013 if (_res == NULL && PyErr_Occurred()) {
19014 p->error_indicator = 1;
19015 D(p->level--);
19016 return NULL;
19017 }
19018 goto done;
19019 }
19020 p->mark = _mark;
19021 D(fprintf(stderr, "%*c%s _tmp_50[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019022 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019023 }
19024 _res = NULL;
19025 done:
19026 D(p->level--);
19027 return _res;
19028}
19029
19030// _tmp_51: '->' expression
19031static void *
19032_tmp_51_rule(Parser *p)
19033{
19034 D(p->level++);
19035 if (p->error_indicator) {
19036 D(p->level--);
19037 return NULL;
19038 }
19039 void * _res = NULL;
19040 int _mark = p->mark;
19041 { // '->' expression
19042 if (p->error_indicator) {
19043 D(p->level--);
19044 return NULL;
19045 }
19046 D(fprintf(stderr, "%*c> _tmp_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
19047 Token * _literal;
19048 expr_ty z;
19049 if (
19050 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
19051 &&
19052 (z = expression_rule(p)) // expression
19053 )
19054 {
19055 D(fprintf(stderr, "%*c+ _tmp_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
19056 _res = z;
19057 if (_res == NULL && PyErr_Occurred()) {
19058 p->error_indicator = 1;
19059 D(p->level--);
19060 return NULL;
19061 }
19062 goto done;
19063 }
19064 p->mark = _mark;
19065 D(fprintf(stderr, "%*c%s _tmp_51[%d-%d]: %s failed!\n", p->level, ' ',
19066 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
19067 }
19068 _res = NULL;
19069 done:
19070 D(p->level--);
19071 return _res;
19072}
19073
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019074// _tmp_52: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019075static void *
19076_tmp_52_rule(Parser *p)
19077{
19078 D(p->level++);
19079 if (p->error_indicator) {
19080 D(p->level--);
19081 return NULL;
19082 }
19083 void * _res = NULL;
19084 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019085 { // '->' expression
19086 if (p->error_indicator) {
19087 D(p->level--);
19088 return NULL;
19089 }
19090 D(fprintf(stderr, "%*c> _tmp_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
19091 Token * _literal;
19092 expr_ty z;
19093 if (
19094 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
19095 &&
19096 (z = expression_rule(p)) // expression
19097 )
19098 {
19099 D(fprintf(stderr, "%*c+ _tmp_52[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
19100 _res = z;
19101 if (_res == NULL && PyErr_Occurred()) {
19102 p->error_indicator = 1;
19103 D(p->level--);
19104 return NULL;
19105 }
19106 goto done;
19107 }
19108 p->mark = _mark;
19109 D(fprintf(stderr, "%*c%s _tmp_52[%d-%d]: %s failed!\n", p->level, ' ',
19110 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
19111 }
19112 _res = NULL;
19113 done:
19114 D(p->level--);
19115 return _res;
19116}
19117
19118// _tmp_53: NEWLINE INDENT
19119static void *
19120_tmp_53_rule(Parser *p)
19121{
19122 D(p->level++);
19123 if (p->error_indicator) {
19124 D(p->level--);
19125 return NULL;
19126 }
19127 void * _res = NULL;
19128 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019129 { // NEWLINE INDENT
19130 if (p->error_indicator) {
19131 D(p->level--);
19132 return NULL;
19133 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019134 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019135 Token * indent_var;
19136 Token * newline_var;
19137 if (
19138 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19139 &&
19140 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
19141 )
19142 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019143 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019144 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
19145 goto done;
19146 }
19147 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019148 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
19150 }
19151 _res = NULL;
19152 done:
19153 D(p->level--);
19154 return _res;
19155}
19156
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019157// _loop0_54: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019158static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019159_loop0_54_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019160{
19161 D(p->level++);
19162 if (p->error_indicator) {
19163 D(p->level--);
19164 return NULL;
19165 }
19166 void *_res = NULL;
19167 int _mark = p->mark;
19168 int _start_mark = p->mark;
19169 void **_children = PyMem_Malloc(sizeof(void *));
19170 if (!_children) {
19171 p->error_indicator = 1;
19172 PyErr_NoMemory();
19173 D(p->level--);
19174 return NULL;
19175 }
19176 ssize_t _children_capacity = 1;
19177 ssize_t _n = 0;
19178 { // param_no_default
19179 if (p->error_indicator) {
19180 D(p->level--);
19181 return NULL;
19182 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019183 D(fprintf(stderr, "%*c> _loop0_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019184 arg_ty param_no_default_var;
19185 while (
19186 (param_no_default_var = param_no_default_rule(p)) // param_no_default
19187 )
19188 {
19189 _res = param_no_default_var;
19190 if (_n == _children_capacity) {
19191 _children_capacity *= 2;
19192 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19193 if (!_new_children) {
19194 p->error_indicator = 1;
19195 PyErr_NoMemory();
19196 D(p->level--);
19197 return NULL;
19198 }
19199 _children = _new_children;
19200 }
19201 _children[_n++] = _res;
19202 _mark = p->mark;
19203 }
19204 p->mark = _mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019205 D(fprintf(stderr, "%*c%s _loop0_54[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019206 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019207 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019208 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019209 if (!_seq) {
19210 PyMem_Free(_children);
19211 p->error_indicator = 1;
19212 PyErr_NoMemory();
19213 D(p->level--);
19214 return NULL;
19215 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019216 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019217 PyMem_Free(_children);
19218 _PyPegen_insert_memo(p, _start_mark, _loop0_54_type, _seq);
19219 D(p->level--);
19220 return _seq;
19221}
19222
19223// _loop0_55: param_with_default
19224static asdl_seq *
19225_loop0_55_rule(Parser *p)
19226{
19227 D(p->level++);
19228 if (p->error_indicator) {
19229 D(p->level--);
19230 return NULL;
19231 }
19232 void *_res = NULL;
19233 int _mark = p->mark;
19234 int _start_mark = p->mark;
19235 void **_children = PyMem_Malloc(sizeof(void *));
19236 if (!_children) {
19237 p->error_indicator = 1;
19238 PyErr_NoMemory();
19239 D(p->level--);
19240 return NULL;
19241 }
19242 ssize_t _children_capacity = 1;
19243 ssize_t _n = 0;
19244 { // param_with_default
19245 if (p->error_indicator) {
19246 D(p->level--);
19247 return NULL;
19248 }
19249 D(fprintf(stderr, "%*c> _loop0_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
19250 NameDefaultPair* param_with_default_var;
19251 while (
19252 (param_with_default_var = param_with_default_rule(p)) // param_with_default
19253 )
19254 {
19255 _res = param_with_default_var;
19256 if (_n == _children_capacity) {
19257 _children_capacity *= 2;
19258 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19259 if (!_new_children) {
19260 p->error_indicator = 1;
19261 PyErr_NoMemory();
19262 D(p->level--);
19263 return NULL;
19264 }
19265 _children = _new_children;
19266 }
19267 _children[_n++] = _res;
19268 _mark = p->mark;
19269 }
19270 p->mark = _mark;
19271 D(fprintf(stderr, "%*c%s _loop0_55[%d-%d]: %s failed!\n", p->level, ' ',
19272 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
19273 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019274 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019275 if (!_seq) {
19276 PyMem_Free(_children);
19277 p->error_indicator = 1;
19278 PyErr_NoMemory();
19279 D(p->level--);
19280 return NULL;
19281 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019282 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019283 PyMem_Free(_children);
19284 _PyPegen_insert_memo(p, _start_mark, _loop0_55_type, _seq);
19285 D(p->level--);
19286 return _seq;
19287}
19288
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019289// _loop0_56: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019290static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019291_loop0_56_rule(Parser *p)
19292{
19293 D(p->level++);
19294 if (p->error_indicator) {
19295 D(p->level--);
19296 return NULL;
19297 }
19298 void *_res = NULL;
19299 int _mark = p->mark;
19300 int _start_mark = p->mark;
19301 void **_children = PyMem_Malloc(sizeof(void *));
19302 if (!_children) {
19303 p->error_indicator = 1;
19304 PyErr_NoMemory();
19305 D(p->level--);
19306 return NULL;
19307 }
19308 ssize_t _children_capacity = 1;
19309 ssize_t _n = 0;
19310 { // param_with_default
19311 if (p->error_indicator) {
19312 D(p->level--);
19313 return NULL;
19314 }
19315 D(fprintf(stderr, "%*c> _loop0_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
19316 NameDefaultPair* param_with_default_var;
19317 while (
19318 (param_with_default_var = param_with_default_rule(p)) // param_with_default
19319 )
19320 {
19321 _res = param_with_default_var;
19322 if (_n == _children_capacity) {
19323 _children_capacity *= 2;
19324 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19325 if (!_new_children) {
19326 p->error_indicator = 1;
19327 PyErr_NoMemory();
19328 D(p->level--);
19329 return NULL;
19330 }
19331 _children = _new_children;
19332 }
19333 _children[_n++] = _res;
19334 _mark = p->mark;
19335 }
19336 p->mark = _mark;
19337 D(fprintf(stderr, "%*c%s _loop0_56[%d-%d]: %s failed!\n", p->level, ' ',
19338 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
19339 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019340 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019341 if (!_seq) {
19342 PyMem_Free(_children);
19343 p->error_indicator = 1;
19344 PyErr_NoMemory();
19345 D(p->level--);
19346 return NULL;
19347 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019348 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019349 PyMem_Free(_children);
19350 _PyPegen_insert_memo(p, _start_mark, _loop0_56_type, _seq);
19351 D(p->level--);
19352 return _seq;
19353}
19354
19355// _loop1_57: param_no_default
19356static asdl_seq *
19357_loop1_57_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019358{
19359 D(p->level++);
19360 if (p->error_indicator) {
19361 D(p->level--);
19362 return NULL;
19363 }
19364 void *_res = NULL;
19365 int _mark = p->mark;
19366 int _start_mark = p->mark;
19367 void **_children = PyMem_Malloc(sizeof(void *));
19368 if (!_children) {
19369 p->error_indicator = 1;
19370 PyErr_NoMemory();
19371 D(p->level--);
19372 return NULL;
19373 }
19374 ssize_t _children_capacity = 1;
19375 ssize_t _n = 0;
19376 { // param_no_default
19377 if (p->error_indicator) {
19378 D(p->level--);
19379 return NULL;
19380 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019381 D(fprintf(stderr, "%*c> _loop1_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019382 arg_ty param_no_default_var;
19383 while (
19384 (param_no_default_var = param_no_default_rule(p)) // param_no_default
19385 )
19386 {
19387 _res = param_no_default_var;
19388 if (_n == _children_capacity) {
19389 _children_capacity *= 2;
19390 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19391 if (!_new_children) {
19392 p->error_indicator = 1;
19393 PyErr_NoMemory();
19394 D(p->level--);
19395 return NULL;
19396 }
19397 _children = _new_children;
19398 }
19399 _children[_n++] = _res;
19400 _mark = p->mark;
19401 }
19402 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019403 D(fprintf(stderr, "%*c%s _loop1_57[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
19405 }
19406 if (_n == 0 || p->error_indicator) {
19407 PyMem_Free(_children);
19408 D(p->level--);
19409 return NULL;
19410 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019411 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019412 if (!_seq) {
19413 PyMem_Free(_children);
19414 p->error_indicator = 1;
19415 PyErr_NoMemory();
19416 D(p->level--);
19417 return NULL;
19418 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019419 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019420 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019421 _PyPegen_insert_memo(p, _start_mark, _loop1_57_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019422 D(p->level--);
19423 return _seq;
19424}
19425
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019426// _loop0_58: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019427static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019428_loop0_58_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019429{
19430 D(p->level++);
19431 if (p->error_indicator) {
19432 D(p->level--);
19433 return NULL;
19434 }
19435 void *_res = NULL;
19436 int _mark = p->mark;
19437 int _start_mark = p->mark;
19438 void **_children = PyMem_Malloc(sizeof(void *));
19439 if (!_children) {
19440 p->error_indicator = 1;
19441 PyErr_NoMemory();
19442 D(p->level--);
19443 return NULL;
19444 }
19445 ssize_t _children_capacity = 1;
19446 ssize_t _n = 0;
19447 { // param_with_default
19448 if (p->error_indicator) {
19449 D(p->level--);
19450 return NULL;
19451 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019452 D(fprintf(stderr, "%*c> _loop0_58[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019453 NameDefaultPair* param_with_default_var;
19454 while (
19455 (param_with_default_var = param_with_default_rule(p)) // param_with_default
19456 )
19457 {
19458 _res = param_with_default_var;
19459 if (_n == _children_capacity) {
19460 _children_capacity *= 2;
19461 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19462 if (!_new_children) {
19463 p->error_indicator = 1;
19464 PyErr_NoMemory();
19465 D(p->level--);
19466 return NULL;
19467 }
19468 _children = _new_children;
19469 }
19470 _children[_n++] = _res;
19471 _mark = p->mark;
19472 }
19473 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019474 D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019475 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
19476 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019477 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019478 if (!_seq) {
19479 PyMem_Free(_children);
19480 p->error_indicator = 1;
19481 PyErr_NoMemory();
19482 D(p->level--);
19483 return NULL;
19484 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019485 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019486 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019487 _PyPegen_insert_memo(p, _start_mark, _loop0_58_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019488 D(p->level--);
19489 return _seq;
19490}
19491
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019492// _loop1_59: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019493static asdl_seq *
19494_loop1_59_rule(Parser *p)
19495{
19496 D(p->level++);
19497 if (p->error_indicator) {
19498 D(p->level--);
19499 return NULL;
19500 }
19501 void *_res = NULL;
19502 int _mark = p->mark;
19503 int _start_mark = p->mark;
19504 void **_children = PyMem_Malloc(sizeof(void *));
19505 if (!_children) {
19506 p->error_indicator = 1;
19507 PyErr_NoMemory();
19508 D(p->level--);
19509 return NULL;
19510 }
19511 ssize_t _children_capacity = 1;
19512 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019513 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019514 if (p->error_indicator) {
19515 D(p->level--);
19516 return NULL;
19517 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019518 D(fprintf(stderr, "%*c> _loop1_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
19519 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019520 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019521 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019522 )
19523 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019524 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019525 if (_n == _children_capacity) {
19526 _children_capacity *= 2;
19527 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19528 if (!_new_children) {
19529 p->error_indicator = 1;
19530 PyErr_NoMemory();
19531 D(p->level--);
19532 return NULL;
19533 }
19534 _children = _new_children;
19535 }
19536 _children[_n++] = _res;
19537 _mark = p->mark;
19538 }
19539 p->mark = _mark;
19540 D(fprintf(stderr, "%*c%s _loop1_59[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019541 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019542 }
19543 if (_n == 0 || p->error_indicator) {
19544 PyMem_Free(_children);
19545 D(p->level--);
19546 return NULL;
19547 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019548 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019549 if (!_seq) {
19550 PyMem_Free(_children);
19551 p->error_indicator = 1;
19552 PyErr_NoMemory();
19553 D(p->level--);
19554 return NULL;
19555 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019556 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019557 PyMem_Free(_children);
19558 _PyPegen_insert_memo(p, _start_mark, _loop1_59_type, _seq);
19559 D(p->level--);
19560 return _seq;
19561}
19562
19563// _loop1_60: param_no_default
19564static asdl_seq *
19565_loop1_60_rule(Parser *p)
19566{
19567 D(p->level++);
19568 if (p->error_indicator) {
19569 D(p->level--);
19570 return NULL;
19571 }
19572 void *_res = NULL;
19573 int _mark = p->mark;
19574 int _start_mark = p->mark;
19575 void **_children = PyMem_Malloc(sizeof(void *));
19576 if (!_children) {
19577 p->error_indicator = 1;
19578 PyErr_NoMemory();
19579 D(p->level--);
19580 return NULL;
19581 }
19582 ssize_t _children_capacity = 1;
19583 ssize_t _n = 0;
19584 { // param_no_default
19585 if (p->error_indicator) {
19586 D(p->level--);
19587 return NULL;
19588 }
19589 D(fprintf(stderr, "%*c> _loop1_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
19590 arg_ty param_no_default_var;
19591 while (
19592 (param_no_default_var = param_no_default_rule(p)) // param_no_default
19593 )
19594 {
19595 _res = param_no_default_var;
19596 if (_n == _children_capacity) {
19597 _children_capacity *= 2;
19598 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19599 if (!_new_children) {
19600 p->error_indicator = 1;
19601 PyErr_NoMemory();
19602 D(p->level--);
19603 return NULL;
19604 }
19605 _children = _new_children;
19606 }
19607 _children[_n++] = _res;
19608 _mark = p->mark;
19609 }
19610 p->mark = _mark;
19611 D(fprintf(stderr, "%*c%s _loop1_60[%d-%d]: %s failed!\n", p->level, ' ',
19612 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
19613 }
19614 if (_n == 0 || p->error_indicator) {
19615 PyMem_Free(_children);
19616 D(p->level--);
19617 return NULL;
19618 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019619 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019620 if (!_seq) {
19621 PyMem_Free(_children);
19622 p->error_indicator = 1;
19623 PyErr_NoMemory();
19624 D(p->level--);
19625 return NULL;
19626 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019627 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019628 PyMem_Free(_children);
19629 _PyPegen_insert_memo(p, _start_mark, _loop1_60_type, _seq);
19630 D(p->level--);
19631 return _seq;
19632}
19633
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019634// _loop1_61: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019635static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019636_loop1_61_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019637{
19638 D(p->level++);
19639 if (p->error_indicator) {
19640 D(p->level--);
19641 return NULL;
19642 }
19643 void *_res = NULL;
19644 int _mark = p->mark;
19645 int _start_mark = p->mark;
19646 void **_children = PyMem_Malloc(sizeof(void *));
19647 if (!_children) {
19648 p->error_indicator = 1;
19649 PyErr_NoMemory();
19650 D(p->level--);
19651 return NULL;
19652 }
19653 ssize_t _children_capacity = 1;
19654 ssize_t _n = 0;
19655 { // param_no_default
19656 if (p->error_indicator) {
19657 D(p->level--);
19658 return NULL;
19659 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019660 D(fprintf(stderr, "%*c> _loop1_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019661 arg_ty param_no_default_var;
19662 while (
19663 (param_no_default_var = param_no_default_rule(p)) // param_no_default
19664 )
19665 {
19666 _res = param_no_default_var;
19667 if (_n == _children_capacity) {
19668 _children_capacity *= 2;
19669 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19670 if (!_new_children) {
19671 p->error_indicator = 1;
19672 PyErr_NoMemory();
19673 D(p->level--);
19674 return NULL;
19675 }
19676 _children = _new_children;
19677 }
19678 _children[_n++] = _res;
19679 _mark = p->mark;
19680 }
19681 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019682 D(fprintf(stderr, "%*c%s _loop1_61[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019683 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
19684 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019685 if (_n == 0 || p->error_indicator) {
19686 PyMem_Free(_children);
19687 D(p->level--);
19688 return NULL;
19689 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019690 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019691 if (!_seq) {
19692 PyMem_Free(_children);
19693 p->error_indicator = 1;
19694 PyErr_NoMemory();
19695 D(p->level--);
19696 return NULL;
19697 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019698 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019699 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019700 _PyPegen_insert_memo(p, _start_mark, _loop1_61_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019701 D(p->level--);
19702 return _seq;
19703}
19704
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019705// _loop0_62: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019706static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019707_loop0_62_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019708{
19709 D(p->level++);
19710 if (p->error_indicator) {
19711 D(p->level--);
19712 return NULL;
19713 }
19714 void *_res = NULL;
19715 int _mark = p->mark;
19716 int _start_mark = p->mark;
19717 void **_children = PyMem_Malloc(sizeof(void *));
19718 if (!_children) {
19719 p->error_indicator = 1;
19720 PyErr_NoMemory();
19721 D(p->level--);
19722 return NULL;
19723 }
19724 ssize_t _children_capacity = 1;
19725 ssize_t _n = 0;
19726 { // param_no_default
19727 if (p->error_indicator) {
19728 D(p->level--);
19729 return NULL;
19730 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019731 D(fprintf(stderr, "%*c> _loop0_62[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019732 arg_ty param_no_default_var;
19733 while (
19734 (param_no_default_var = param_no_default_rule(p)) // param_no_default
19735 )
19736 {
19737 _res = param_no_default_var;
19738 if (_n == _children_capacity) {
19739 _children_capacity *= 2;
19740 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19741 if (!_new_children) {
19742 p->error_indicator = 1;
19743 PyErr_NoMemory();
19744 D(p->level--);
19745 return NULL;
19746 }
19747 _children = _new_children;
19748 }
19749 _children[_n++] = _res;
19750 _mark = p->mark;
19751 }
19752 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019753 D(fprintf(stderr, "%*c%s _loop0_62[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019754 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
19755 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019756 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019757 if (!_seq) {
19758 PyMem_Free(_children);
19759 p->error_indicator = 1;
19760 PyErr_NoMemory();
19761 D(p->level--);
19762 return NULL;
19763 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019764 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019765 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019766 _PyPegen_insert_memo(p, _start_mark, _loop0_62_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019767 D(p->level--);
19768 return _seq;
19769}
19770
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019771// _loop1_63: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019772static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019773_loop1_63_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019774{
19775 D(p->level++);
19776 if (p->error_indicator) {
19777 D(p->level--);
19778 return NULL;
19779 }
19780 void *_res = NULL;
19781 int _mark = p->mark;
19782 int _start_mark = p->mark;
19783 void **_children = PyMem_Malloc(sizeof(void *));
19784 if (!_children) {
19785 p->error_indicator = 1;
19786 PyErr_NoMemory();
19787 D(p->level--);
19788 return NULL;
19789 }
19790 ssize_t _children_capacity = 1;
19791 ssize_t _n = 0;
19792 { // param_with_default
19793 if (p->error_indicator) {
19794 D(p->level--);
19795 return NULL;
19796 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019797 D(fprintf(stderr, "%*c> _loop1_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019798 NameDefaultPair* param_with_default_var;
19799 while (
19800 (param_with_default_var = param_with_default_rule(p)) // param_with_default
19801 )
19802 {
19803 _res = param_with_default_var;
19804 if (_n == _children_capacity) {
19805 _children_capacity *= 2;
19806 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19807 if (!_new_children) {
19808 p->error_indicator = 1;
19809 PyErr_NoMemory();
19810 D(p->level--);
19811 return NULL;
19812 }
19813 _children = _new_children;
19814 }
19815 _children[_n++] = _res;
19816 _mark = p->mark;
19817 }
19818 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019819 D(fprintf(stderr, "%*c%s _loop1_63[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019820 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
19821 }
19822 if (_n == 0 || p->error_indicator) {
19823 PyMem_Free(_children);
19824 D(p->level--);
19825 return NULL;
19826 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019827 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019828 if (!_seq) {
19829 PyMem_Free(_children);
19830 p->error_indicator = 1;
19831 PyErr_NoMemory();
19832 D(p->level--);
19833 return NULL;
19834 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019835 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019836 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019837 _PyPegen_insert_memo(p, _start_mark, _loop1_63_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019838 D(p->level--);
19839 return _seq;
19840}
19841
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019842// _loop0_64: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019843static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019844_loop0_64_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019845{
19846 D(p->level++);
19847 if (p->error_indicator) {
19848 D(p->level--);
19849 return NULL;
19850 }
19851 void *_res = NULL;
19852 int _mark = p->mark;
19853 int _start_mark = p->mark;
19854 void **_children = PyMem_Malloc(sizeof(void *));
19855 if (!_children) {
19856 p->error_indicator = 1;
19857 PyErr_NoMemory();
19858 D(p->level--);
19859 return NULL;
19860 }
19861 ssize_t _children_capacity = 1;
19862 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019863 { // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019864 if (p->error_indicator) {
19865 D(p->level--);
19866 return NULL;
19867 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019868 D(fprintf(stderr, "%*c> _loop0_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
19869 arg_ty param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019870 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019871 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019872 )
19873 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019874 _res = param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019875 if (_n == _children_capacity) {
19876 _children_capacity *= 2;
19877 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19878 if (!_new_children) {
19879 p->error_indicator = 1;
19880 PyErr_NoMemory();
19881 D(p->level--);
19882 return NULL;
19883 }
19884 _children = _new_children;
19885 }
19886 _children[_n++] = _res;
19887 _mark = p->mark;
19888 }
19889 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019890 D(fprintf(stderr, "%*c%s _loop0_64[%d-%d]: %s failed!\n", p->level, ' ',
19891 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019892 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019893 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019894 if (!_seq) {
19895 PyMem_Free(_children);
19896 p->error_indicator = 1;
19897 PyErr_NoMemory();
19898 D(p->level--);
19899 return NULL;
19900 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019901 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019902 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019903 _PyPegen_insert_memo(p, _start_mark, _loop0_64_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019904 D(p->level--);
19905 return _seq;
19906}
19907
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019908// _loop1_65: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019909static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019910_loop1_65_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019911{
19912 D(p->level++);
19913 if (p->error_indicator) {
19914 D(p->level--);
19915 return NULL;
19916 }
19917 void *_res = NULL;
19918 int _mark = p->mark;
19919 int _start_mark = p->mark;
19920 void **_children = PyMem_Malloc(sizeof(void *));
19921 if (!_children) {
19922 p->error_indicator = 1;
19923 PyErr_NoMemory();
19924 D(p->level--);
19925 return NULL;
19926 }
19927 ssize_t _children_capacity = 1;
19928 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019929 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019930 if (p->error_indicator) {
19931 D(p->level--);
19932 return NULL;
19933 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019934 D(fprintf(stderr, "%*c> _loop1_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
19935 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019936 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019937 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019938 )
19939 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019940 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019941 if (_n == _children_capacity) {
19942 _children_capacity *= 2;
19943 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19944 if (!_new_children) {
19945 p->error_indicator = 1;
19946 PyErr_NoMemory();
19947 D(p->level--);
19948 return NULL;
19949 }
19950 _children = _new_children;
19951 }
19952 _children[_n++] = _res;
19953 _mark = p->mark;
19954 }
19955 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019956 D(fprintf(stderr, "%*c%s _loop1_65[%d-%d]: %s failed!\n", p->level, ' ',
19957 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019958 }
19959 if (_n == 0 || p->error_indicator) {
19960 PyMem_Free(_children);
19961 D(p->level--);
19962 return NULL;
19963 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019964 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019965 if (!_seq) {
19966 PyMem_Free(_children);
19967 p->error_indicator = 1;
19968 PyErr_NoMemory();
19969 D(p->level--);
19970 return NULL;
19971 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019972 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019973 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019974 _PyPegen_insert_memo(p, _start_mark, _loop1_65_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019975 D(p->level--);
19976 return _seq;
19977}
19978
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019979// _loop0_66: param_maybe_default
19980static asdl_seq *
19981_loop0_66_rule(Parser *p)
19982{
19983 D(p->level++);
19984 if (p->error_indicator) {
19985 D(p->level--);
19986 return NULL;
19987 }
19988 void *_res = NULL;
19989 int _mark = p->mark;
19990 int _start_mark = p->mark;
19991 void **_children = PyMem_Malloc(sizeof(void *));
19992 if (!_children) {
19993 p->error_indicator = 1;
19994 PyErr_NoMemory();
19995 D(p->level--);
19996 return NULL;
19997 }
19998 ssize_t _children_capacity = 1;
19999 ssize_t _n = 0;
20000 { // param_maybe_default
20001 if (p->error_indicator) {
20002 D(p->level--);
20003 return NULL;
20004 }
20005 D(fprintf(stderr, "%*c> _loop0_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
20006 NameDefaultPair* param_maybe_default_var;
20007 while (
20008 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
20009 )
20010 {
20011 _res = param_maybe_default_var;
20012 if (_n == _children_capacity) {
20013 _children_capacity *= 2;
20014 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20015 if (!_new_children) {
20016 p->error_indicator = 1;
20017 PyErr_NoMemory();
20018 D(p->level--);
20019 return NULL;
20020 }
20021 _children = _new_children;
20022 }
20023 _children[_n++] = _res;
20024 _mark = p->mark;
20025 }
20026 p->mark = _mark;
20027 D(fprintf(stderr, "%*c%s _loop0_66[%d-%d]: %s failed!\n", p->level, ' ',
20028 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
20029 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020030 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020031 if (!_seq) {
20032 PyMem_Free(_children);
20033 p->error_indicator = 1;
20034 PyErr_NoMemory();
20035 D(p->level--);
20036 return NULL;
20037 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020038 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020039 PyMem_Free(_children);
20040 _PyPegen_insert_memo(p, _start_mark, _loop0_66_type, _seq);
20041 D(p->level--);
20042 return _seq;
20043}
20044
20045// _loop1_67: param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020046static asdl_seq *
20047_loop1_67_rule(Parser *p)
20048{
20049 D(p->level++);
20050 if (p->error_indicator) {
20051 D(p->level--);
20052 return NULL;
20053 }
20054 void *_res = NULL;
20055 int _mark = p->mark;
20056 int _start_mark = p->mark;
20057 void **_children = PyMem_Malloc(sizeof(void *));
20058 if (!_children) {
20059 p->error_indicator = 1;
20060 PyErr_NoMemory();
20061 D(p->level--);
20062 return NULL;
20063 }
20064 ssize_t _children_capacity = 1;
20065 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020066 { // param_maybe_default
20067 if (p->error_indicator) {
20068 D(p->level--);
20069 return NULL;
20070 }
20071 D(fprintf(stderr, "%*c> _loop1_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
20072 NameDefaultPair* param_maybe_default_var;
20073 while (
20074 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
20075 )
20076 {
20077 _res = param_maybe_default_var;
20078 if (_n == _children_capacity) {
20079 _children_capacity *= 2;
20080 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20081 if (!_new_children) {
20082 p->error_indicator = 1;
20083 PyErr_NoMemory();
20084 D(p->level--);
20085 return NULL;
20086 }
20087 _children = _new_children;
20088 }
20089 _children[_n++] = _res;
20090 _mark = p->mark;
20091 }
20092 p->mark = _mark;
20093 D(fprintf(stderr, "%*c%s _loop1_67[%d-%d]: %s failed!\n", p->level, ' ',
20094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
20095 }
20096 if (_n == 0 || p->error_indicator) {
20097 PyMem_Free(_children);
20098 D(p->level--);
20099 return NULL;
20100 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020101 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020102 if (!_seq) {
20103 PyMem_Free(_children);
20104 p->error_indicator = 1;
20105 PyErr_NoMemory();
20106 D(p->level--);
20107 return NULL;
20108 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020109 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020110 PyMem_Free(_children);
20111 _PyPegen_insert_memo(p, _start_mark, _loop1_67_type, _seq);
20112 D(p->level--);
20113 return _seq;
20114}
20115
20116// _loop1_68: ('@' named_expression NEWLINE)
20117static asdl_seq *
20118_loop1_68_rule(Parser *p)
20119{
20120 D(p->level++);
20121 if (p->error_indicator) {
20122 D(p->level--);
20123 return NULL;
20124 }
20125 void *_res = NULL;
20126 int _mark = p->mark;
20127 int _start_mark = p->mark;
20128 void **_children = PyMem_Malloc(sizeof(void *));
20129 if (!_children) {
20130 p->error_indicator = 1;
20131 PyErr_NoMemory();
20132 D(p->level--);
20133 return NULL;
20134 }
20135 ssize_t _children_capacity = 1;
20136 ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020137 { // ('@' named_expression NEWLINE)
20138 if (p->error_indicator) {
20139 D(p->level--);
20140 return NULL;
20141 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020142 D(fprintf(stderr, "%*c> _loop1_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000020143 void *_tmp_149_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020144 while (
Pablo Galindo206cbda2021-02-07 18:42:21 +000020145 (_tmp_149_var = _tmp_149_rule(p)) // '@' named_expression NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020146 )
20147 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000020148 _res = _tmp_149_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020149 if (_n == _children_capacity) {
20150 _children_capacity *= 2;
20151 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20152 if (!_new_children) {
20153 p->error_indicator = 1;
20154 PyErr_NoMemory();
20155 D(p->level--);
20156 return NULL;
20157 }
20158 _children = _new_children;
20159 }
20160 _children[_n++] = _res;
20161 _mark = p->mark;
20162 }
20163 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020164 D(fprintf(stderr, "%*c%s _loop1_68[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020165 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
20166 }
20167 if (_n == 0 || p->error_indicator) {
20168 PyMem_Free(_children);
20169 D(p->level--);
20170 return NULL;
20171 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020172 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020173 if (!_seq) {
20174 PyMem_Free(_children);
20175 p->error_indicator = 1;
20176 PyErr_NoMemory();
20177 D(p->level--);
20178 return NULL;
20179 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020180 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020181 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020182 _PyPegen_insert_memo(p, _start_mark, _loop1_68_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020183 D(p->level--);
20184 return _seq;
20185}
20186
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020187// _tmp_69: '(' arguments? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020188static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020189_tmp_69_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020190{
20191 D(p->level++);
20192 if (p->error_indicator) {
20193 D(p->level--);
20194 return NULL;
20195 }
20196 void * _res = NULL;
20197 int _mark = p->mark;
20198 { // '(' arguments? ')'
20199 if (p->error_indicator) {
20200 D(p->level--);
20201 return NULL;
20202 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020203 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020204 Token * _literal;
20205 Token * _literal_1;
20206 void *z;
20207 if (
20208 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20209 &&
20210 (z = arguments_rule(p), 1) // arguments?
20211 &&
20212 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
20213 )
20214 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020215 D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020216 _res = z;
20217 if (_res == NULL && PyErr_Occurred()) {
20218 p->error_indicator = 1;
20219 D(p->level--);
20220 return NULL;
20221 }
20222 goto done;
20223 }
20224 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020225 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020226 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
20227 }
20228 _res = NULL;
20229 done:
20230 D(p->level--);
20231 return _res;
20232}
20233
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020234// _loop1_70: (',' star_expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020235static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020236_loop1_70_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020237{
20238 D(p->level++);
20239 if (p->error_indicator) {
20240 D(p->level--);
20241 return NULL;
20242 }
20243 void *_res = NULL;
20244 int _mark = p->mark;
20245 int _start_mark = p->mark;
20246 void **_children = PyMem_Malloc(sizeof(void *));
20247 if (!_children) {
20248 p->error_indicator = 1;
20249 PyErr_NoMemory();
20250 D(p->level--);
20251 return NULL;
20252 }
20253 ssize_t _children_capacity = 1;
20254 ssize_t _n = 0;
20255 { // (',' star_expression)
20256 if (p->error_indicator) {
20257 D(p->level--);
20258 return NULL;
20259 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020260 D(fprintf(stderr, "%*c> _loop1_70[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000020261 void *_tmp_150_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020262 while (
Pablo Galindo206cbda2021-02-07 18:42:21 +000020263 (_tmp_150_var = _tmp_150_rule(p)) // ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020264 )
20265 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000020266 _res = _tmp_150_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020267 if (_n == _children_capacity) {
20268 _children_capacity *= 2;
20269 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20270 if (!_new_children) {
20271 p->error_indicator = 1;
20272 PyErr_NoMemory();
20273 D(p->level--);
20274 return NULL;
20275 }
20276 _children = _new_children;
20277 }
20278 _children[_n++] = _res;
20279 _mark = p->mark;
20280 }
20281 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020282 D(fprintf(stderr, "%*c%s _loop1_70[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020283 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
20284 }
20285 if (_n == 0 || p->error_indicator) {
20286 PyMem_Free(_children);
20287 D(p->level--);
20288 return NULL;
20289 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020290 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020291 if (!_seq) {
20292 PyMem_Free(_children);
20293 p->error_indicator = 1;
20294 PyErr_NoMemory();
20295 D(p->level--);
20296 return NULL;
20297 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020298 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020299 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020300 _PyPegen_insert_memo(p, _start_mark, _loop1_70_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020301 D(p->level--);
20302 return _seq;
20303}
20304
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020305// _loop0_72: ',' star_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020306static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020307_loop0_72_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020308{
20309 D(p->level++);
20310 if (p->error_indicator) {
20311 D(p->level--);
20312 return NULL;
20313 }
20314 void *_res = NULL;
20315 int _mark = p->mark;
20316 int _start_mark = p->mark;
20317 void **_children = PyMem_Malloc(sizeof(void *));
20318 if (!_children) {
20319 p->error_indicator = 1;
20320 PyErr_NoMemory();
20321 D(p->level--);
20322 return NULL;
20323 }
20324 ssize_t _children_capacity = 1;
20325 ssize_t _n = 0;
20326 { // ',' star_named_expression
20327 if (p->error_indicator) {
20328 D(p->level--);
20329 return NULL;
20330 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020331 D(fprintf(stderr, "%*c> _loop0_72[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020332 Token * _literal;
20333 expr_ty elem;
20334 while (
20335 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20336 &&
20337 (elem = star_named_expression_rule(p)) // star_named_expression
20338 )
20339 {
20340 _res = elem;
20341 if (_res == NULL && PyErr_Occurred()) {
20342 p->error_indicator = 1;
20343 PyMem_Free(_children);
20344 D(p->level--);
20345 return NULL;
20346 }
20347 if (_n == _children_capacity) {
20348 _children_capacity *= 2;
20349 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20350 if (!_new_children) {
20351 p->error_indicator = 1;
20352 PyErr_NoMemory();
20353 D(p->level--);
20354 return NULL;
20355 }
20356 _children = _new_children;
20357 }
20358 _children[_n++] = _res;
20359 _mark = p->mark;
20360 }
20361 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020362 D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020363 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
20364 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020365 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020366 if (!_seq) {
20367 PyMem_Free(_children);
20368 p->error_indicator = 1;
20369 PyErr_NoMemory();
20370 D(p->level--);
20371 return NULL;
20372 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020373 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020374 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020375 _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020376 D(p->level--);
20377 return _seq;
20378}
20379
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020380// _gather_71: star_named_expression _loop0_72
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020381static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020382_gather_71_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020383{
20384 D(p->level++);
20385 if (p->error_indicator) {
20386 D(p->level--);
20387 return NULL;
20388 }
20389 asdl_seq * _res = NULL;
20390 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020391 { // star_named_expression _loop0_72
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020392 if (p->error_indicator) {
20393 D(p->level--);
20394 return NULL;
20395 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020396 D(fprintf(stderr, "%*c> _gather_71[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_72"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020397 expr_ty elem;
20398 asdl_seq * seq;
20399 if (
20400 (elem = star_named_expression_rule(p)) // star_named_expression
20401 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020402 (seq = _loop0_72_rule(p)) // _loop0_72
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020403 )
20404 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020405 D(fprintf(stderr, "%*c+ _gather_71[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_72"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020406 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20407 goto done;
20408 }
20409 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020410 D(fprintf(stderr, "%*c%s _gather_71[%d-%d]: %s failed!\n", p->level, ' ',
20411 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_72"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020412 }
20413 _res = NULL;
20414 done:
20415 D(p->level--);
20416 return _res;
20417}
20418
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020419// _loop1_73: (',' expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020420static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020421_loop1_73_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020422{
20423 D(p->level++);
20424 if (p->error_indicator) {
20425 D(p->level--);
20426 return NULL;
20427 }
20428 void *_res = NULL;
20429 int _mark = p->mark;
20430 int _start_mark = p->mark;
20431 void **_children = PyMem_Malloc(sizeof(void *));
20432 if (!_children) {
20433 p->error_indicator = 1;
20434 PyErr_NoMemory();
20435 D(p->level--);
20436 return NULL;
20437 }
20438 ssize_t _children_capacity = 1;
20439 ssize_t _n = 0;
20440 { // (',' expression)
20441 if (p->error_indicator) {
20442 D(p->level--);
20443 return NULL;
20444 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020445 D(fprintf(stderr, "%*c> _loop1_73[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000020446 void *_tmp_151_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020447 while (
Pablo Galindo206cbda2021-02-07 18:42:21 +000020448 (_tmp_151_var = _tmp_151_rule(p)) // ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020449 )
20450 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000020451 _res = _tmp_151_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020452 if (_n == _children_capacity) {
20453 _children_capacity *= 2;
20454 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20455 if (!_new_children) {
20456 p->error_indicator = 1;
20457 PyErr_NoMemory();
20458 D(p->level--);
20459 return NULL;
20460 }
20461 _children = _new_children;
20462 }
20463 _children[_n++] = _res;
20464 _mark = p->mark;
20465 }
20466 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020467 D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020468 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
20469 }
20470 if (_n == 0 || p->error_indicator) {
20471 PyMem_Free(_children);
20472 D(p->level--);
20473 return NULL;
20474 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020475 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020476 if (!_seq) {
20477 PyMem_Free(_children);
20478 p->error_indicator = 1;
20479 PyErr_NoMemory();
20480 D(p->level--);
20481 return NULL;
20482 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020483 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020484 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020485 _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020486 D(p->level--);
20487 return _seq;
20488}
20489
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020490// _loop0_74: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020491static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020492_loop0_74_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020493{
20494 D(p->level++);
20495 if (p->error_indicator) {
20496 D(p->level--);
20497 return NULL;
20498 }
20499 void *_res = NULL;
20500 int _mark = p->mark;
20501 int _start_mark = p->mark;
20502 void **_children = PyMem_Malloc(sizeof(void *));
20503 if (!_children) {
20504 p->error_indicator = 1;
20505 PyErr_NoMemory();
20506 D(p->level--);
20507 return NULL;
20508 }
20509 ssize_t _children_capacity = 1;
20510 ssize_t _n = 0;
20511 { // lambda_param_no_default
20512 if (p->error_indicator) {
20513 D(p->level--);
20514 return NULL;
20515 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020516 D(fprintf(stderr, "%*c> _loop0_74[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020517 arg_ty lambda_param_no_default_var;
20518 while (
20519 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
20520 )
20521 {
20522 _res = lambda_param_no_default_var;
20523 if (_n == _children_capacity) {
20524 _children_capacity *= 2;
20525 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20526 if (!_new_children) {
20527 p->error_indicator = 1;
20528 PyErr_NoMemory();
20529 D(p->level--);
20530 return NULL;
20531 }
20532 _children = _new_children;
20533 }
20534 _children[_n++] = _res;
20535 _mark = p->mark;
20536 }
20537 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020538 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020539 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020540 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020541 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020542 if (!_seq) {
20543 PyMem_Free(_children);
20544 p->error_indicator = 1;
20545 PyErr_NoMemory();
20546 D(p->level--);
20547 return NULL;
20548 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020549 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020550 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020551 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020552 D(p->level--);
20553 return _seq;
20554}
20555
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020556// _loop0_75: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020557static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020558_loop0_75_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020559{
20560 D(p->level++);
20561 if (p->error_indicator) {
20562 D(p->level--);
20563 return NULL;
20564 }
20565 void *_res = NULL;
20566 int _mark = p->mark;
20567 int _start_mark = p->mark;
20568 void **_children = PyMem_Malloc(sizeof(void *));
20569 if (!_children) {
20570 p->error_indicator = 1;
20571 PyErr_NoMemory();
20572 D(p->level--);
20573 return NULL;
20574 }
20575 ssize_t _children_capacity = 1;
20576 ssize_t _n = 0;
20577 { // lambda_param_with_default
20578 if (p->error_indicator) {
20579 D(p->level--);
20580 return NULL;
20581 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020582 D(fprintf(stderr, "%*c> _loop0_75[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020583 NameDefaultPair* lambda_param_with_default_var;
20584 while (
20585 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20586 )
20587 {
20588 _res = lambda_param_with_default_var;
20589 if (_n == _children_capacity) {
20590 _children_capacity *= 2;
20591 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20592 if (!_new_children) {
20593 p->error_indicator = 1;
20594 PyErr_NoMemory();
20595 D(p->level--);
20596 return NULL;
20597 }
20598 _children = _new_children;
20599 }
20600 _children[_n++] = _res;
20601 _mark = p->mark;
20602 }
20603 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020604 D(fprintf(stderr, "%*c%s _loop0_75[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
20606 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020607 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020608 if (!_seq) {
20609 PyMem_Free(_children);
20610 p->error_indicator = 1;
20611 PyErr_NoMemory();
20612 D(p->level--);
20613 return NULL;
20614 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020615 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020616 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020617 _PyPegen_insert_memo(p, _start_mark, _loop0_75_type, _seq);
20618 D(p->level--);
20619 return _seq;
20620}
20621
20622// _loop0_76: lambda_param_with_default
20623static asdl_seq *
20624_loop0_76_rule(Parser *p)
20625{
20626 D(p->level++);
20627 if (p->error_indicator) {
20628 D(p->level--);
20629 return NULL;
20630 }
20631 void *_res = NULL;
20632 int _mark = p->mark;
20633 int _start_mark = p->mark;
20634 void **_children = PyMem_Malloc(sizeof(void *));
20635 if (!_children) {
20636 p->error_indicator = 1;
20637 PyErr_NoMemory();
20638 D(p->level--);
20639 return NULL;
20640 }
20641 ssize_t _children_capacity = 1;
20642 ssize_t _n = 0;
20643 { // lambda_param_with_default
20644 if (p->error_indicator) {
20645 D(p->level--);
20646 return NULL;
20647 }
20648 D(fprintf(stderr, "%*c> _loop0_76[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20649 NameDefaultPair* lambda_param_with_default_var;
20650 while (
20651 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20652 )
20653 {
20654 _res = lambda_param_with_default_var;
20655 if (_n == _children_capacity) {
20656 _children_capacity *= 2;
20657 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20658 if (!_new_children) {
20659 p->error_indicator = 1;
20660 PyErr_NoMemory();
20661 D(p->level--);
20662 return NULL;
20663 }
20664 _children = _new_children;
20665 }
20666 _children[_n++] = _res;
20667 _mark = p->mark;
20668 }
20669 p->mark = _mark;
20670 D(fprintf(stderr, "%*c%s _loop0_76[%d-%d]: %s failed!\n", p->level, ' ',
20671 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
20672 }
20673 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
20674 if (!_seq) {
20675 PyMem_Free(_children);
20676 p->error_indicator = 1;
20677 PyErr_NoMemory();
20678 D(p->level--);
20679 return NULL;
20680 }
20681 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
20682 PyMem_Free(_children);
20683 _PyPegen_insert_memo(p, _start_mark, _loop0_76_type, _seq);
20684 D(p->level--);
20685 return _seq;
20686}
20687
20688// _loop1_77: lambda_param_no_default
20689static asdl_seq *
20690_loop1_77_rule(Parser *p)
20691{
20692 D(p->level++);
20693 if (p->error_indicator) {
20694 D(p->level--);
20695 return NULL;
20696 }
20697 void *_res = NULL;
20698 int _mark = p->mark;
20699 int _start_mark = p->mark;
20700 void **_children = PyMem_Malloc(sizeof(void *));
20701 if (!_children) {
20702 p->error_indicator = 1;
20703 PyErr_NoMemory();
20704 D(p->level--);
20705 return NULL;
20706 }
20707 ssize_t _children_capacity = 1;
20708 ssize_t _n = 0;
20709 { // lambda_param_no_default
20710 if (p->error_indicator) {
20711 D(p->level--);
20712 return NULL;
20713 }
20714 D(fprintf(stderr, "%*c> _loop1_77[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
20715 arg_ty lambda_param_no_default_var;
20716 while (
20717 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
20718 )
20719 {
20720 _res = lambda_param_no_default_var;
20721 if (_n == _children_capacity) {
20722 _children_capacity *= 2;
20723 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20724 if (!_new_children) {
20725 p->error_indicator = 1;
20726 PyErr_NoMemory();
20727 D(p->level--);
20728 return NULL;
20729 }
20730 _children = _new_children;
20731 }
20732 _children[_n++] = _res;
20733 _mark = p->mark;
20734 }
20735 p->mark = _mark;
20736 D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
20737 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
20738 }
20739 if (_n == 0 || p->error_indicator) {
20740 PyMem_Free(_children);
20741 D(p->level--);
20742 return NULL;
20743 }
20744 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
20745 if (!_seq) {
20746 PyMem_Free(_children);
20747 p->error_indicator = 1;
20748 PyErr_NoMemory();
20749 D(p->level--);
20750 return NULL;
20751 }
20752 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
20753 PyMem_Free(_children);
20754 _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020755 D(p->level--);
20756 return _seq;
20757}
20758
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020759// _loop0_78: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020760static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020761_loop0_78_rule(Parser *p)
20762{
20763 D(p->level++);
20764 if (p->error_indicator) {
20765 D(p->level--);
20766 return NULL;
20767 }
20768 void *_res = NULL;
20769 int _mark = p->mark;
20770 int _start_mark = p->mark;
20771 void **_children = PyMem_Malloc(sizeof(void *));
20772 if (!_children) {
20773 p->error_indicator = 1;
20774 PyErr_NoMemory();
20775 D(p->level--);
20776 return NULL;
20777 }
20778 ssize_t _children_capacity = 1;
20779 ssize_t _n = 0;
20780 { // lambda_param_with_default
20781 if (p->error_indicator) {
20782 D(p->level--);
20783 return NULL;
20784 }
20785 D(fprintf(stderr, "%*c> _loop0_78[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20786 NameDefaultPair* lambda_param_with_default_var;
20787 while (
20788 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20789 )
20790 {
20791 _res = lambda_param_with_default_var;
20792 if (_n == _children_capacity) {
20793 _children_capacity *= 2;
20794 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20795 if (!_new_children) {
20796 p->error_indicator = 1;
20797 PyErr_NoMemory();
20798 D(p->level--);
20799 return NULL;
20800 }
20801 _children = _new_children;
20802 }
20803 _children[_n++] = _res;
20804 _mark = p->mark;
20805 }
20806 p->mark = _mark;
20807 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
20808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
20809 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020810 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020811 if (!_seq) {
20812 PyMem_Free(_children);
20813 p->error_indicator = 1;
20814 PyErr_NoMemory();
20815 D(p->level--);
20816 return NULL;
20817 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020818 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020819 PyMem_Free(_children);
20820 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
20821 D(p->level--);
20822 return _seq;
20823}
20824
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020825// _loop1_79: lambda_param_with_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020826static asdl_seq *
20827_loop1_79_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020828{
20829 D(p->level++);
20830 if (p->error_indicator) {
20831 D(p->level--);
20832 return NULL;
20833 }
20834 void *_res = NULL;
20835 int _mark = p->mark;
20836 int _start_mark = p->mark;
20837 void **_children = PyMem_Malloc(sizeof(void *));
20838 if (!_children) {
20839 p->error_indicator = 1;
20840 PyErr_NoMemory();
20841 D(p->level--);
20842 return NULL;
20843 }
20844 ssize_t _children_capacity = 1;
20845 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020846 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020847 if (p->error_indicator) {
20848 D(p->level--);
20849 return NULL;
20850 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020851 D(fprintf(stderr, "%*c> _loop1_79[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20852 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020853 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020854 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020855 )
20856 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020857 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020858 if (_n == _children_capacity) {
20859 _children_capacity *= 2;
20860 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20861 if (!_new_children) {
20862 p->error_indicator = 1;
20863 PyErr_NoMemory();
20864 D(p->level--);
20865 return NULL;
20866 }
20867 _children = _new_children;
20868 }
20869 _children[_n++] = _res;
20870 _mark = p->mark;
20871 }
20872 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020873 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020874 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020875 }
20876 if (_n == 0 || p->error_indicator) {
20877 PyMem_Free(_children);
20878 D(p->level--);
20879 return NULL;
20880 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020881 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020882 if (!_seq) {
20883 PyMem_Free(_children);
20884 p->error_indicator = 1;
20885 PyErr_NoMemory();
20886 D(p->level--);
20887 return NULL;
20888 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020889 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020890 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020891 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020892 D(p->level--);
20893 return _seq;
20894}
20895
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020896// _loop1_80: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020897static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020898_loop1_80_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020899{
20900 D(p->level++);
20901 if (p->error_indicator) {
20902 D(p->level--);
20903 return NULL;
20904 }
20905 void *_res = NULL;
20906 int _mark = p->mark;
20907 int _start_mark = p->mark;
20908 void **_children = PyMem_Malloc(sizeof(void *));
20909 if (!_children) {
20910 p->error_indicator = 1;
20911 PyErr_NoMemory();
20912 D(p->level--);
20913 return NULL;
20914 }
20915 ssize_t _children_capacity = 1;
20916 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020917 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020918 if (p->error_indicator) {
20919 D(p->level--);
20920 return NULL;
20921 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020922 D(fprintf(stderr, "%*c> _loop1_80[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
20923 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020924 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020925 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020926 )
20927 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020928 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020929 if (_n == _children_capacity) {
20930 _children_capacity *= 2;
20931 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20932 if (!_new_children) {
20933 p->error_indicator = 1;
20934 PyErr_NoMemory();
20935 D(p->level--);
20936 return NULL;
20937 }
20938 _children = _new_children;
20939 }
20940 _children[_n++] = _res;
20941 _mark = p->mark;
20942 }
20943 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020944 D(fprintf(stderr, "%*c%s _loop1_80[%d-%d]: %s failed!\n", p->level, ' ',
20945 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
20946 }
20947 if (_n == 0 || p->error_indicator) {
20948 PyMem_Free(_children);
20949 D(p->level--);
20950 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020951 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020952 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020953 if (!_seq) {
20954 PyMem_Free(_children);
20955 p->error_indicator = 1;
20956 PyErr_NoMemory();
20957 D(p->level--);
20958 return NULL;
20959 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020960 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020961 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020962 _PyPegen_insert_memo(p, _start_mark, _loop1_80_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020963 D(p->level--);
20964 return _seq;
20965}
20966
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020967// _loop1_81: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020968static asdl_seq *
20969_loop1_81_rule(Parser *p)
20970{
20971 D(p->level++);
20972 if (p->error_indicator) {
20973 D(p->level--);
20974 return NULL;
20975 }
20976 void *_res = NULL;
20977 int _mark = p->mark;
20978 int _start_mark = p->mark;
20979 void **_children = PyMem_Malloc(sizeof(void *));
20980 if (!_children) {
20981 p->error_indicator = 1;
20982 PyErr_NoMemory();
20983 D(p->level--);
20984 return NULL;
20985 }
20986 ssize_t _children_capacity = 1;
20987 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020988 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020989 if (p->error_indicator) {
20990 D(p->level--);
20991 return NULL;
20992 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020993 D(fprintf(stderr, "%*c> _loop1_81[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
20994 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020995 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020996 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020997 )
20998 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020999 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021000 if (_n == _children_capacity) {
21001 _children_capacity *= 2;
21002 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21003 if (!_new_children) {
21004 p->error_indicator = 1;
21005 PyErr_NoMemory();
21006 D(p->level--);
21007 return NULL;
21008 }
21009 _children = _new_children;
21010 }
21011 _children[_n++] = _res;
21012 _mark = p->mark;
21013 }
21014 p->mark = _mark;
21015 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021016 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021017 }
21018 if (_n == 0 || p->error_indicator) {
21019 PyMem_Free(_children);
21020 D(p->level--);
21021 return NULL;
21022 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021023 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021024 if (!_seq) {
21025 PyMem_Free(_children);
21026 p->error_indicator = 1;
21027 PyErr_NoMemory();
21028 D(p->level--);
21029 return NULL;
21030 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021031 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021032 PyMem_Free(_children);
21033 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
21034 D(p->level--);
21035 return _seq;
21036}
21037
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021038// _loop0_82: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021039static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021040_loop0_82_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021041{
21042 D(p->level++);
21043 if (p->error_indicator) {
21044 D(p->level--);
21045 return NULL;
21046 }
21047 void *_res = NULL;
21048 int _mark = p->mark;
21049 int _start_mark = p->mark;
21050 void **_children = PyMem_Malloc(sizeof(void *));
21051 if (!_children) {
21052 p->error_indicator = 1;
21053 PyErr_NoMemory();
21054 D(p->level--);
21055 return NULL;
21056 }
21057 ssize_t _children_capacity = 1;
21058 ssize_t _n = 0;
21059 { // lambda_param_no_default
21060 if (p->error_indicator) {
21061 D(p->level--);
21062 return NULL;
21063 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021064 D(fprintf(stderr, "%*c> _loop0_82[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021065 arg_ty lambda_param_no_default_var;
21066 while (
21067 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
21068 )
21069 {
21070 _res = lambda_param_no_default_var;
21071 if (_n == _children_capacity) {
21072 _children_capacity *= 2;
21073 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21074 if (!_new_children) {
21075 p->error_indicator = 1;
21076 PyErr_NoMemory();
21077 D(p->level--);
21078 return NULL;
21079 }
21080 _children = _new_children;
21081 }
21082 _children[_n++] = _res;
21083 _mark = p->mark;
21084 }
21085 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021086 D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021087 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
21088 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021089 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021090 if (!_seq) {
21091 PyMem_Free(_children);
21092 p->error_indicator = 1;
21093 PyErr_NoMemory();
21094 D(p->level--);
21095 return NULL;
21096 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021097 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021098 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021099 _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021100 D(p->level--);
21101 return _seq;
21102}
21103
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021104// _loop1_83: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021105static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021106_loop1_83_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021107{
21108 D(p->level++);
21109 if (p->error_indicator) {
21110 D(p->level--);
21111 return NULL;
21112 }
21113 void *_res = NULL;
21114 int _mark = p->mark;
21115 int _start_mark = p->mark;
21116 void **_children = PyMem_Malloc(sizeof(void *));
21117 if (!_children) {
21118 p->error_indicator = 1;
21119 PyErr_NoMemory();
21120 D(p->level--);
21121 return NULL;
21122 }
21123 ssize_t _children_capacity = 1;
21124 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021125 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021126 if (p->error_indicator) {
21127 D(p->level--);
21128 return NULL;
21129 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021130 D(fprintf(stderr, "%*c> _loop1_83[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
21131 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021132 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021133 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021134 )
21135 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021136 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021137 if (_n == _children_capacity) {
21138 _children_capacity *= 2;
21139 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21140 if (!_new_children) {
21141 p->error_indicator = 1;
21142 PyErr_NoMemory();
21143 D(p->level--);
21144 return NULL;
21145 }
21146 _children = _new_children;
21147 }
21148 _children[_n++] = _res;
21149 _mark = p->mark;
21150 }
21151 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021152 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021153 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021154 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021155 if (_n == 0 || p->error_indicator) {
21156 PyMem_Free(_children);
21157 D(p->level--);
21158 return NULL;
21159 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021160 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021161 if (!_seq) {
21162 PyMem_Free(_children);
21163 p->error_indicator = 1;
21164 PyErr_NoMemory();
21165 D(p->level--);
21166 return NULL;
21167 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021168 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021169 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021170 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021171 D(p->level--);
21172 return _seq;
21173}
21174
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021175// _loop0_84: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021176static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021177_loop0_84_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021178{
21179 D(p->level++);
21180 if (p->error_indicator) {
21181 D(p->level--);
21182 return NULL;
21183 }
21184 void *_res = NULL;
21185 int _mark = p->mark;
21186 int _start_mark = p->mark;
21187 void **_children = PyMem_Malloc(sizeof(void *));
21188 if (!_children) {
21189 p->error_indicator = 1;
21190 PyErr_NoMemory();
21191 D(p->level--);
21192 return NULL;
21193 }
21194 ssize_t _children_capacity = 1;
21195 ssize_t _n = 0;
21196 { // lambda_param_no_default
21197 if (p->error_indicator) {
21198 D(p->level--);
21199 return NULL;
21200 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021201 D(fprintf(stderr, "%*c> _loop0_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021202 arg_ty lambda_param_no_default_var;
21203 while (
21204 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
21205 )
21206 {
21207 _res = lambda_param_no_default_var;
21208 if (_n == _children_capacity) {
21209 _children_capacity *= 2;
21210 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21211 if (!_new_children) {
21212 p->error_indicator = 1;
21213 PyErr_NoMemory();
21214 D(p->level--);
21215 return NULL;
21216 }
21217 _children = _new_children;
21218 }
21219 _children[_n++] = _res;
21220 _mark = p->mark;
21221 }
21222 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021223 D(fprintf(stderr, "%*c%s _loop0_84[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021224 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
21225 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021226 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021227 if (!_seq) {
21228 PyMem_Free(_children);
21229 p->error_indicator = 1;
21230 PyErr_NoMemory();
21231 D(p->level--);
21232 return NULL;
21233 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021234 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021235 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021236 _PyPegen_insert_memo(p, _start_mark, _loop0_84_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021237 D(p->level--);
21238 return _seq;
21239}
21240
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021241// _loop1_85: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021242static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021243_loop1_85_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021244{
21245 D(p->level++);
21246 if (p->error_indicator) {
21247 D(p->level--);
21248 return NULL;
21249 }
21250 void *_res = NULL;
21251 int _mark = p->mark;
21252 int _start_mark = p->mark;
21253 void **_children = PyMem_Malloc(sizeof(void *));
21254 if (!_children) {
21255 p->error_indicator = 1;
21256 PyErr_NoMemory();
21257 D(p->level--);
21258 return NULL;
21259 }
21260 ssize_t _children_capacity = 1;
21261 ssize_t _n = 0;
21262 { // lambda_param_with_default
21263 if (p->error_indicator) {
21264 D(p->level--);
21265 return NULL;
21266 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021267 D(fprintf(stderr, "%*c> _loop1_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021268 NameDefaultPair* lambda_param_with_default_var;
21269 while (
21270 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
21271 )
21272 {
21273 _res = lambda_param_with_default_var;
21274 if (_n == _children_capacity) {
21275 _children_capacity *= 2;
21276 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21277 if (!_new_children) {
21278 p->error_indicator = 1;
21279 PyErr_NoMemory();
21280 D(p->level--);
21281 return NULL;
21282 }
21283 _children = _new_children;
21284 }
21285 _children[_n++] = _res;
21286 _mark = p->mark;
21287 }
21288 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021289 D(fprintf(stderr, "%*c%s _loop1_85[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021290 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
21291 }
21292 if (_n == 0 || p->error_indicator) {
21293 PyMem_Free(_children);
21294 D(p->level--);
21295 return NULL;
21296 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021297 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021298 if (!_seq) {
21299 PyMem_Free(_children);
21300 p->error_indicator = 1;
21301 PyErr_NoMemory();
21302 D(p->level--);
21303 return NULL;
21304 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021305 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021306 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021307 _PyPegen_insert_memo(p, _start_mark, _loop1_85_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021308 D(p->level--);
21309 return _seq;
21310}
21311
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021312// _loop0_86: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021313static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021314_loop0_86_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021315{
21316 D(p->level++);
21317 if (p->error_indicator) {
21318 D(p->level--);
21319 return NULL;
21320 }
21321 void *_res = NULL;
21322 int _mark = p->mark;
21323 int _start_mark = p->mark;
21324 void **_children = PyMem_Malloc(sizeof(void *));
21325 if (!_children) {
21326 p->error_indicator = 1;
21327 PyErr_NoMemory();
21328 D(p->level--);
21329 return NULL;
21330 }
21331 ssize_t _children_capacity = 1;
21332 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021333 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021334 if (p->error_indicator) {
21335 D(p->level--);
21336 return NULL;
21337 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021338 D(fprintf(stderr, "%*c> _loop0_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
21339 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021340 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021341 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021342 )
21343 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021344 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021345 if (_n == _children_capacity) {
21346 _children_capacity *= 2;
21347 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21348 if (!_new_children) {
21349 p->error_indicator = 1;
21350 PyErr_NoMemory();
21351 D(p->level--);
21352 return NULL;
21353 }
21354 _children = _new_children;
21355 }
21356 _children[_n++] = _res;
21357 _mark = p->mark;
21358 }
21359 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021360 D(fprintf(stderr, "%*c%s _loop0_86[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021361 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021362 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021363 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021364 if (!_seq) {
21365 PyMem_Free(_children);
21366 p->error_indicator = 1;
21367 PyErr_NoMemory();
21368 D(p->level--);
21369 return NULL;
21370 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021371 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021372 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021373 _PyPegen_insert_memo(p, _start_mark, _loop0_86_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021374 D(p->level--);
21375 return _seq;
21376}
21377
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021378// _loop1_87: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021379static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021380_loop1_87_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021381{
21382 D(p->level++);
21383 if (p->error_indicator) {
21384 D(p->level--);
21385 return NULL;
21386 }
21387 void *_res = NULL;
21388 int _mark = p->mark;
21389 int _start_mark = p->mark;
21390 void **_children = PyMem_Malloc(sizeof(void *));
21391 if (!_children) {
21392 p->error_indicator = 1;
21393 PyErr_NoMemory();
21394 D(p->level--);
21395 return NULL;
21396 }
21397 ssize_t _children_capacity = 1;
21398 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021399 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021400 if (p->error_indicator) {
21401 D(p->level--);
21402 return NULL;
21403 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021404 D(fprintf(stderr, "%*c> _loop1_87[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
21405 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021406 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021407 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021408 )
21409 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021410 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021411 if (_n == _children_capacity) {
21412 _children_capacity *= 2;
21413 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21414 if (!_new_children) {
21415 p->error_indicator = 1;
21416 PyErr_NoMemory();
21417 D(p->level--);
21418 return NULL;
21419 }
21420 _children = _new_children;
21421 }
21422 _children[_n++] = _res;
21423 _mark = p->mark;
21424 }
21425 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021426 D(fprintf(stderr, "%*c%s _loop1_87[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021427 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021428 }
21429 if (_n == 0 || p->error_indicator) {
21430 PyMem_Free(_children);
21431 D(p->level--);
21432 return NULL;
21433 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021434 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021435 if (!_seq) {
21436 PyMem_Free(_children);
21437 p->error_indicator = 1;
21438 PyErr_NoMemory();
21439 D(p->level--);
21440 return NULL;
21441 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021442 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021443 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021444 _PyPegen_insert_memo(p, _start_mark, _loop1_87_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021445 D(p->level--);
21446 return _seq;
21447}
21448
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021449// _loop1_88: ('or' conjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021450static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021451_loop1_88_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021452{
21453 D(p->level++);
21454 if (p->error_indicator) {
21455 D(p->level--);
21456 return NULL;
21457 }
21458 void *_res = NULL;
21459 int _mark = p->mark;
21460 int _start_mark = p->mark;
21461 void **_children = PyMem_Malloc(sizeof(void *));
21462 if (!_children) {
21463 p->error_indicator = 1;
21464 PyErr_NoMemory();
21465 D(p->level--);
21466 return NULL;
21467 }
21468 ssize_t _children_capacity = 1;
21469 ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021470 { // ('or' conjunction)
21471 if (p->error_indicator) {
21472 D(p->level--);
21473 return NULL;
21474 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021475 D(fprintf(stderr, "%*c> _loop1_88[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000021476 void *_tmp_152_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021477 while (
Pablo Galindo206cbda2021-02-07 18:42:21 +000021478 (_tmp_152_var = _tmp_152_rule(p)) // 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021479 )
21480 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000021481 _res = _tmp_152_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021482 if (_n == _children_capacity) {
21483 _children_capacity *= 2;
21484 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21485 if (!_new_children) {
21486 p->error_indicator = 1;
21487 PyErr_NoMemory();
21488 D(p->level--);
21489 return NULL;
21490 }
21491 _children = _new_children;
21492 }
21493 _children[_n++] = _res;
21494 _mark = p->mark;
21495 }
21496 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021497 D(fprintf(stderr, "%*c%s _loop1_88[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021498 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
21499 }
21500 if (_n == 0 || p->error_indicator) {
21501 PyMem_Free(_children);
21502 D(p->level--);
21503 return NULL;
21504 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021505 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021506 if (!_seq) {
21507 PyMem_Free(_children);
21508 p->error_indicator = 1;
21509 PyErr_NoMemory();
21510 D(p->level--);
21511 return NULL;
21512 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021513 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021514 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021515 _PyPegen_insert_memo(p, _start_mark, _loop1_88_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021516 D(p->level--);
21517 return _seq;
21518}
21519
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021520// _loop1_89: ('and' inversion)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021521static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021522_loop1_89_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021523{
21524 D(p->level++);
21525 if (p->error_indicator) {
21526 D(p->level--);
21527 return NULL;
21528 }
21529 void *_res = NULL;
21530 int _mark = p->mark;
21531 int _start_mark = p->mark;
21532 void **_children = PyMem_Malloc(sizeof(void *));
21533 if (!_children) {
21534 p->error_indicator = 1;
21535 PyErr_NoMemory();
21536 D(p->level--);
21537 return NULL;
21538 }
21539 ssize_t _children_capacity = 1;
21540 ssize_t _n = 0;
21541 { // ('and' inversion)
21542 if (p->error_indicator) {
21543 D(p->level--);
21544 return NULL;
21545 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021546 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000021547 void *_tmp_153_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021548 while (
Pablo Galindo206cbda2021-02-07 18:42:21 +000021549 (_tmp_153_var = _tmp_153_rule(p)) // 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021550 )
21551 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000021552 _res = _tmp_153_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021553 if (_n == _children_capacity) {
21554 _children_capacity *= 2;
21555 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21556 if (!_new_children) {
21557 p->error_indicator = 1;
21558 PyErr_NoMemory();
21559 D(p->level--);
21560 return NULL;
21561 }
21562 _children = _new_children;
21563 }
21564 _children[_n++] = _res;
21565 _mark = p->mark;
21566 }
21567 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021568 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021569 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
21570 }
21571 if (_n == 0 || p->error_indicator) {
21572 PyMem_Free(_children);
21573 D(p->level--);
21574 return NULL;
21575 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021576 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021577 if (!_seq) {
21578 PyMem_Free(_children);
21579 p->error_indicator = 1;
21580 PyErr_NoMemory();
21581 D(p->level--);
21582 return NULL;
21583 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021584 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021585 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021586 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021587 D(p->level--);
21588 return _seq;
21589}
21590
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021591// _loop1_90: compare_op_bitwise_or_pair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021592static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021593_loop1_90_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021594{
21595 D(p->level++);
21596 if (p->error_indicator) {
21597 D(p->level--);
21598 return NULL;
21599 }
21600 void *_res = NULL;
21601 int _mark = p->mark;
21602 int _start_mark = p->mark;
21603 void **_children = PyMem_Malloc(sizeof(void *));
21604 if (!_children) {
21605 p->error_indicator = 1;
21606 PyErr_NoMemory();
21607 D(p->level--);
21608 return NULL;
21609 }
21610 ssize_t _children_capacity = 1;
21611 ssize_t _n = 0;
21612 { // compare_op_bitwise_or_pair
21613 if (p->error_indicator) {
21614 D(p->level--);
21615 return NULL;
21616 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021617 D(fprintf(stderr, "%*c> _loop1_90[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compare_op_bitwise_or_pair"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021618 CmpopExprPair* compare_op_bitwise_or_pair_var;
21619 while (
21620 (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
21621 )
21622 {
21623 _res = compare_op_bitwise_or_pair_var;
21624 if (_n == _children_capacity) {
21625 _children_capacity *= 2;
21626 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21627 if (!_new_children) {
21628 p->error_indicator = 1;
21629 PyErr_NoMemory();
21630 D(p->level--);
21631 return NULL;
21632 }
21633 _children = _new_children;
21634 }
21635 _children[_n++] = _res;
21636 _mark = p->mark;
21637 }
21638 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021639 D(fprintf(stderr, "%*c%s _loop1_90[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021640 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
21641 }
21642 if (_n == 0 || p->error_indicator) {
21643 PyMem_Free(_children);
21644 D(p->level--);
21645 return NULL;
21646 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021647 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021648 if (!_seq) {
21649 PyMem_Free(_children);
21650 p->error_indicator = 1;
21651 PyErr_NoMemory();
21652 D(p->level--);
21653 return NULL;
21654 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021655 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021656 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021657 _PyPegen_insert_memo(p, _start_mark, _loop1_90_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021658 D(p->level--);
21659 return _seq;
21660}
21661
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021662// _tmp_91: '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021663static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021664_tmp_91_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021665{
21666 D(p->level++);
21667 if (p->error_indicator) {
21668 D(p->level--);
21669 return NULL;
21670 }
21671 void * _res = NULL;
21672 int _mark = p->mark;
21673 { // '!='
21674 if (p->error_indicator) {
21675 D(p->level--);
21676 return NULL;
21677 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021678 D(fprintf(stderr, "%*c> _tmp_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021679 Token * tok;
21680 if (
21681 (tok = _PyPegen_expect_token(p, 28)) // token='!='
21682 )
21683 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021684 D(fprintf(stderr, "%*c+ _tmp_91[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo06f8c332020-10-30 23:48:42 +000021685 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021686 if (_res == NULL && PyErr_Occurred()) {
21687 p->error_indicator = 1;
21688 D(p->level--);
21689 return NULL;
21690 }
21691 goto done;
21692 }
21693 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021694 D(fprintf(stderr, "%*c%s _tmp_91[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021695 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
21696 }
21697 _res = NULL;
21698 done:
21699 D(p->level--);
21700 return _res;
21701}
21702
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021703// _loop0_93: ',' slice
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021704static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021705_loop0_93_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021706{
21707 D(p->level++);
21708 if (p->error_indicator) {
21709 D(p->level--);
21710 return NULL;
21711 }
21712 void *_res = NULL;
21713 int _mark = p->mark;
21714 int _start_mark = p->mark;
21715 void **_children = PyMem_Malloc(sizeof(void *));
21716 if (!_children) {
21717 p->error_indicator = 1;
21718 PyErr_NoMemory();
21719 D(p->level--);
21720 return NULL;
21721 }
21722 ssize_t _children_capacity = 1;
21723 ssize_t _n = 0;
21724 { // ',' slice
21725 if (p->error_indicator) {
21726 D(p->level--);
21727 return NULL;
21728 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021729 D(fprintf(stderr, "%*c> _loop0_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021730 Token * _literal;
21731 expr_ty elem;
21732 while (
21733 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21734 &&
21735 (elem = slice_rule(p)) // slice
21736 )
21737 {
21738 _res = elem;
21739 if (_res == NULL && PyErr_Occurred()) {
21740 p->error_indicator = 1;
21741 PyMem_Free(_children);
21742 D(p->level--);
21743 return NULL;
21744 }
21745 if (_n == _children_capacity) {
21746 _children_capacity *= 2;
21747 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21748 if (!_new_children) {
21749 p->error_indicator = 1;
21750 PyErr_NoMemory();
21751 D(p->level--);
21752 return NULL;
21753 }
21754 _children = _new_children;
21755 }
21756 _children[_n++] = _res;
21757 _mark = p->mark;
21758 }
21759 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021760 D(fprintf(stderr, "%*c%s _loop0_93[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021761 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
21762 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021763 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021764 if (!_seq) {
21765 PyMem_Free(_children);
21766 p->error_indicator = 1;
21767 PyErr_NoMemory();
21768 D(p->level--);
21769 return NULL;
21770 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021771 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021772 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021773 _PyPegen_insert_memo(p, _start_mark, _loop0_93_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021774 D(p->level--);
21775 return _seq;
21776}
21777
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021778// _gather_92: slice _loop0_93
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021779static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021780_gather_92_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021781{
21782 D(p->level++);
21783 if (p->error_indicator) {
21784 D(p->level--);
21785 return NULL;
21786 }
21787 asdl_seq * _res = NULL;
21788 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021789 { // slice _loop0_93
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021790 if (p->error_indicator) {
21791 D(p->level--);
21792 return NULL;
21793 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021794 D(fprintf(stderr, "%*c> _gather_92[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice _loop0_93"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021795 expr_ty elem;
21796 asdl_seq * seq;
21797 if (
21798 (elem = slice_rule(p)) // slice
21799 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021800 (seq = _loop0_93_rule(p)) // _loop0_93
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021801 )
21802 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021803 D(fprintf(stderr, "%*c+ _gather_92[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice _loop0_93"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021804 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21805 goto done;
21806 }
21807 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021808 D(fprintf(stderr, "%*c%s _gather_92[%d-%d]: %s failed!\n", p->level, ' ',
21809 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_93"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021810 }
21811 _res = NULL;
21812 done:
21813 D(p->level--);
21814 return _res;
21815}
21816
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021817// _tmp_94: ':' expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021818static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021819_tmp_94_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021820{
21821 D(p->level++);
21822 if (p->error_indicator) {
21823 D(p->level--);
21824 return NULL;
21825 }
21826 void * _res = NULL;
21827 int _mark = p->mark;
21828 { // ':' expression?
21829 if (p->error_indicator) {
21830 D(p->level--);
21831 return NULL;
21832 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021833 D(fprintf(stderr, "%*c> _tmp_94[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021834 Token * _literal;
21835 void *d;
21836 if (
21837 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21838 &&
21839 (d = expression_rule(p), 1) // expression?
21840 )
21841 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021842 D(fprintf(stderr, "%*c+ _tmp_94[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021843 _res = d;
21844 if (_res == NULL && PyErr_Occurred()) {
21845 p->error_indicator = 1;
21846 D(p->level--);
21847 return NULL;
21848 }
21849 goto done;
21850 }
21851 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021852 D(fprintf(stderr, "%*c%s _tmp_94[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021853 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
21854 }
21855 _res = NULL;
21856 done:
21857 D(p->level--);
21858 return _res;
21859}
21860
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021861// _tmp_95: tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021862static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021863_tmp_95_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021864{
21865 D(p->level++);
21866 if (p->error_indicator) {
21867 D(p->level--);
21868 return NULL;
21869 }
21870 void * _res = NULL;
21871 int _mark = p->mark;
21872 { // tuple
21873 if (p->error_indicator) {
21874 D(p->level--);
21875 return NULL;
21876 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021877 D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021878 expr_ty tuple_var;
21879 if (
21880 (tuple_var = tuple_rule(p)) // tuple
21881 )
21882 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021883 D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021884 _res = tuple_var;
21885 goto done;
21886 }
21887 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021888 D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
21890 }
21891 { // group
21892 if (p->error_indicator) {
21893 D(p->level--);
21894 return NULL;
21895 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021896 D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021897 expr_ty group_var;
21898 if (
21899 (group_var = group_rule(p)) // group
21900 )
21901 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021902 D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021903 _res = group_var;
21904 goto done;
21905 }
21906 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021907 D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021908 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
21909 }
21910 { // genexp
21911 if (p->error_indicator) {
21912 D(p->level--);
21913 return NULL;
21914 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021915 D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021916 expr_ty genexp_var;
21917 if (
21918 (genexp_var = genexp_rule(p)) // genexp
21919 )
21920 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021921 D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021922 _res = genexp_var;
21923 goto done;
21924 }
21925 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021926 D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021927 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
21928 }
21929 _res = NULL;
21930 done:
21931 D(p->level--);
21932 return _res;
21933}
21934
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021935// _tmp_96: list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021936static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021937_tmp_96_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021938{
21939 D(p->level++);
21940 if (p->error_indicator) {
21941 D(p->level--);
21942 return NULL;
21943 }
21944 void * _res = NULL;
21945 int _mark = p->mark;
21946 { // list
21947 if (p->error_indicator) {
21948 D(p->level--);
21949 return NULL;
21950 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021951 D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021952 expr_ty list_var;
21953 if (
21954 (list_var = list_rule(p)) // list
21955 )
21956 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021957 D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021958 _res = list_var;
21959 goto done;
21960 }
21961 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021962 D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021963 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
21964 }
21965 { // listcomp
21966 if (p->error_indicator) {
21967 D(p->level--);
21968 return NULL;
21969 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021970 D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021971 expr_ty listcomp_var;
21972 if (
21973 (listcomp_var = listcomp_rule(p)) // listcomp
21974 )
21975 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021976 D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021977 _res = listcomp_var;
21978 goto done;
21979 }
21980 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021981 D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021982 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
21983 }
21984 _res = NULL;
21985 done:
21986 D(p->level--);
21987 return _res;
21988}
21989
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021990// _tmp_97: dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021991static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021992_tmp_97_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021993{
21994 D(p->level++);
21995 if (p->error_indicator) {
21996 D(p->level--);
21997 return NULL;
21998 }
21999 void * _res = NULL;
22000 int _mark = p->mark;
22001 { // dict
22002 if (p->error_indicator) {
22003 D(p->level--);
22004 return NULL;
22005 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022006 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022007 expr_ty dict_var;
22008 if (
22009 (dict_var = dict_rule(p)) // dict
22010 )
22011 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022012 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022013 _res = dict_var;
22014 goto done;
22015 }
22016 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022017 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022018 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
22019 }
22020 { // set
22021 if (p->error_indicator) {
22022 D(p->level--);
22023 return NULL;
22024 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022025 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022026 expr_ty set_var;
22027 if (
22028 (set_var = set_rule(p)) // set
22029 )
22030 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022031 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022032 _res = set_var;
22033 goto done;
22034 }
22035 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022036 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
22038 }
22039 { // dictcomp
22040 if (p->error_indicator) {
22041 D(p->level--);
22042 return NULL;
22043 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022044 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022045 expr_ty dictcomp_var;
22046 if (
22047 (dictcomp_var = dictcomp_rule(p)) // dictcomp
22048 )
22049 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022050 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022051 _res = dictcomp_var;
22052 goto done;
22053 }
22054 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022055 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022056 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
22057 }
22058 { // setcomp
22059 if (p->error_indicator) {
22060 D(p->level--);
22061 return NULL;
22062 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022063 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022064 expr_ty setcomp_var;
22065 if (
22066 (setcomp_var = setcomp_rule(p)) // setcomp
22067 )
22068 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022069 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022070 _res = setcomp_var;
22071 goto done;
22072 }
22073 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022074 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022075 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
22076 }
22077 _res = NULL;
22078 done:
22079 D(p->level--);
22080 return _res;
22081}
22082
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022083// _loop1_98: STRING
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022084static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022085_loop1_98_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022086{
22087 D(p->level++);
22088 if (p->error_indicator) {
22089 D(p->level--);
22090 return NULL;
22091 }
22092 void *_res = NULL;
22093 int _mark = p->mark;
22094 int _start_mark = p->mark;
22095 void **_children = PyMem_Malloc(sizeof(void *));
22096 if (!_children) {
22097 p->error_indicator = 1;
22098 PyErr_NoMemory();
22099 D(p->level--);
22100 return NULL;
22101 }
22102 ssize_t _children_capacity = 1;
22103 ssize_t _n = 0;
22104 { // STRING
22105 if (p->error_indicator) {
22106 D(p->level--);
22107 return NULL;
22108 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022109 D(fprintf(stderr, "%*c> _loop1_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022110 expr_ty string_var;
22111 while (
22112 (string_var = _PyPegen_string_token(p)) // STRING
22113 )
22114 {
22115 _res = string_var;
22116 if (_n == _children_capacity) {
22117 _children_capacity *= 2;
22118 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22119 if (!_new_children) {
22120 p->error_indicator = 1;
22121 PyErr_NoMemory();
22122 D(p->level--);
22123 return NULL;
22124 }
22125 _children = _new_children;
22126 }
22127 _children[_n++] = _res;
22128 _mark = p->mark;
22129 }
22130 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022131 D(fprintf(stderr, "%*c%s _loop1_98[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022132 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
22133 }
22134 if (_n == 0 || p->error_indicator) {
22135 PyMem_Free(_children);
22136 D(p->level--);
22137 return NULL;
22138 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022139 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022140 if (!_seq) {
22141 PyMem_Free(_children);
22142 p->error_indicator = 1;
22143 PyErr_NoMemory();
22144 D(p->level--);
22145 return NULL;
22146 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022147 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022148 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022149 _PyPegen_insert_memo(p, _start_mark, _loop1_98_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022150 D(p->level--);
22151 return _seq;
22152}
22153
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022154// _tmp_99: star_named_expression ',' star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022155static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022156_tmp_99_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022157{
22158 D(p->level++);
22159 if (p->error_indicator) {
22160 D(p->level--);
22161 return NULL;
22162 }
22163 void * _res = NULL;
22164 int _mark = p->mark;
22165 { // star_named_expression ',' star_named_expressions?
22166 if (p->error_indicator) {
22167 D(p->level--);
22168 return NULL;
22169 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022170 D(fprintf(stderr, "%*c> _tmp_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022171 Token * _literal;
22172 expr_ty y;
22173 void *z;
22174 if (
22175 (y = star_named_expression_rule(p)) // star_named_expression
22176 &&
22177 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22178 &&
22179 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
22180 )
22181 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022182 D(fprintf(stderr, "%*c+ _tmp_99[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022183 _res = _PyPegen_seq_insert_in_front ( p , y , z );
22184 if (_res == NULL && PyErr_Occurred()) {
22185 p->error_indicator = 1;
22186 D(p->level--);
22187 return NULL;
22188 }
22189 goto done;
22190 }
22191 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022192 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022193 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
22194 }
22195 _res = NULL;
22196 done:
22197 D(p->level--);
22198 return _res;
22199}
22200
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022201// _tmp_100: yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022202static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022203_tmp_100_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022204{
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 { // yield_expr
22213 if (p->error_indicator) {
22214 D(p->level--);
22215 return NULL;
22216 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022217 D(fprintf(stderr, "%*c> _tmp_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022218 expr_ty yield_expr_var;
22219 if (
22220 (yield_expr_var = yield_expr_rule(p)) // yield_expr
22221 )
22222 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022223 D(fprintf(stderr, "%*c+ _tmp_100[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022224 _res = yield_expr_var;
22225 goto done;
22226 }
22227 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022228 D(fprintf(stderr, "%*c%s _tmp_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022229 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
22230 }
22231 { // named_expression
22232 if (p->error_indicator) {
22233 D(p->level--);
22234 return NULL;
22235 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022236 D(fprintf(stderr, "%*c> _tmp_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022237 expr_ty named_expression_var;
22238 if (
22239 (named_expression_var = named_expression_rule(p)) // named_expression
22240 )
22241 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022242 D(fprintf(stderr, "%*c+ _tmp_100[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022243 _res = named_expression_var;
22244 goto done;
22245 }
22246 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022247 D(fprintf(stderr, "%*c%s _tmp_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022248 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
22249 }
22250 _res = NULL;
22251 done:
22252 D(p->level--);
22253 return _res;
22254}
22255
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022256// _loop0_102: ',' double_starred_kvpair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022257static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022258_loop0_102_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022259{
22260 D(p->level++);
22261 if (p->error_indicator) {
22262 D(p->level--);
22263 return NULL;
22264 }
22265 void *_res = NULL;
22266 int _mark = p->mark;
22267 int _start_mark = p->mark;
22268 void **_children = PyMem_Malloc(sizeof(void *));
22269 if (!_children) {
22270 p->error_indicator = 1;
22271 PyErr_NoMemory();
22272 D(p->level--);
22273 return NULL;
22274 }
22275 ssize_t _children_capacity = 1;
22276 ssize_t _n = 0;
22277 { // ',' double_starred_kvpair
22278 if (p->error_indicator) {
22279 D(p->level--);
22280 return NULL;
22281 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022282 D(fprintf(stderr, "%*c> _loop0_102[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022283 Token * _literal;
22284 KeyValuePair* elem;
22285 while (
22286 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22287 &&
22288 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
22289 )
22290 {
22291 _res = elem;
22292 if (_res == NULL && PyErr_Occurred()) {
22293 p->error_indicator = 1;
22294 PyMem_Free(_children);
22295 D(p->level--);
22296 return NULL;
22297 }
22298 if (_n == _children_capacity) {
22299 _children_capacity *= 2;
22300 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22301 if (!_new_children) {
22302 p->error_indicator = 1;
22303 PyErr_NoMemory();
22304 D(p->level--);
22305 return NULL;
22306 }
22307 _children = _new_children;
22308 }
22309 _children[_n++] = _res;
22310 _mark = p->mark;
22311 }
22312 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022313 D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022314 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
22315 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022316 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022317 if (!_seq) {
22318 PyMem_Free(_children);
22319 p->error_indicator = 1;
22320 PyErr_NoMemory();
22321 D(p->level--);
22322 return NULL;
22323 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022324 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022325 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022326 _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022327 D(p->level--);
22328 return _seq;
22329}
22330
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022331// _gather_101: double_starred_kvpair _loop0_102
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022332static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022333_gather_101_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022334{
22335 D(p->level++);
22336 if (p->error_indicator) {
22337 D(p->level--);
22338 return NULL;
22339 }
22340 asdl_seq * _res = NULL;
22341 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022342 { // double_starred_kvpair _loop0_102
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022343 if (p->error_indicator) {
22344 D(p->level--);
22345 return NULL;
22346 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022347 D(fprintf(stderr, "%*c> _gather_101[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_102"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022348 KeyValuePair* elem;
22349 asdl_seq * seq;
22350 if (
22351 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
22352 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022353 (seq = _loop0_102_rule(p)) // _loop0_102
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022354 )
22355 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022356 D(fprintf(stderr, "%*c+ _gather_101[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_102"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022357 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22358 goto done;
22359 }
22360 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022361 D(fprintf(stderr, "%*c%s _gather_101[%d-%d]: %s failed!\n", p->level, ' ',
22362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_102"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022363 }
22364 _res = NULL;
22365 done:
22366 D(p->level--);
22367 return _res;
22368}
22369
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022370// _loop1_103: for_if_clause
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022371static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022372_loop1_103_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022373{
22374 D(p->level++);
22375 if (p->error_indicator) {
22376 D(p->level--);
22377 return NULL;
22378 }
22379 void *_res = NULL;
22380 int _mark = p->mark;
22381 int _start_mark = p->mark;
22382 void **_children = PyMem_Malloc(sizeof(void *));
22383 if (!_children) {
22384 p->error_indicator = 1;
22385 PyErr_NoMemory();
22386 D(p->level--);
22387 return NULL;
22388 }
22389 ssize_t _children_capacity = 1;
22390 ssize_t _n = 0;
22391 { // for_if_clause
22392 if (p->error_indicator) {
22393 D(p->level--);
22394 return NULL;
22395 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022396 D(fprintf(stderr, "%*c> _loop1_103[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022397 comprehension_ty for_if_clause_var;
22398 while (
22399 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
22400 )
22401 {
22402 _res = for_if_clause_var;
22403 if (_n == _children_capacity) {
22404 _children_capacity *= 2;
22405 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22406 if (!_new_children) {
22407 p->error_indicator = 1;
22408 PyErr_NoMemory();
22409 D(p->level--);
22410 return NULL;
22411 }
22412 _children = _new_children;
22413 }
22414 _children[_n++] = _res;
22415 _mark = p->mark;
22416 }
22417 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022418 D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022419 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
22420 }
22421 if (_n == 0 || p->error_indicator) {
22422 PyMem_Free(_children);
22423 D(p->level--);
22424 return NULL;
22425 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022426 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022427 if (!_seq) {
22428 PyMem_Free(_children);
22429 p->error_indicator = 1;
22430 PyErr_NoMemory();
22431 D(p->level--);
22432 return NULL;
22433 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022434 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022435 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022436 _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022437 D(p->level--);
22438 return _seq;
22439}
22440
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022441// _loop0_104: ('if' disjunction)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022442static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022443_loop0_104_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022444{
22445 D(p->level++);
22446 if (p->error_indicator) {
22447 D(p->level--);
22448 return NULL;
22449 }
22450 void *_res = NULL;
22451 int _mark = p->mark;
22452 int _start_mark = p->mark;
22453 void **_children = PyMem_Malloc(sizeof(void *));
22454 if (!_children) {
22455 p->error_indicator = 1;
22456 PyErr_NoMemory();
22457 D(p->level--);
22458 return NULL;
22459 }
22460 ssize_t _children_capacity = 1;
22461 ssize_t _n = 0;
22462 { // ('if' disjunction)
22463 if (p->error_indicator) {
22464 D(p->level--);
22465 return NULL;
22466 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022467 D(fprintf(stderr, "%*c> _loop0_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000022468 void *_tmp_154_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022469 while (
Pablo Galindo206cbda2021-02-07 18:42:21 +000022470 (_tmp_154_var = _tmp_154_rule(p)) // 'if' disjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022471 )
22472 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000022473 _res = _tmp_154_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022474 if (_n == _children_capacity) {
22475 _children_capacity *= 2;
22476 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22477 if (!_new_children) {
22478 p->error_indicator = 1;
22479 PyErr_NoMemory();
22480 D(p->level--);
22481 return NULL;
22482 }
22483 _children = _new_children;
22484 }
22485 _children[_n++] = _res;
22486 _mark = p->mark;
22487 }
22488 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022489 D(fprintf(stderr, "%*c%s _loop0_104[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
22491 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022492 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022493 if (!_seq) {
22494 PyMem_Free(_children);
22495 p->error_indicator = 1;
22496 PyErr_NoMemory();
22497 D(p->level--);
22498 return NULL;
22499 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022500 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022501 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022502 _PyPegen_insert_memo(p, _start_mark, _loop0_104_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022503 D(p->level--);
22504 return _seq;
22505}
22506
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022507// _loop0_105: ('if' disjunction)
22508static asdl_seq *
22509_loop0_105_rule(Parser *p)
22510{
22511 D(p->level++);
22512 if (p->error_indicator) {
22513 D(p->level--);
22514 return NULL;
22515 }
22516 void *_res = NULL;
22517 int _mark = p->mark;
22518 int _start_mark = p->mark;
22519 void **_children = PyMem_Malloc(sizeof(void *));
22520 if (!_children) {
22521 p->error_indicator = 1;
22522 PyErr_NoMemory();
22523 D(p->level--);
22524 return NULL;
22525 }
22526 ssize_t _children_capacity = 1;
22527 ssize_t _n = 0;
22528 { // ('if' disjunction)
22529 if (p->error_indicator) {
22530 D(p->level--);
22531 return NULL;
22532 }
22533 D(fprintf(stderr, "%*c> _loop0_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000022534 void *_tmp_155_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022535 while (
Pablo Galindo206cbda2021-02-07 18:42:21 +000022536 (_tmp_155_var = _tmp_155_rule(p)) // 'if' disjunction
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022537 )
22538 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000022539 _res = _tmp_155_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022540 if (_n == _children_capacity) {
22541 _children_capacity *= 2;
22542 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22543 if (!_new_children) {
22544 p->error_indicator = 1;
22545 PyErr_NoMemory();
22546 D(p->level--);
22547 return NULL;
22548 }
22549 _children = _new_children;
22550 }
22551 _children[_n++] = _res;
22552 _mark = p->mark;
22553 }
22554 p->mark = _mark;
22555 D(fprintf(stderr, "%*c%s _loop0_105[%d-%d]: %s failed!\n", p->level, ' ',
22556 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
22557 }
22558 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22559 if (!_seq) {
22560 PyMem_Free(_children);
22561 p->error_indicator = 1;
22562 PyErr_NoMemory();
22563 D(p->level--);
22564 return NULL;
22565 }
22566 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22567 PyMem_Free(_children);
22568 _PyPegen_insert_memo(p, _start_mark, _loop0_105_type, _seq);
22569 D(p->level--);
22570 return _seq;
22571}
22572
22573// _loop0_107: ',' (starred_expression | named_expression !'=')
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022574static asdl_seq *
22575_loop0_107_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022576{
22577 D(p->level++);
22578 if (p->error_indicator) {
22579 D(p->level--);
22580 return NULL;
22581 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022582 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022583 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022584 int _start_mark = p->mark;
22585 void **_children = PyMem_Malloc(sizeof(void *));
22586 if (!_children) {
22587 p->error_indicator = 1;
22588 PyErr_NoMemory();
22589 D(p->level--);
22590 return NULL;
22591 }
22592 ssize_t _children_capacity = 1;
22593 ssize_t _n = 0;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022594 { // ',' (starred_expression | named_expression !'=')
22595 if (p->error_indicator) {
22596 D(p->level--);
22597 return NULL;
22598 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022599 D(fprintf(stderr, "%*c> _loop0_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | named_expression !'=')"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010022600 Token * _literal;
22601 void *elem;
22602 while (
22603 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22604 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +000022605 (elem = _tmp_156_rule(p)) // starred_expression | named_expression !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010022606 )
22607 {
22608 _res = elem;
22609 if (_res == NULL && PyErr_Occurred()) {
22610 p->error_indicator = 1;
22611 PyMem_Free(_children);
22612 D(p->level--);
22613 return NULL;
22614 }
22615 if (_n == _children_capacity) {
22616 _children_capacity *= 2;
22617 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22618 if (!_new_children) {
22619 p->error_indicator = 1;
22620 PyErr_NoMemory();
22621 D(p->level--);
22622 return NULL;
22623 }
22624 _children = _new_children;
22625 }
22626 _children[_n++] = _res;
22627 _mark = p->mark;
22628 }
22629 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022630 D(fprintf(stderr, "%*c%s _loop0_107[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010022631 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | named_expression !'=')"));
22632 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022633 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022634 if (!_seq) {
22635 PyMem_Free(_children);
22636 p->error_indicator = 1;
22637 PyErr_NoMemory();
22638 D(p->level--);
22639 return NULL;
22640 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022641 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022642 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022643 _PyPegen_insert_memo(p, _start_mark, _loop0_107_type, _seq);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022644 D(p->level--);
22645 return _seq;
22646}
22647
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022648// _gather_106: (starred_expression | named_expression !'=') _loop0_107
Pablo Galindo4a97b152020-09-02 17:44:19 +010022649static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022650_gather_106_rule(Parser *p)
Pablo Galindo4a97b152020-09-02 17:44:19 +010022651{
22652 D(p->level++);
22653 if (p->error_indicator) {
22654 D(p->level--);
22655 return NULL;
22656 }
22657 asdl_seq * _res = NULL;
22658 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022659 { // (starred_expression | named_expression !'=') _loop0_107
Pablo Galindo4a97b152020-09-02 17:44:19 +010022660 if (p->error_indicator) {
22661 D(p->level--);
22662 return NULL;
22663 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022664 D(fprintf(stderr, "%*c> _gather_106[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_107"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010022665 void *elem;
22666 asdl_seq * seq;
22667 if (
Pablo Galindo206cbda2021-02-07 18:42:21 +000022668 (elem = _tmp_156_rule(p)) // starred_expression | named_expression !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010022669 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022670 (seq = _loop0_107_rule(p)) // _loop0_107
Pablo Galindo4a97b152020-09-02 17:44:19 +010022671 )
22672 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022673 D(fprintf(stderr, "%*c+ _gather_106[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_107"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010022674 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22675 goto done;
22676 }
22677 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022678 D(fprintf(stderr, "%*c%s _gather_106[%d-%d]: %s failed!\n", p->level, ' ',
22679 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_107"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010022680 }
22681 _res = NULL;
22682 done:
22683 D(p->level--);
22684 return _res;
22685}
22686
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022687// _tmp_108: ',' kwargs
Pablo Galindo4a97b152020-09-02 17:44:19 +010022688static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022689_tmp_108_rule(Parser *p)
Pablo Galindo4a97b152020-09-02 17:44:19 +010022690{
22691 D(p->level++);
22692 if (p->error_indicator) {
22693 D(p->level--);
22694 return NULL;
22695 }
22696 void * _res = NULL;
22697 int _mark = p->mark;
22698 { // ',' kwargs
22699 if (p->error_indicator) {
22700 D(p->level--);
22701 return NULL;
22702 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022703 D(fprintf(stderr, "%*c> _tmp_108[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010022704 Token * _literal;
22705 asdl_seq* k;
22706 if (
22707 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22708 &&
22709 (k = kwargs_rule(p)) // kwargs
22710 )
22711 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022712 D(fprintf(stderr, "%*c+ _tmp_108[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010022713 _res = k;
22714 if (_res == NULL && PyErr_Occurred()) {
22715 p->error_indicator = 1;
22716 D(p->level--);
22717 return NULL;
22718 }
22719 goto done;
22720 }
22721 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022722 D(fprintf(stderr, "%*c%s _tmp_108[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010022723 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
22724 }
22725 _res = NULL;
22726 done:
22727 D(p->level--);
22728 return _res;
22729}
22730
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022731// _loop0_110: ',' kwarg_or_starred
Pablo Galindo4a97b152020-09-02 17:44:19 +010022732static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022733_loop0_110_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022734{
22735 D(p->level++);
22736 if (p->error_indicator) {
22737 D(p->level--);
22738 return NULL;
22739 }
22740 void *_res = NULL;
22741 int _mark = p->mark;
22742 int _start_mark = p->mark;
22743 void **_children = PyMem_Malloc(sizeof(void *));
22744 if (!_children) {
22745 p->error_indicator = 1;
22746 PyErr_NoMemory();
22747 D(p->level--);
22748 return NULL;
22749 }
22750 ssize_t _children_capacity = 1;
22751 ssize_t _n = 0;
22752 { // ',' kwarg_or_starred
22753 if (p->error_indicator) {
22754 D(p->level--);
22755 return NULL;
22756 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022757 D(fprintf(stderr, "%*c> _loop0_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022758 Token * _literal;
22759 KeywordOrStarred* elem;
22760 while (
22761 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22762 &&
22763 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
22764 )
22765 {
22766 _res = elem;
22767 if (_res == NULL && PyErr_Occurred()) {
22768 p->error_indicator = 1;
22769 PyMem_Free(_children);
22770 D(p->level--);
22771 return NULL;
22772 }
22773 if (_n == _children_capacity) {
22774 _children_capacity *= 2;
22775 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22776 if (!_new_children) {
22777 p->error_indicator = 1;
22778 PyErr_NoMemory();
22779 D(p->level--);
22780 return NULL;
22781 }
22782 _children = _new_children;
22783 }
22784 _children[_n++] = _res;
22785 _mark = p->mark;
22786 }
22787 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022788 D(fprintf(stderr, "%*c%s _loop0_110[%d-%d]: %s failed!\n", p->level, ' ',
22789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
22790 }
22791 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22792 if (!_seq) {
22793 PyMem_Free(_children);
22794 p->error_indicator = 1;
22795 PyErr_NoMemory();
22796 D(p->level--);
22797 return NULL;
22798 }
22799 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22800 PyMem_Free(_children);
22801 _PyPegen_insert_memo(p, _start_mark, _loop0_110_type, _seq);
22802 D(p->level--);
22803 return _seq;
22804}
22805
22806// _gather_109: kwarg_or_starred _loop0_110
22807static asdl_seq *
22808_gather_109_rule(Parser *p)
22809{
22810 D(p->level++);
22811 if (p->error_indicator) {
22812 D(p->level--);
22813 return NULL;
22814 }
22815 asdl_seq * _res = NULL;
22816 int _mark = p->mark;
22817 { // kwarg_or_starred _loop0_110
22818 if (p->error_indicator) {
22819 D(p->level--);
22820 return NULL;
22821 }
22822 D(fprintf(stderr, "%*c> _gather_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_110"));
22823 KeywordOrStarred* elem;
22824 asdl_seq * seq;
22825 if (
22826 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
22827 &&
22828 (seq = _loop0_110_rule(p)) // _loop0_110
22829 )
22830 {
22831 D(fprintf(stderr, "%*c+ _gather_109[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_110"));
22832 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22833 goto done;
22834 }
22835 p->mark = _mark;
22836 D(fprintf(stderr, "%*c%s _gather_109[%d-%d]: %s failed!\n", p->level, ' ',
22837 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_110"));
22838 }
22839 _res = NULL;
22840 done:
22841 D(p->level--);
22842 return _res;
22843}
22844
22845// _loop0_112: ',' kwarg_or_double_starred
22846static asdl_seq *
22847_loop0_112_rule(Parser *p)
22848{
22849 D(p->level++);
22850 if (p->error_indicator) {
22851 D(p->level--);
22852 return NULL;
22853 }
22854 void *_res = NULL;
22855 int _mark = p->mark;
22856 int _start_mark = p->mark;
22857 void **_children = PyMem_Malloc(sizeof(void *));
22858 if (!_children) {
22859 p->error_indicator = 1;
22860 PyErr_NoMemory();
22861 D(p->level--);
22862 return NULL;
22863 }
22864 ssize_t _children_capacity = 1;
22865 ssize_t _n = 0;
22866 { // ',' kwarg_or_double_starred
22867 if (p->error_indicator) {
22868 D(p->level--);
22869 return NULL;
22870 }
22871 D(fprintf(stderr, "%*c> _loop0_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
22872 Token * _literal;
22873 KeywordOrStarred* elem;
22874 while (
22875 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22876 &&
22877 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
22878 )
22879 {
22880 _res = elem;
22881 if (_res == NULL && PyErr_Occurred()) {
22882 p->error_indicator = 1;
22883 PyMem_Free(_children);
22884 D(p->level--);
22885 return NULL;
22886 }
22887 if (_n == _children_capacity) {
22888 _children_capacity *= 2;
22889 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22890 if (!_new_children) {
22891 p->error_indicator = 1;
22892 PyErr_NoMemory();
22893 D(p->level--);
22894 return NULL;
22895 }
22896 _children = _new_children;
22897 }
22898 _children[_n++] = _res;
22899 _mark = p->mark;
22900 }
22901 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022902 D(fprintf(stderr, "%*c%s _loop0_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022903 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022904 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022905 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022906 if (!_seq) {
22907 PyMem_Free(_children);
22908 p->error_indicator = 1;
22909 PyErr_NoMemory();
22910 D(p->level--);
22911 return NULL;
22912 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022913 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022914 PyMem_Free(_children);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022915 _PyPegen_insert_memo(p, _start_mark, _loop0_112_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022916 D(p->level--);
22917 return _seq;
22918}
22919
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022920// _gather_111: kwarg_or_double_starred _loop0_112
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022921static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010022922_gather_111_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022923{
22924 D(p->level++);
22925 if (p->error_indicator) {
22926 D(p->level--);
22927 return NULL;
22928 }
22929 asdl_seq * _res = NULL;
22930 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022931 { // kwarg_or_double_starred _loop0_112
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022932 if (p->error_indicator) {
22933 D(p->level--);
22934 return NULL;
22935 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022936 D(fprintf(stderr, "%*c> _gather_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_112"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022937 KeywordOrStarred* elem;
22938 asdl_seq * seq;
22939 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022940 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022941 &&
Pablo Galindo4a97b152020-09-02 17:44:19 +010022942 (seq = _loop0_112_rule(p)) // _loop0_112
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022943 )
22944 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022945 D(fprintf(stderr, "%*c+ _gather_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_112"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022946 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22947 goto done;
22948 }
22949 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022950 D(fprintf(stderr, "%*c%s _gather_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022951 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_112"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022952 }
22953 _res = NULL;
22954 done:
22955 D(p->level--);
22956 return _res;
22957}
22958
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022959// _loop0_114: ',' kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022960static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010022961_loop0_114_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022962{
22963 D(p->level++);
22964 if (p->error_indicator) {
22965 D(p->level--);
22966 return NULL;
22967 }
22968 void *_res = NULL;
22969 int _mark = p->mark;
22970 int _start_mark = p->mark;
22971 void **_children = PyMem_Malloc(sizeof(void *));
22972 if (!_children) {
22973 p->error_indicator = 1;
22974 PyErr_NoMemory();
22975 D(p->level--);
22976 return NULL;
22977 }
22978 ssize_t _children_capacity = 1;
22979 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022980 { // ',' kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022981 if (p->error_indicator) {
22982 D(p->level--);
22983 return NULL;
22984 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022985 D(fprintf(stderr, "%*c> _loop0_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022986 Token * _literal;
22987 KeywordOrStarred* elem;
22988 while (
22989 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22990 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022991 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022992 )
22993 {
22994 _res = elem;
22995 if (_res == NULL && PyErr_Occurred()) {
22996 p->error_indicator = 1;
22997 PyMem_Free(_children);
22998 D(p->level--);
22999 return NULL;
23000 }
23001 if (_n == _children_capacity) {
23002 _children_capacity *= 2;
23003 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23004 if (!_new_children) {
23005 p->error_indicator = 1;
23006 PyErr_NoMemory();
23007 D(p->level--);
23008 return NULL;
23009 }
23010 _children = _new_children;
23011 }
23012 _children[_n++] = _res;
23013 _mark = p->mark;
23014 }
23015 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010023016 D(fprintf(stderr, "%*c%s _loop0_114[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023017 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023018 }
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);
Pablo Galindo4a97b152020-09-02 17:44:19 +010023029 _PyPegen_insert_memo(p, _start_mark, _loop0_114_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023030 D(p->level--);
23031 return _seq;
23032}
23033
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023034// _gather_113: kwarg_or_starred _loop0_114
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023035static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010023036_gather_113_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 asdl_seq * _res = NULL;
23044 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023045 { // kwarg_or_starred _loop0_114
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023046 if (p->error_indicator) {
23047 D(p->level--);
23048 return NULL;
23049 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023050 D(fprintf(stderr, "%*c> _gather_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_114"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023051 KeywordOrStarred* elem;
23052 asdl_seq * seq;
23053 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023054 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023055 &&
Pablo Galindo4a97b152020-09-02 17:44:19 +010023056 (seq = _loop0_114_rule(p)) // _loop0_114
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023057 )
23058 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023059 D(fprintf(stderr, "%*c+ _gather_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_114"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023060 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23061 goto done;
23062 }
23063 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010023064 D(fprintf(stderr, "%*c%s _gather_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023065 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_114"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023066 }
23067 _res = NULL;
23068 done:
23069 D(p->level--);
23070 return _res;
23071}
23072
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023073// _loop0_116: ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023074static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010023075_loop0_116_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023076{
23077 D(p->level++);
23078 if (p->error_indicator) {
23079 D(p->level--);
23080 return NULL;
23081 }
23082 void *_res = NULL;
23083 int _mark = p->mark;
23084 int _start_mark = p->mark;
23085 void **_children = PyMem_Malloc(sizeof(void *));
23086 if (!_children) {
23087 p->error_indicator = 1;
23088 PyErr_NoMemory();
23089 D(p->level--);
23090 return NULL;
23091 }
23092 ssize_t _children_capacity = 1;
23093 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023094 { // ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023095 if (p->error_indicator) {
23096 D(p->level--);
23097 return NULL;
23098 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023099 D(fprintf(stderr, "%*c> _loop0_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023100 Token * _literal;
23101 KeywordOrStarred* elem;
23102 while (
23103 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23104 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023105 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023106 )
23107 {
23108 _res = elem;
23109 if (_res == NULL && PyErr_Occurred()) {
23110 p->error_indicator = 1;
23111 PyMem_Free(_children);
23112 D(p->level--);
23113 return NULL;
23114 }
23115 if (_n == _children_capacity) {
23116 _children_capacity *= 2;
23117 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23118 if (!_new_children) {
23119 p->error_indicator = 1;
23120 PyErr_NoMemory();
23121 D(p->level--);
23122 return NULL;
23123 }
23124 _children = _new_children;
23125 }
23126 _children[_n++] = _res;
23127 _mark = p->mark;
23128 }
23129 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010023130 D(fprintf(stderr, "%*c%s _loop0_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023131 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023132 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023133 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023134 if (!_seq) {
23135 PyMem_Free(_children);
23136 p->error_indicator = 1;
23137 PyErr_NoMemory();
23138 D(p->level--);
23139 return NULL;
23140 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023141 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023142 PyMem_Free(_children);
Pablo Galindo4a97b152020-09-02 17:44:19 +010023143 _PyPegen_insert_memo(p, _start_mark, _loop0_116_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023144 D(p->level--);
23145 return _seq;
23146}
23147
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023148// _gather_115: kwarg_or_double_starred _loop0_116
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023149static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010023150_gather_115_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023151{
23152 D(p->level++);
23153 if (p->error_indicator) {
23154 D(p->level--);
23155 return NULL;
23156 }
23157 asdl_seq * _res = NULL;
23158 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023159 { // kwarg_or_double_starred _loop0_116
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023160 if (p->error_indicator) {
23161 D(p->level--);
23162 return NULL;
23163 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023164 D(fprintf(stderr, "%*c> _gather_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_116"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023165 KeywordOrStarred* elem;
23166 asdl_seq * seq;
23167 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023168 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023169 &&
Pablo Galindo4a97b152020-09-02 17:44:19 +010023170 (seq = _loop0_116_rule(p)) // _loop0_116
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023171 )
23172 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023173 D(fprintf(stderr, "%*c+ _gather_115[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_116"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023174 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23175 goto done;
23176 }
23177 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010023178 D(fprintf(stderr, "%*c%s _gather_115[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023179 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_116"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023180 }
23181 _res = NULL;
23182 done:
23183 D(p->level--);
23184 return _res;
23185}
23186
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023187// _loop0_117: (',' star_target)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023188static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023189_loop0_117_rule(Parser *p)
Pablo Galindo4a97b152020-09-02 17:44:19 +010023190{
23191 D(p->level++);
23192 if (p->error_indicator) {
23193 D(p->level--);
23194 return NULL;
23195 }
23196 void *_res = NULL;
23197 int _mark = p->mark;
23198 int _start_mark = p->mark;
23199 void **_children = PyMem_Malloc(sizeof(void *));
23200 if (!_children) {
23201 p->error_indicator = 1;
23202 PyErr_NoMemory();
23203 D(p->level--);
23204 return NULL;
23205 }
23206 ssize_t _children_capacity = 1;
23207 ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023208 { // (',' star_target)
23209 if (p->error_indicator) {
23210 D(p->level--);
23211 return NULL;
23212 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023213 D(fprintf(stderr, "%*c> _loop0_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000023214 void *_tmp_157_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023215 while (
Pablo Galindo206cbda2021-02-07 18:42:21 +000023216 (_tmp_157_var = _tmp_157_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023217 )
23218 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000023219 _res = _tmp_157_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023220 if (_n == _children_capacity) {
23221 _children_capacity *= 2;
23222 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23223 if (!_new_children) {
23224 p->error_indicator = 1;
23225 PyErr_NoMemory();
23226 D(p->level--);
23227 return NULL;
23228 }
23229 _children = _new_children;
23230 }
23231 _children[_n++] = _res;
23232 _mark = p->mark;
23233 }
23234 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023235 D(fprintf(stderr, "%*c%s _loop0_117[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023236 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
23237 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023238 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023239 if (!_seq) {
23240 PyMem_Free(_children);
23241 p->error_indicator = 1;
23242 PyErr_NoMemory();
23243 D(p->level--);
23244 return NULL;
23245 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023246 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023247 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023248 _PyPegen_insert_memo(p, _start_mark, _loop0_117_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023249 D(p->level--);
23250 return _seq;
23251}
23252
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023253// _loop0_119: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023254static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023255_loop0_119_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023256{
23257 D(p->level++);
23258 if (p->error_indicator) {
23259 D(p->level--);
23260 return NULL;
23261 }
23262 void *_res = NULL;
23263 int _mark = p->mark;
23264 int _start_mark = p->mark;
23265 void **_children = PyMem_Malloc(sizeof(void *));
23266 if (!_children) {
23267 p->error_indicator = 1;
23268 PyErr_NoMemory();
23269 D(p->level--);
23270 return NULL;
23271 }
23272 ssize_t _children_capacity = 1;
23273 ssize_t _n = 0;
23274 { // ',' star_target
23275 if (p->error_indicator) {
23276 D(p->level--);
23277 return NULL;
23278 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023279 D(fprintf(stderr, "%*c> _loop0_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023280 Token * _literal;
23281 expr_ty elem;
23282 while (
23283 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23284 &&
23285 (elem = star_target_rule(p)) // star_target
23286 )
23287 {
23288 _res = elem;
23289 if (_res == NULL && PyErr_Occurred()) {
23290 p->error_indicator = 1;
23291 PyMem_Free(_children);
23292 D(p->level--);
23293 return NULL;
23294 }
23295 if (_n == _children_capacity) {
23296 _children_capacity *= 2;
23297 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23298 if (!_new_children) {
23299 p->error_indicator = 1;
23300 PyErr_NoMemory();
23301 D(p->level--);
23302 return NULL;
23303 }
23304 _children = _new_children;
23305 }
23306 _children[_n++] = _res;
23307 _mark = p->mark;
23308 }
23309 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023310 D(fprintf(stderr, "%*c%s _loop0_119[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023311 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
23312 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023313 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023314 if (!_seq) {
23315 PyMem_Free(_children);
23316 p->error_indicator = 1;
23317 PyErr_NoMemory();
23318 D(p->level--);
23319 return NULL;
23320 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023321 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023322 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023323 _PyPegen_insert_memo(p, _start_mark, _loop0_119_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023324 D(p->level--);
23325 return _seq;
23326}
23327
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023328// _gather_118: star_target _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023329static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023330_gather_118_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023331{
23332 D(p->level++);
23333 if (p->error_indicator) {
23334 D(p->level--);
23335 return NULL;
23336 }
23337 asdl_seq * _res = NULL;
23338 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023339 { // star_target _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023340 if (p->error_indicator) {
23341 D(p->level--);
23342 return NULL;
23343 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023344 D(fprintf(stderr, "%*c> _gather_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_119"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023345 expr_ty elem;
23346 asdl_seq * seq;
23347 if (
23348 (elem = star_target_rule(p)) // star_target
23349 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023350 (seq = _loop0_119_rule(p)) // _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023351 )
23352 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023353 D(fprintf(stderr, "%*c+ _gather_118[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_119"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023354 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23355 goto done;
23356 }
23357 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023358 D(fprintf(stderr, "%*c%s _gather_118[%d-%d]: %s failed!\n", p->level, ' ',
23359 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_119"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023360 }
23361 _res = NULL;
23362 done:
23363 D(p->level--);
23364 return _res;
23365}
23366
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023367// _loop1_120: (',' star_target)
23368static asdl_seq *
23369_loop1_120_rule(Parser *p)
23370{
23371 D(p->level++);
23372 if (p->error_indicator) {
23373 D(p->level--);
23374 return NULL;
23375 }
23376 void *_res = NULL;
23377 int _mark = p->mark;
23378 int _start_mark = p->mark;
23379 void **_children = PyMem_Malloc(sizeof(void *));
23380 if (!_children) {
23381 p->error_indicator = 1;
23382 PyErr_NoMemory();
23383 D(p->level--);
23384 return NULL;
23385 }
23386 ssize_t _children_capacity = 1;
23387 ssize_t _n = 0;
23388 { // (',' star_target)
23389 if (p->error_indicator) {
23390 D(p->level--);
23391 return NULL;
23392 }
23393 D(fprintf(stderr, "%*c> _loop1_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000023394 void *_tmp_158_var;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023395 while (
Pablo Galindo206cbda2021-02-07 18:42:21 +000023396 (_tmp_158_var = _tmp_158_rule(p)) // ',' star_target
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023397 )
23398 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000023399 _res = _tmp_158_var;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023400 if (_n == _children_capacity) {
23401 _children_capacity *= 2;
23402 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23403 if (!_new_children) {
23404 p->error_indicator = 1;
23405 PyErr_NoMemory();
23406 D(p->level--);
23407 return NULL;
23408 }
23409 _children = _new_children;
23410 }
23411 _children[_n++] = _res;
23412 _mark = p->mark;
23413 }
23414 p->mark = _mark;
23415 D(fprintf(stderr, "%*c%s _loop1_120[%d-%d]: %s failed!\n", p->level, ' ',
23416 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
23417 }
23418 if (_n == 0 || p->error_indicator) {
23419 PyMem_Free(_children);
23420 D(p->level--);
23421 return NULL;
23422 }
23423 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23424 if (!_seq) {
23425 PyMem_Free(_children);
23426 p->error_indicator = 1;
23427 PyErr_NoMemory();
23428 D(p->level--);
23429 return NULL;
23430 }
23431 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23432 PyMem_Free(_children);
23433 _PyPegen_insert_memo(p, _start_mark, _loop1_120_type, _seq);
23434 D(p->level--);
23435 return _seq;
23436}
23437
23438// _tmp_121: !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023439static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023440_tmp_121_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023441{
23442 D(p->level++);
23443 if (p->error_indicator) {
23444 D(p->level--);
23445 return NULL;
23446 }
23447 void * _res = NULL;
23448 int _mark = p->mark;
23449 { // !'*' star_target
23450 if (p->error_indicator) {
23451 D(p->level--);
23452 return NULL;
23453 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023454 D(fprintf(stderr, "%*c> _tmp_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023455 expr_ty star_target_var;
23456 if (
23457 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
23458 &&
23459 (star_target_var = star_target_rule(p)) // star_target
23460 )
23461 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023462 D(fprintf(stderr, "%*c+ _tmp_121[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023463 _res = star_target_var;
23464 goto done;
23465 }
23466 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023467 D(fprintf(stderr, "%*c%s _tmp_121[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023468 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
23469 }
23470 _res = NULL;
23471 done:
23472 D(p->level--);
23473 return _res;
23474}
23475
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023476// _loop0_123: ',' del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023477static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023478_loop0_123_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023479{
23480 D(p->level++);
23481 if (p->error_indicator) {
23482 D(p->level--);
23483 return NULL;
23484 }
23485 void *_res = NULL;
23486 int _mark = p->mark;
23487 int _start_mark = p->mark;
23488 void **_children = PyMem_Malloc(sizeof(void *));
23489 if (!_children) {
23490 p->error_indicator = 1;
23491 PyErr_NoMemory();
23492 D(p->level--);
23493 return NULL;
23494 }
23495 ssize_t _children_capacity = 1;
23496 ssize_t _n = 0;
23497 { // ',' del_target
23498 if (p->error_indicator) {
23499 D(p->level--);
23500 return NULL;
23501 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023502 D(fprintf(stderr, "%*c> _loop0_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023503 Token * _literal;
23504 expr_ty elem;
23505 while (
23506 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23507 &&
23508 (elem = del_target_rule(p)) // del_target
23509 )
23510 {
23511 _res = elem;
23512 if (_res == NULL && PyErr_Occurred()) {
23513 p->error_indicator = 1;
23514 PyMem_Free(_children);
23515 D(p->level--);
23516 return NULL;
23517 }
23518 if (_n == _children_capacity) {
23519 _children_capacity *= 2;
23520 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23521 if (!_new_children) {
23522 p->error_indicator = 1;
23523 PyErr_NoMemory();
23524 D(p->level--);
23525 return NULL;
23526 }
23527 _children = _new_children;
23528 }
23529 _children[_n++] = _res;
23530 _mark = p->mark;
23531 }
23532 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023533 D(fprintf(stderr, "%*c%s _loop0_123[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023534 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
23535 }
23536 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23537 if (!_seq) {
23538 PyMem_Free(_children);
23539 p->error_indicator = 1;
23540 PyErr_NoMemory();
23541 D(p->level--);
23542 return NULL;
23543 }
23544 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23545 PyMem_Free(_children);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023546 _PyPegen_insert_memo(p, _start_mark, _loop0_123_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023547 D(p->level--);
23548 return _seq;
23549}
23550
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023551// _gather_122: del_target _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023552static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023553_gather_122_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023554{
23555 D(p->level++);
23556 if (p->error_indicator) {
23557 D(p->level--);
23558 return NULL;
23559 }
23560 asdl_seq * _res = NULL;
23561 int _mark = p->mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023562 { // del_target _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023563 if (p->error_indicator) {
23564 D(p->level--);
23565 return NULL;
23566 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023567 D(fprintf(stderr, "%*c> _gather_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_123"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023568 expr_ty elem;
23569 asdl_seq * seq;
23570 if (
23571 (elem = del_target_rule(p)) // del_target
23572 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023573 (seq = _loop0_123_rule(p)) // _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023574 )
23575 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023576 D(fprintf(stderr, "%*c+ _gather_122[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_123"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023577 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23578 goto done;
23579 }
23580 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023581 D(fprintf(stderr, "%*c%s _gather_122[%d-%d]: %s failed!\n", p->level, ' ',
23582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_123"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023583 }
23584 _res = NULL;
23585 done:
23586 D(p->level--);
23587 return _res;
23588}
23589
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023590// _loop0_125: ',' target
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023591static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023592_loop0_125_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023593{
23594 D(p->level++);
23595 if (p->error_indicator) {
23596 D(p->level--);
23597 return NULL;
23598 }
23599 void *_res = NULL;
23600 int _mark = p->mark;
23601 int _start_mark = p->mark;
23602 void **_children = PyMem_Malloc(sizeof(void *));
23603 if (!_children) {
23604 p->error_indicator = 1;
23605 PyErr_NoMemory();
23606 D(p->level--);
23607 return NULL;
23608 }
23609 ssize_t _children_capacity = 1;
23610 ssize_t _n = 0;
23611 { // ',' target
23612 if (p->error_indicator) {
23613 D(p->level--);
23614 return NULL;
23615 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023616 D(fprintf(stderr, "%*c> _loop0_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' target"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023617 Token * _literal;
23618 expr_ty elem;
23619 while (
23620 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23621 &&
23622 (elem = target_rule(p)) // target
23623 )
23624 {
23625 _res = elem;
23626 if (_res == NULL && PyErr_Occurred()) {
23627 p->error_indicator = 1;
23628 PyMem_Free(_children);
23629 D(p->level--);
23630 return NULL;
23631 }
23632 if (_n == _children_capacity) {
23633 _children_capacity *= 2;
23634 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23635 if (!_new_children) {
23636 p->error_indicator = 1;
23637 PyErr_NoMemory();
23638 D(p->level--);
23639 return NULL;
23640 }
23641 _children = _new_children;
23642 }
23643 _children[_n++] = _res;
23644 _mark = p->mark;
23645 }
23646 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023647 D(fprintf(stderr, "%*c%s _loop0_125[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023648 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023649 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023650 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023651 if (!_seq) {
23652 PyMem_Free(_children);
23653 p->error_indicator = 1;
23654 PyErr_NoMemory();
23655 D(p->level--);
23656 return NULL;
23657 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023658 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023659 PyMem_Free(_children);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023660 _PyPegen_insert_memo(p, _start_mark, _loop0_125_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023661 D(p->level--);
23662 return _seq;
23663}
23664
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023665// _gather_124: target _loop0_125
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023666static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023667_gather_124_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023668{
23669 D(p->level++);
23670 if (p->error_indicator) {
23671 D(p->level--);
23672 return NULL;
23673 }
23674 asdl_seq * _res = NULL;
23675 int _mark = p->mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023676 { // target _loop0_125
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023677 if (p->error_indicator) {
23678 D(p->level--);
23679 return NULL;
23680 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023681 D(fprintf(stderr, "%*c> _gather_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target _loop0_125"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023682 expr_ty elem;
23683 asdl_seq * seq;
23684 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023685 (elem = target_rule(p)) // target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023686 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023687 (seq = _loop0_125_rule(p)) // _loop0_125
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023688 )
23689 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023690 D(fprintf(stderr, "%*c+ _gather_124[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target _loop0_125"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023691 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23692 goto done;
23693 }
23694 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023695 D(fprintf(stderr, "%*c%s _gather_124[%d-%d]: %s failed!\n", p->level, ' ',
23696 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target _loop0_125"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023697 }
23698 _res = NULL;
23699 done:
23700 D(p->level--);
23701 return _res;
23702}
23703
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023704// _tmp_126: args | expression for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023705static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023706_tmp_126_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023707{
23708 D(p->level++);
23709 if (p->error_indicator) {
23710 D(p->level--);
23711 return NULL;
23712 }
23713 void * _res = NULL;
23714 int _mark = p->mark;
23715 { // args
23716 if (p->error_indicator) {
23717 D(p->level--);
23718 return NULL;
23719 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023720 D(fprintf(stderr, "%*c> _tmp_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023721 expr_ty args_var;
23722 if (
23723 (args_var = args_rule(p)) // args
23724 )
23725 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023726 D(fprintf(stderr, "%*c+ _tmp_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023727 _res = args_var;
23728 goto done;
23729 }
23730 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023731 D(fprintf(stderr, "%*c%s _tmp_126[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023732 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
23733 }
23734 { // expression for_if_clauses
23735 if (p->error_indicator) {
23736 D(p->level--);
23737 return NULL;
23738 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023739 D(fprintf(stderr, "%*c> _tmp_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023740 expr_ty expression_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010023741 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023742 if (
23743 (expression_var = expression_rule(p)) // expression
23744 &&
23745 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
23746 )
23747 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023748 D(fprintf(stderr, "%*c+ _tmp_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023749 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
23750 goto done;
23751 }
23752 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023753 D(fprintf(stderr, "%*c%s _tmp_126[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023754 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
23755 }
23756 _res = NULL;
23757 done:
23758 D(p->level--);
23759 return _res;
23760}
23761
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023762// _loop0_127: star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023763static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023764_loop0_127_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023765{
23766 D(p->level++);
23767 if (p->error_indicator) {
23768 D(p->level--);
23769 return NULL;
23770 }
23771 void *_res = NULL;
23772 int _mark = p->mark;
23773 int _start_mark = p->mark;
23774 void **_children = PyMem_Malloc(sizeof(void *));
23775 if (!_children) {
23776 p->error_indicator = 1;
23777 PyErr_NoMemory();
23778 D(p->level--);
23779 return NULL;
23780 }
23781 ssize_t _children_capacity = 1;
23782 ssize_t _n = 0;
23783 { // star_named_expressions
23784 if (p->error_indicator) {
23785 D(p->level--);
23786 return NULL;
23787 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023788 D(fprintf(stderr, "%*c> _loop0_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010023789 asdl_expr_seq* star_named_expressions_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023790 while (
23791 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
23792 )
23793 {
23794 _res = star_named_expressions_var;
23795 if (_n == _children_capacity) {
23796 _children_capacity *= 2;
23797 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23798 if (!_new_children) {
23799 p->error_indicator = 1;
23800 PyErr_NoMemory();
23801 D(p->level--);
23802 return NULL;
23803 }
23804 _children = _new_children;
23805 }
23806 _children[_n++] = _res;
23807 _mark = p->mark;
23808 }
23809 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023810 D(fprintf(stderr, "%*c%s _loop0_127[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023811 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023812 }
23813 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23814 if (!_seq) {
23815 PyMem_Free(_children);
23816 p->error_indicator = 1;
23817 PyErr_NoMemory();
23818 D(p->level--);
23819 return NULL;
23820 }
23821 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23822 PyMem_Free(_children);
23823 _PyPegen_insert_memo(p, _start_mark, _loop0_127_type, _seq);
23824 D(p->level--);
23825 return _seq;
23826}
23827
23828// _loop0_128: (star_targets '=')
23829static asdl_seq *
23830_loop0_128_rule(Parser *p)
23831{
23832 D(p->level++);
23833 if (p->error_indicator) {
23834 D(p->level--);
23835 return NULL;
23836 }
23837 void *_res = NULL;
23838 int _mark = p->mark;
23839 int _start_mark = p->mark;
23840 void **_children = PyMem_Malloc(sizeof(void *));
23841 if (!_children) {
23842 p->error_indicator = 1;
23843 PyErr_NoMemory();
23844 D(p->level--);
23845 return NULL;
23846 }
23847 ssize_t _children_capacity = 1;
23848 ssize_t _n = 0;
23849 { // (star_targets '=')
23850 if (p->error_indicator) {
23851 D(p->level--);
23852 return NULL;
23853 }
23854 D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000023855 void *_tmp_159_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023856 while (
Pablo Galindo206cbda2021-02-07 18:42:21 +000023857 (_tmp_159_var = _tmp_159_rule(p)) // star_targets '='
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023858 )
23859 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000023860 _res = _tmp_159_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023861 if (_n == _children_capacity) {
23862 _children_capacity *= 2;
23863 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23864 if (!_new_children) {
23865 p->error_indicator = 1;
23866 PyErr_NoMemory();
23867 D(p->level--);
23868 return NULL;
23869 }
23870 _children = _new_children;
23871 }
23872 _children[_n++] = _res;
23873 _mark = p->mark;
23874 }
23875 p->mark = _mark;
23876 D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ',
23877 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
23878 }
23879 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23880 if (!_seq) {
23881 PyMem_Free(_children);
23882 p->error_indicator = 1;
23883 PyErr_NoMemory();
23884 D(p->level--);
23885 return NULL;
23886 }
23887 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23888 PyMem_Free(_children);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030023889 _PyPegen_insert_memo(p, _start_mark, _loop0_128_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023890 D(p->level--);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030023891 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023892}
23893
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023894// _loop0_129: (star_targets '=')
23895static asdl_seq *
23896_loop0_129_rule(Parser *p)
23897{
23898 D(p->level++);
23899 if (p->error_indicator) {
23900 D(p->level--);
23901 return NULL;
23902 }
23903 void *_res = NULL;
23904 int _mark = p->mark;
23905 int _start_mark = p->mark;
23906 void **_children = PyMem_Malloc(sizeof(void *));
23907 if (!_children) {
23908 p->error_indicator = 1;
23909 PyErr_NoMemory();
23910 D(p->level--);
23911 return NULL;
23912 }
23913 ssize_t _children_capacity = 1;
23914 ssize_t _n = 0;
23915 { // (star_targets '=')
23916 if (p->error_indicator) {
23917 D(p->level--);
23918 return NULL;
23919 }
23920 D(fprintf(stderr, "%*c> _loop0_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000023921 void *_tmp_160_var;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023922 while (
Pablo Galindo206cbda2021-02-07 18:42:21 +000023923 (_tmp_160_var = _tmp_160_rule(p)) // star_targets '='
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023924 )
23925 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000023926 _res = _tmp_160_var;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023927 if (_n == _children_capacity) {
23928 _children_capacity *= 2;
23929 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23930 if (!_new_children) {
23931 p->error_indicator = 1;
23932 PyErr_NoMemory();
23933 D(p->level--);
23934 return NULL;
23935 }
23936 _children = _new_children;
23937 }
23938 _children[_n++] = _res;
23939 _mark = p->mark;
23940 }
23941 p->mark = _mark;
23942 D(fprintf(stderr, "%*c%s _loop0_129[%d-%d]: %s failed!\n", p->level, ' ',
23943 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
23944 }
23945 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23946 if (!_seq) {
23947 PyMem_Free(_children);
23948 p->error_indicator = 1;
23949 PyErr_NoMemory();
23950 D(p->level--);
23951 return NULL;
23952 }
23953 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23954 PyMem_Free(_children);
23955 _PyPegen_insert_memo(p, _start_mark, _loop0_129_type, _seq);
23956 D(p->level--);
23957 return _seq;
23958}
23959
23960// _tmp_130: yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023961static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023962_tmp_130_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023963{
23964 D(p->level++);
23965 if (p->error_indicator) {
23966 D(p->level--);
23967 return NULL;
23968 }
23969 void * _res = NULL;
23970 int _mark = p->mark;
23971 { // yield_expr
23972 if (p->error_indicator) {
23973 D(p->level--);
23974 return NULL;
23975 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023976 D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023977 expr_ty yield_expr_var;
23978 if (
23979 (yield_expr_var = yield_expr_rule(p)) // yield_expr
23980 )
23981 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023982 D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023983 _res = yield_expr_var;
23984 goto done;
23985 }
23986 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023987 D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023988 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
23989 }
23990 { // star_expressions
23991 if (p->error_indicator) {
23992 D(p->level--);
23993 return NULL;
23994 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023995 D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023996 expr_ty star_expressions_var;
23997 if (
23998 (star_expressions_var = star_expressions_rule(p)) // star_expressions
23999 )
24000 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024001 D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024002 _res = star_expressions_var;
24003 goto done;
24004 }
24005 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024006 D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024007 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
24008 }
24009 _res = NULL;
24010 done:
24011 D(p->level--);
24012 return _res;
24013}
24014
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024015// _tmp_131: '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024016static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024017_tmp_131_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024018{
24019 D(p->level++);
24020 if (p->error_indicator) {
24021 D(p->level--);
24022 return NULL;
24023 }
24024 void * _res = NULL;
24025 int _mark = p->mark;
24026 { // '['
24027 if (p->error_indicator) {
24028 D(p->level--);
24029 return NULL;
24030 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024031 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024032 Token * _literal;
24033 if (
24034 (_literal = _PyPegen_expect_token(p, 9)) // token='['
24035 )
24036 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024037 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024038 _res = _literal;
24039 goto done;
24040 }
24041 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024042 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024043 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
24044 }
24045 { // '('
24046 if (p->error_indicator) {
24047 D(p->level--);
24048 return NULL;
24049 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024050 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024051 Token * _literal;
24052 if (
24053 (_literal = _PyPegen_expect_token(p, 7)) // token='('
24054 )
24055 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024056 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024057 _res = _literal;
24058 goto done;
24059 }
24060 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024061 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
24063 }
24064 { // '{'
24065 if (p->error_indicator) {
24066 D(p->level--);
24067 return NULL;
24068 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024069 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024070 Token * _literal;
24071 if (
24072 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
24073 )
24074 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024075 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024076 _res = _literal;
24077 goto done;
24078 }
24079 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024080 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024081 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
24082 }
24083 _res = NULL;
24084 done:
24085 D(p->level--);
24086 return _res;
24087}
24088
Pablo Galindo835f14f2021-01-31 22:52:56 +000024089// _tmp_132: '[' | '{'
24090static void *
24091_tmp_132_rule(Parser *p)
24092{
24093 D(p->level++);
24094 if (p->error_indicator) {
24095 D(p->level--);
24096 return NULL;
24097 }
24098 void * _res = NULL;
24099 int _mark = p->mark;
24100 { // '['
24101 if (p->error_indicator) {
24102 D(p->level--);
24103 return NULL;
24104 }
24105 D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
24106 Token * _literal;
24107 if (
24108 (_literal = _PyPegen_expect_token(p, 9)) // token='['
24109 )
24110 {
24111 D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
24112 _res = _literal;
24113 goto done;
24114 }
24115 p->mark = _mark;
24116 D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
24117 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
24118 }
24119 { // '{'
24120 if (p->error_indicator) {
24121 D(p->level--);
24122 return NULL;
24123 }
24124 D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
24125 Token * _literal;
24126 if (
24127 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
24128 )
24129 {
24130 D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
24131 _res = _literal;
24132 goto done;
24133 }
24134 p->mark = _mark;
24135 D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
24136 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
24137 }
24138 _res = NULL;
24139 done:
24140 D(p->level--);
24141 return _res;
24142}
24143
24144// _loop0_133: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024145static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000024146_loop0_133_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024147{
24148 D(p->level++);
24149 if (p->error_indicator) {
24150 D(p->level--);
24151 return NULL;
24152 }
24153 void *_res = NULL;
24154 int _mark = p->mark;
24155 int _start_mark = p->mark;
24156 void **_children = PyMem_Malloc(sizeof(void *));
24157 if (!_children) {
24158 p->error_indicator = 1;
24159 PyErr_NoMemory();
24160 D(p->level--);
24161 return NULL;
24162 }
24163 ssize_t _children_capacity = 1;
24164 ssize_t _n = 0;
24165 { // param_no_default
24166 if (p->error_indicator) {
24167 D(p->level--);
24168 return NULL;
24169 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024170 D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024171 arg_ty param_no_default_var;
24172 while (
24173 (param_no_default_var = param_no_default_rule(p)) // param_no_default
24174 )
24175 {
24176 _res = param_no_default_var;
24177 if (_n == _children_capacity) {
24178 _children_capacity *= 2;
24179 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24180 if (!_new_children) {
24181 p->error_indicator = 1;
24182 PyErr_NoMemory();
24183 D(p->level--);
24184 return NULL;
24185 }
24186 _children = _new_children;
24187 }
24188 _children[_n++] = _res;
24189 _mark = p->mark;
24190 }
24191 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024192 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024193 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
24194 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024195 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024196 if (!_seq) {
24197 PyMem_Free(_children);
24198 p->error_indicator = 1;
24199 PyErr_NoMemory();
24200 D(p->level--);
24201 return NULL;
24202 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024203 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024204 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000024205 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024206 D(p->level--);
24207 return _seq;
24208}
24209
Pablo Galindo835f14f2021-01-31 22:52:56 +000024210// _loop1_134: param_with_default
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024211static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000024212_loop1_134_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024213{
24214 D(p->level++);
24215 if (p->error_indicator) {
24216 D(p->level--);
24217 return NULL;
24218 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024219 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024220 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024221 int _start_mark = p->mark;
24222 void **_children = PyMem_Malloc(sizeof(void *));
24223 if (!_children) {
24224 p->error_indicator = 1;
24225 PyErr_NoMemory();
24226 D(p->level--);
24227 return NULL;
24228 }
24229 ssize_t _children_capacity = 1;
24230 ssize_t _n = 0;
24231 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024232 if (p->error_indicator) {
24233 D(p->level--);
24234 return NULL;
24235 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024236 D(fprintf(stderr, "%*c> _loop1_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024237 NameDefaultPair* param_with_default_var;
24238 while (
24239 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024240 )
24241 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024242 _res = param_with_default_var;
24243 if (_n == _children_capacity) {
24244 _children_capacity *= 2;
24245 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24246 if (!_new_children) {
24247 p->error_indicator = 1;
24248 PyErr_NoMemory();
24249 D(p->level--);
24250 return NULL;
24251 }
24252 _children = _new_children;
24253 }
24254 _children[_n++] = _res;
24255 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024256 }
24257 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024258 D(fprintf(stderr, "%*c%s _loop1_134[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024259 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024260 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024261 if (_n == 0 || p->error_indicator) {
24262 PyMem_Free(_children);
24263 D(p->level--);
24264 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024265 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024266 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24267 if (!_seq) {
24268 PyMem_Free(_children);
24269 p->error_indicator = 1;
24270 PyErr_NoMemory();
24271 D(p->level--);
24272 return NULL;
24273 }
24274 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24275 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000024276 _PyPegen_insert_memo(p, _start_mark, _loop1_134_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024277 D(p->level--);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024278 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024279}
24280
Pablo Galindo835f14f2021-01-31 22:52:56 +000024281// _loop0_135: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024282static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000024283_loop0_135_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024284{
24285 D(p->level++);
24286 if (p->error_indicator) {
24287 D(p->level--);
24288 return NULL;
24289 }
24290 void *_res = NULL;
24291 int _mark = p->mark;
24292 int _start_mark = p->mark;
24293 void **_children = PyMem_Malloc(sizeof(void *));
24294 if (!_children) {
24295 p->error_indicator = 1;
24296 PyErr_NoMemory();
24297 D(p->level--);
24298 return NULL;
24299 }
24300 ssize_t _children_capacity = 1;
24301 ssize_t _n = 0;
24302 { // lambda_param_no_default
24303 if (p->error_indicator) {
24304 D(p->level--);
24305 return NULL;
24306 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024307 D(fprintf(stderr, "%*c> _loop0_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024308 arg_ty lambda_param_no_default_var;
24309 while (
24310 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
24311 )
24312 {
24313 _res = lambda_param_no_default_var;
24314 if (_n == _children_capacity) {
24315 _children_capacity *= 2;
24316 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24317 if (!_new_children) {
24318 p->error_indicator = 1;
24319 PyErr_NoMemory();
24320 D(p->level--);
24321 return NULL;
24322 }
24323 _children = _new_children;
24324 }
24325 _children[_n++] = _res;
24326 _mark = p->mark;
24327 }
24328 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024329 D(fprintf(stderr, "%*c%s _loop0_135[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024330 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
24331 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024332 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024333 if (!_seq) {
24334 PyMem_Free(_children);
24335 p->error_indicator = 1;
24336 PyErr_NoMemory();
24337 D(p->level--);
24338 return NULL;
24339 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024340 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024341 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000024342 _PyPegen_insert_memo(p, _start_mark, _loop0_135_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024343 D(p->level--);
24344 return _seq;
24345}
24346
Pablo Galindo835f14f2021-01-31 22:52:56 +000024347// _loop1_136: lambda_param_with_default
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024348static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000024349_loop1_136_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024350{
24351 D(p->level++);
24352 if (p->error_indicator) {
24353 D(p->level--);
24354 return NULL;
24355 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024356 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024357 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024358 int _start_mark = p->mark;
24359 void **_children = PyMem_Malloc(sizeof(void *));
24360 if (!_children) {
24361 p->error_indicator = 1;
24362 PyErr_NoMemory();
24363 D(p->level--);
24364 return NULL;
24365 }
24366 ssize_t _children_capacity = 1;
24367 ssize_t _n = 0;
24368 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024369 if (p->error_indicator) {
24370 D(p->level--);
24371 return NULL;
24372 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024373 D(fprintf(stderr, "%*c> _loop1_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024374 NameDefaultPair* lambda_param_with_default_var;
24375 while (
24376 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024377 )
24378 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024379 _res = lambda_param_with_default_var;
24380 if (_n == _children_capacity) {
24381 _children_capacity *= 2;
24382 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24383 if (!_new_children) {
24384 p->error_indicator = 1;
24385 PyErr_NoMemory();
24386 D(p->level--);
24387 return NULL;
24388 }
24389 _children = _new_children;
24390 }
24391 _children[_n++] = _res;
24392 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024393 }
24394 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024395 D(fprintf(stderr, "%*c%s _loop1_136[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024397 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024398 if (_n == 0 || p->error_indicator) {
24399 PyMem_Free(_children);
24400 D(p->level--);
24401 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024402 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024403 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24404 if (!_seq) {
24405 PyMem_Free(_children);
24406 p->error_indicator = 1;
24407 PyErr_NoMemory();
24408 D(p->level--);
24409 return NULL;
24410 }
24411 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24412 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000024413 _PyPegen_insert_memo(p, _start_mark, _loop1_136_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024414 D(p->level--);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024415 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024416}
24417
Pablo Galindo835f14f2021-01-31 22:52:56 +000024418// _tmp_137: ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024419static void *
Pablo Galindo835f14f2021-01-31 22:52:56 +000024420_tmp_137_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024421{
24422 D(p->level++);
24423 if (p->error_indicator) {
24424 D(p->level--);
24425 return NULL;
24426 }
24427 void * _res = NULL;
24428 int _mark = p->mark;
24429 { // ')'
24430 if (p->error_indicator) {
24431 D(p->level--);
24432 return NULL;
24433 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024434 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024435 Token * _literal;
24436 if (
24437 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
24438 )
24439 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000024440 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024441 _res = _literal;
24442 goto done;
24443 }
24444 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024445 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024446 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
24447 }
24448 { // ',' (')' | '**')
24449 if (p->error_indicator) {
24450 D(p->level--);
24451 return NULL;
24452 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024453 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024454 Token * _literal;
Pablo Galindo206cbda2021-02-07 18:42:21 +000024455 void *_tmp_161_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024456 if (
24457 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24458 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +000024459 (_tmp_161_var = _tmp_161_rule(p)) // ')' | '**'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024460 )
24461 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000024462 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000024463 _res = _PyPegen_dummy_name(p, _literal, _tmp_161_var);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024464 goto done;
24465 }
24466 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024467 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024468 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
24469 }
24470 _res = NULL;
24471 done:
24472 D(p->level--);
24473 return _res;
24474}
24475
Pablo Galindo835f14f2021-01-31 22:52:56 +000024476// _tmp_138: ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024477static void *
Pablo Galindo835f14f2021-01-31 22:52:56 +000024478_tmp_138_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024479{
24480 D(p->level++);
24481 if (p->error_indicator) {
24482 D(p->level--);
24483 return NULL;
24484 }
24485 void * _res = NULL;
24486 int _mark = p->mark;
24487 { // ':'
24488 if (p->error_indicator) {
24489 D(p->level--);
24490 return NULL;
24491 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024492 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024493 Token * _literal;
24494 if (
24495 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
24496 )
24497 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000024498 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024499 _res = _literal;
24500 goto done;
24501 }
24502 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024503 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024504 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
24505 }
24506 { // ',' (':' | '**')
24507 if (p->error_indicator) {
24508 D(p->level--);
24509 return NULL;
24510 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024511 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024512 Token * _literal;
Pablo Galindo206cbda2021-02-07 18:42:21 +000024513 void *_tmp_162_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024514 if (
24515 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24516 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +000024517 (_tmp_162_var = _tmp_162_rule(p)) // ':' | '**'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024518 )
24519 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000024520 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000024521 _res = _PyPegen_dummy_name(p, _literal, _tmp_162_var);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024522 goto done;
24523 }
24524 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024525 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024526 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
24527 }
24528 _res = NULL;
24529 done:
24530 D(p->level--);
24531 return _res;
24532}
24533
Pablo Galindo58fb1562021-02-02 19:54:22 +000024534// _tmp_139: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024535static void *
Pablo Galindo835f14f2021-01-31 22:52:56 +000024536_tmp_139_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024537{
24538 D(p->level++);
24539 if (p->error_indicator) {
24540 D(p->level--);
24541 return NULL;
24542 }
24543 void * _res = NULL;
24544 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000024545 { // ','
24546 if (p->error_indicator) {
24547 D(p->level--);
24548 return NULL;
24549 }
24550 D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
24551 Token * _literal;
24552 if (
24553 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24554 )
24555 {
24556 D(fprintf(stderr, "%*c+ _tmp_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
24557 _res = _literal;
24558 goto done;
24559 }
24560 p->mark = _mark;
24561 D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
24562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
24563 }
24564 { // ')'
24565 if (p->error_indicator) {
24566 D(p->level--);
24567 return NULL;
24568 }
24569 D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
24570 Token * _literal;
24571 if (
24572 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
24573 )
24574 {
24575 D(fprintf(stderr, "%*c+ _tmp_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
24576 _res = _literal;
24577 goto done;
24578 }
24579 p->mark = _mark;
24580 D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
24581 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
24582 }
24583 { // ':'
24584 if (p->error_indicator) {
24585 D(p->level--);
24586 return NULL;
24587 }
24588 D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
24589 Token * _literal;
24590 if (
24591 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
24592 )
24593 {
24594 D(fprintf(stderr, "%*c+ _tmp_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
24595 _res = _literal;
24596 goto done;
24597 }
24598 p->mark = _mark;
24599 D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
24600 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
24601 }
24602 _res = NULL;
24603 done:
24604 D(p->level--);
24605 return _res;
24606}
24607
24608// _loop0_141: ',' (expression ['as' star_target])
24609static asdl_seq *
24610_loop0_141_rule(Parser *p)
24611{
24612 D(p->level++);
24613 if (p->error_indicator) {
24614 D(p->level--);
24615 return NULL;
24616 }
24617 void *_res = NULL;
24618 int _mark = p->mark;
24619 int _start_mark = p->mark;
24620 void **_children = PyMem_Malloc(sizeof(void *));
24621 if (!_children) {
24622 p->error_indicator = 1;
24623 PyErr_NoMemory();
24624 D(p->level--);
24625 return NULL;
24626 }
24627 ssize_t _children_capacity = 1;
24628 ssize_t _n = 0;
24629 { // ',' (expression ['as' star_target])
24630 if (p->error_indicator) {
24631 D(p->level--);
24632 return NULL;
24633 }
24634 D(fprintf(stderr, "%*c> _loop0_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
24635 Token * _literal;
24636 void *elem;
24637 while (
24638 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24639 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +000024640 (elem = _tmp_163_rule(p)) // expression ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000024641 )
24642 {
24643 _res = elem;
24644 if (_res == NULL && PyErr_Occurred()) {
24645 p->error_indicator = 1;
24646 PyMem_Free(_children);
24647 D(p->level--);
24648 return NULL;
24649 }
24650 if (_n == _children_capacity) {
24651 _children_capacity *= 2;
24652 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24653 if (!_new_children) {
24654 p->error_indicator = 1;
24655 PyErr_NoMemory();
24656 D(p->level--);
24657 return NULL;
24658 }
24659 _children = _new_children;
24660 }
24661 _children[_n++] = _res;
24662 _mark = p->mark;
24663 }
24664 p->mark = _mark;
24665 D(fprintf(stderr, "%*c%s _loop0_141[%d-%d]: %s failed!\n", p->level, ' ',
24666 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
24667 }
24668 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24669 if (!_seq) {
24670 PyMem_Free(_children);
24671 p->error_indicator = 1;
24672 PyErr_NoMemory();
24673 D(p->level--);
24674 return NULL;
24675 }
24676 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24677 PyMem_Free(_children);
24678 _PyPegen_insert_memo(p, _start_mark, _loop0_141_type, _seq);
24679 D(p->level--);
24680 return _seq;
24681}
24682
24683// _gather_140: (expression ['as' star_target]) _loop0_141
24684static asdl_seq *
24685_gather_140_rule(Parser *p)
24686{
24687 D(p->level++);
24688 if (p->error_indicator) {
24689 D(p->level--);
24690 return NULL;
24691 }
24692 asdl_seq * _res = NULL;
24693 int _mark = p->mark;
24694 { // (expression ['as' star_target]) _loop0_141
24695 if (p->error_indicator) {
24696 D(p->level--);
24697 return NULL;
24698 }
24699 D(fprintf(stderr, "%*c> _gather_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_141"));
24700 void *elem;
24701 asdl_seq * seq;
24702 if (
Pablo Galindo206cbda2021-02-07 18:42:21 +000024703 (elem = _tmp_163_rule(p)) // expression ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000024704 &&
24705 (seq = _loop0_141_rule(p)) // _loop0_141
24706 )
24707 {
24708 D(fprintf(stderr, "%*c+ _gather_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_141"));
24709 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24710 goto done;
24711 }
24712 p->mark = _mark;
24713 D(fprintf(stderr, "%*c%s _gather_140[%d-%d]: %s failed!\n", p->level, ' ',
24714 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_141"));
24715 }
24716 _res = NULL;
24717 done:
24718 D(p->level--);
24719 return _res;
24720}
24721
24722// _loop0_143: ',' (expressions ['as' star_target])
24723static asdl_seq *
24724_loop0_143_rule(Parser *p)
24725{
24726 D(p->level++);
24727 if (p->error_indicator) {
24728 D(p->level--);
24729 return NULL;
24730 }
24731 void *_res = NULL;
24732 int _mark = p->mark;
24733 int _start_mark = p->mark;
24734 void **_children = PyMem_Malloc(sizeof(void *));
24735 if (!_children) {
24736 p->error_indicator = 1;
24737 PyErr_NoMemory();
24738 D(p->level--);
24739 return NULL;
24740 }
24741 ssize_t _children_capacity = 1;
24742 ssize_t _n = 0;
24743 { // ',' (expressions ['as' star_target])
24744 if (p->error_indicator) {
24745 D(p->level--);
24746 return NULL;
24747 }
24748 D(fprintf(stderr, "%*c> _loop0_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
24749 Token * _literal;
24750 void *elem;
24751 while (
24752 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24753 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +000024754 (elem = _tmp_164_rule(p)) // expressions ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000024755 )
24756 {
24757 _res = elem;
24758 if (_res == NULL && PyErr_Occurred()) {
24759 p->error_indicator = 1;
24760 PyMem_Free(_children);
24761 D(p->level--);
24762 return NULL;
24763 }
24764 if (_n == _children_capacity) {
24765 _children_capacity *= 2;
24766 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24767 if (!_new_children) {
24768 p->error_indicator = 1;
24769 PyErr_NoMemory();
24770 D(p->level--);
24771 return NULL;
24772 }
24773 _children = _new_children;
24774 }
24775 _children[_n++] = _res;
24776 _mark = p->mark;
24777 }
24778 p->mark = _mark;
24779 D(fprintf(stderr, "%*c%s _loop0_143[%d-%d]: %s failed!\n", p->level, ' ',
24780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
24781 }
24782 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24783 if (!_seq) {
24784 PyMem_Free(_children);
24785 p->error_indicator = 1;
24786 PyErr_NoMemory();
24787 D(p->level--);
24788 return NULL;
24789 }
24790 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24791 PyMem_Free(_children);
24792 _PyPegen_insert_memo(p, _start_mark, _loop0_143_type, _seq);
24793 D(p->level--);
24794 return _seq;
24795}
24796
24797// _gather_142: (expressions ['as' star_target]) _loop0_143
24798static asdl_seq *
24799_gather_142_rule(Parser *p)
24800{
24801 D(p->level++);
24802 if (p->error_indicator) {
24803 D(p->level--);
24804 return NULL;
24805 }
24806 asdl_seq * _res = NULL;
24807 int _mark = p->mark;
24808 { // (expressions ['as' star_target]) _loop0_143
24809 if (p->error_indicator) {
24810 D(p->level--);
24811 return NULL;
24812 }
24813 D(fprintf(stderr, "%*c> _gather_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_143"));
24814 void *elem;
24815 asdl_seq * seq;
24816 if (
Pablo Galindo206cbda2021-02-07 18:42:21 +000024817 (elem = _tmp_164_rule(p)) // expressions ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000024818 &&
24819 (seq = _loop0_143_rule(p)) // _loop0_143
24820 )
24821 {
24822 D(fprintf(stderr, "%*c+ _gather_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_143"));
24823 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24824 goto done;
24825 }
24826 p->mark = _mark;
24827 D(fprintf(stderr, "%*c%s _gather_142[%d-%d]: %s failed!\n", p->level, ' ',
24828 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_143"));
24829 }
24830 _res = NULL;
24831 done:
24832 D(p->level--);
24833 return _res;
24834}
24835
Pablo Galindo206cbda2021-02-07 18:42:21 +000024836// _tmp_144: 'as' NAME
Pablo Galindo58fb1562021-02-02 19:54:22 +000024837static void *
24838_tmp_144_rule(Parser *p)
24839{
24840 D(p->level++);
24841 if (p->error_indicator) {
24842 D(p->level--);
24843 return NULL;
24844 }
24845 void * _res = NULL;
24846 int _mark = p->mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000024847 { // 'as' NAME
24848 if (p->error_indicator) {
24849 D(p->level--);
24850 return NULL;
24851 }
24852 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
24853 Token * _keyword;
24854 expr_ty name_var;
24855 if (
24856 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
24857 &&
24858 (name_var = _PyPegen_name_token(p)) // NAME
24859 )
24860 {
24861 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
24862 _res = _PyPegen_dummy_name(p, _keyword, name_var);
24863 goto done;
24864 }
24865 p->mark = _mark;
24866 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
24867 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
24868 }
24869 _res = NULL;
24870 done:
24871 D(p->level--);
24872 return _res;
24873}
24874
24875// _tmp_145: 'as' NAME
24876static void *
24877_tmp_145_rule(Parser *p)
24878{
24879 D(p->level++);
24880 if (p->error_indicator) {
24881 D(p->level--);
24882 return NULL;
24883 }
24884 void * _res = NULL;
24885 int _mark = p->mark;
24886 { // 'as' NAME
24887 if (p->error_indicator) {
24888 D(p->level--);
24889 return NULL;
24890 }
24891 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
24892 Token * _keyword;
24893 expr_ty name_var;
24894 if (
24895 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
24896 &&
24897 (name_var = _PyPegen_name_token(p)) // NAME
24898 )
24899 {
24900 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
24901 _res = _PyPegen_dummy_name(p, _keyword, name_var);
24902 goto done;
24903 }
24904 p->mark = _mark;
24905 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
24906 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
24907 }
24908 _res = NULL;
24909 done:
24910 D(p->level--);
24911 return _res;
24912}
24913
24914// _tmp_146: star_targets '='
24915static void *
24916_tmp_146_rule(Parser *p)
24917{
24918 D(p->level++);
24919 if (p->error_indicator) {
24920 D(p->level--);
24921 return NULL;
24922 }
24923 void * _res = NULL;
24924 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024925 { // star_targets '='
24926 if (p->error_indicator) {
24927 D(p->level--);
24928 return NULL;
24929 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000024930 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024931 Token * _literal;
24932 expr_ty z;
24933 if (
24934 (z = star_targets_rule(p)) // star_targets
24935 &&
24936 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24937 )
24938 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000024939 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024940 _res = z;
24941 if (_res == NULL && PyErr_Occurred()) {
24942 p->error_indicator = 1;
24943 D(p->level--);
24944 return NULL;
24945 }
24946 goto done;
24947 }
24948 p->mark = _mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000024949 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024950 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
24951 }
24952 _res = NULL;
24953 done:
24954 D(p->level--);
24955 return _res;
24956}
24957
Pablo Galindo206cbda2021-02-07 18:42:21 +000024958// _tmp_147: '.' | '...'
Pablo Galindo835f14f2021-01-31 22:52:56 +000024959static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000024960_tmp_147_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000024961{
24962 D(p->level++);
24963 if (p->error_indicator) {
24964 D(p->level--);
24965 return NULL;
24966 }
24967 void * _res = NULL;
24968 int _mark = p->mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000024969 { // '.'
24970 if (p->error_indicator) {
24971 D(p->level--);
24972 return NULL;
24973 }
24974 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24975 Token * _literal;
24976 if (
24977 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24978 )
24979 {
24980 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24981 _res = _literal;
24982 goto done;
24983 }
24984 p->mark = _mark;
24985 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
24986 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24987 }
24988 { // '...'
24989 if (p->error_indicator) {
24990 D(p->level--);
24991 return NULL;
24992 }
24993 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
24994 Token * _literal;
24995 if (
24996 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
24997 )
24998 {
24999 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
25000 _res = _literal;
25001 goto done;
25002 }
25003 p->mark = _mark;
25004 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
25005 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
25006 }
25007 _res = NULL;
25008 done:
25009 D(p->level--);
25010 return _res;
25011}
25012
25013// _tmp_148: '.' | '...'
25014static void *
25015_tmp_148_rule(Parser *p)
25016{
25017 D(p->level++);
25018 if (p->error_indicator) {
25019 D(p->level--);
25020 return NULL;
25021 }
25022 void * _res = NULL;
25023 int _mark = p->mark;
25024 { // '.'
25025 if (p->error_indicator) {
25026 D(p->level--);
25027 return NULL;
25028 }
25029 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
25030 Token * _literal;
25031 if (
25032 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
25033 )
25034 {
25035 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
25036 _res = _literal;
25037 goto done;
25038 }
25039 p->mark = _mark;
25040 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
25041 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
25042 }
25043 { // '...'
25044 if (p->error_indicator) {
25045 D(p->level--);
25046 return NULL;
25047 }
25048 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
25049 Token * _literal;
25050 if (
25051 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
25052 )
25053 {
25054 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
25055 _res = _literal;
25056 goto done;
25057 }
25058 p->mark = _mark;
25059 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
25060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
25061 }
25062 _res = NULL;
25063 done:
25064 D(p->level--);
25065 return _res;
25066}
25067
25068// _tmp_149: '@' named_expression NEWLINE
25069static void *
25070_tmp_149_rule(Parser *p)
25071{
25072 D(p->level++);
25073 if (p->error_indicator) {
25074 D(p->level--);
25075 return NULL;
25076 }
25077 void * _res = NULL;
25078 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025079 { // '@' named_expression NEWLINE
25080 if (p->error_indicator) {
25081 D(p->level--);
25082 return NULL;
25083 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000025084 D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025085 Token * _literal;
25086 expr_ty f;
25087 Token * newline_var;
25088 if (
25089 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
25090 &&
25091 (f = named_expression_rule(p)) // named_expression
25092 &&
25093 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
25094 )
25095 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000025096 D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025097 _res = f;
25098 if (_res == NULL && PyErr_Occurred()) {
25099 p->error_indicator = 1;
25100 D(p->level--);
25101 return NULL;
25102 }
25103 goto done;
25104 }
25105 p->mark = _mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000025106 D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025107 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
25108 }
25109 _res = NULL;
25110 done:
25111 D(p->level--);
25112 return _res;
25113}
25114
Pablo Galindo206cbda2021-02-07 18:42:21 +000025115// _tmp_150: ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025116static void *
Pablo Galindo206cbda2021-02-07 18:42:21 +000025117_tmp_150_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025118{
25119 D(p->level++);
25120 if (p->error_indicator) {
25121 D(p->level--);
25122 return NULL;
25123 }
25124 void * _res = NULL;
25125 int _mark = p->mark;
25126 { // ',' star_expression
25127 if (p->error_indicator) {
25128 D(p->level--);
25129 return NULL;
25130 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000025131 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025132 Token * _literal;
25133 expr_ty c;
25134 if (
25135 (_literal = _PyPegen_expect_token(p, 12)) // token=','
25136 &&
25137 (c = star_expression_rule(p)) // star_expression
25138 )
25139 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000025140 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025141 _res = c;
25142 if (_res == NULL && PyErr_Occurred()) {
25143 p->error_indicator = 1;
25144 D(p->level--);
25145 return NULL;
25146 }
25147 goto done;
25148 }
25149 p->mark = _mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000025150 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025151 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
25152 }
25153 _res = NULL;
25154 done:
25155 D(p->level--);
25156 return _res;
25157}
25158
Pablo Galindo206cbda2021-02-07 18:42:21 +000025159// _tmp_151: ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025160static void *
Pablo Galindo206cbda2021-02-07 18:42:21 +000025161_tmp_151_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025162{
25163 D(p->level++);
25164 if (p->error_indicator) {
25165 D(p->level--);
25166 return NULL;
25167 }
25168 void * _res = NULL;
25169 int _mark = p->mark;
25170 { // ',' expression
25171 if (p->error_indicator) {
25172 D(p->level--);
25173 return NULL;
25174 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000025175 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025176 Token * _literal;
25177 expr_ty c;
25178 if (
25179 (_literal = _PyPegen_expect_token(p, 12)) // token=','
25180 &&
25181 (c = expression_rule(p)) // expression
25182 )
25183 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000025184 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025185 _res = c;
25186 if (_res == NULL && PyErr_Occurred()) {
25187 p->error_indicator = 1;
25188 D(p->level--);
25189 return NULL;
25190 }
25191 goto done;
25192 }
25193 p->mark = _mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000025194 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025195 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
25196 }
25197 _res = NULL;
25198 done:
25199 D(p->level--);
25200 return _res;
25201}
25202
Pablo Galindo206cbda2021-02-07 18:42:21 +000025203// _tmp_152: 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025204static void *
Pablo Galindo206cbda2021-02-07 18:42:21 +000025205_tmp_152_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025206{
25207 D(p->level++);
25208 if (p->error_indicator) {
25209 D(p->level--);
25210 return NULL;
25211 }
25212 void * _res = NULL;
25213 int _mark = p->mark;
25214 { // 'or' conjunction
25215 if (p->error_indicator) {
25216 D(p->level--);
25217 return NULL;
25218 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000025219 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025220 Token * _keyword;
25221 expr_ty c;
25222 if (
25223 (_keyword = _PyPegen_expect_token(p, 531)) // token='or'
25224 &&
25225 (c = conjunction_rule(p)) // conjunction
25226 )
25227 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000025228 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025229 _res = c;
25230 if (_res == NULL && PyErr_Occurred()) {
25231 p->error_indicator = 1;
25232 D(p->level--);
25233 return NULL;
25234 }
25235 goto done;
25236 }
25237 p->mark = _mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000025238 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025239 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
25240 }
25241 _res = NULL;
25242 done:
25243 D(p->level--);
25244 return _res;
25245}
25246
Pablo Galindo206cbda2021-02-07 18:42:21 +000025247// _tmp_153: 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025248static void *
Pablo Galindo206cbda2021-02-07 18:42:21 +000025249_tmp_153_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025250{
25251 D(p->level++);
25252 if (p->error_indicator) {
25253 D(p->level--);
25254 return NULL;
25255 }
25256 void * _res = NULL;
25257 int _mark = p->mark;
25258 { // 'and' inversion
25259 if (p->error_indicator) {
25260 D(p->level--);
25261 return NULL;
25262 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000025263 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025264 Token * _keyword;
25265 expr_ty c;
25266 if (
25267 (_keyword = _PyPegen_expect_token(p, 532)) // token='and'
25268 &&
25269 (c = inversion_rule(p)) // inversion
25270 )
25271 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000025272 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025273 _res = c;
25274 if (_res == NULL && PyErr_Occurred()) {
25275 p->error_indicator = 1;
25276 D(p->level--);
25277 return NULL;
25278 }
25279 goto done;
25280 }
25281 p->mark = _mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000025282 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000025283 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025284 }
25285 _res = NULL;
25286 done:
25287 D(p->level--);
25288 return _res;
25289}
25290
Pablo Galindo206cbda2021-02-07 18:42:21 +000025291// _tmp_154: 'if' disjunction
Pablo Galindo835f14f2021-01-31 22:52:56 +000025292static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000025293_tmp_154_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000025294{
25295 D(p->level++);
25296 if (p->error_indicator) {
25297 D(p->level--);
25298 return NULL;
25299 }
25300 void * _res = NULL;
25301 int _mark = p->mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000025302 { // 'if' disjunction
25303 if (p->error_indicator) {
25304 D(p->level--);
25305 return NULL;
25306 }
25307 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
25308 Token * _keyword;
25309 expr_ty z;
25310 if (
25311 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
25312 &&
25313 (z = disjunction_rule(p)) // disjunction
25314 )
25315 {
25316 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
25317 _res = z;
25318 if (_res == NULL && PyErr_Occurred()) {
25319 p->error_indicator = 1;
25320 D(p->level--);
25321 return NULL;
25322 }
25323 goto done;
25324 }
25325 p->mark = _mark;
25326 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
25327 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
25328 }
25329 _res = NULL;
25330 done:
25331 D(p->level--);
25332 return _res;
25333}
25334
25335// _tmp_155: 'if' disjunction
25336static void *
25337_tmp_155_rule(Parser *p)
25338{
25339 D(p->level++);
25340 if (p->error_indicator) {
25341 D(p->level--);
25342 return NULL;
25343 }
25344 void * _res = NULL;
25345 int _mark = p->mark;
25346 { // 'if' disjunction
25347 if (p->error_indicator) {
25348 D(p->level--);
25349 return NULL;
25350 }
25351 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
25352 Token * _keyword;
25353 expr_ty z;
25354 if (
25355 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
25356 &&
25357 (z = disjunction_rule(p)) // disjunction
25358 )
25359 {
25360 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
25361 _res = z;
25362 if (_res == NULL && PyErr_Occurred()) {
25363 p->error_indicator = 1;
25364 D(p->level--);
25365 return NULL;
25366 }
25367 goto done;
25368 }
25369 p->mark = _mark;
25370 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
25371 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
25372 }
25373 _res = NULL;
25374 done:
25375 D(p->level--);
25376 return _res;
25377}
25378
25379// _tmp_156: starred_expression | named_expression !'='
25380static void *
25381_tmp_156_rule(Parser *p)
25382{
25383 D(p->level++);
25384 if (p->error_indicator) {
25385 D(p->level--);
25386 return NULL;
25387 }
25388 void * _res = NULL;
25389 int _mark = p->mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010025390 { // starred_expression
25391 if (p->error_indicator) {
25392 D(p->level--);
25393 return NULL;
25394 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000025395 D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010025396 expr_ty starred_expression_var;
25397 if (
25398 (starred_expression_var = starred_expression_rule(p)) // starred_expression
25399 )
25400 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000025401 D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010025402 _res = starred_expression_var;
25403 goto done;
25404 }
25405 p->mark = _mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000025406 D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010025407 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
25408 }
25409 { // named_expression !'='
25410 if (p->error_indicator) {
25411 D(p->level--);
25412 return NULL;
25413 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000025414 D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010025415 expr_ty named_expression_var;
25416 if (
25417 (named_expression_var = named_expression_rule(p)) // named_expression
25418 &&
25419 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
25420 )
25421 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000025422 D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010025423 _res = named_expression_var;
25424 goto done;
25425 }
25426 p->mark = _mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000025427 D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000025428 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression !'='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025429 }
25430 _res = NULL;
25431 done:
25432 D(p->level--);
25433 return _res;
25434}
25435
Pablo Galindo206cbda2021-02-07 18:42:21 +000025436// _tmp_157: ',' star_target
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025437static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000025438_tmp_157_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025439{
25440 D(p->level++);
25441 if (p->error_indicator) {
25442 D(p->level--);
25443 return NULL;
25444 }
25445 void * _res = NULL;
25446 int _mark = p->mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000025447 { // ',' star_target
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025448 if (p->error_indicator) {
25449 D(p->level--);
25450 return NULL;
25451 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000025452 D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025453 Token * _literal;
Pablo Galindo206cbda2021-02-07 18:42:21 +000025454 expr_ty c;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025455 if (
Pablo Galindo206cbda2021-02-07 18:42:21 +000025456 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025457 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +000025458 (c = star_target_rule(p)) // star_target
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025459 )
25460 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000025461 D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
25462 _res = c;
25463 if (_res == NULL && PyErr_Occurred()) {
25464 p->error_indicator = 1;
25465 D(p->level--);
25466 return NULL;
25467 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025468 goto done;
25469 }
25470 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000025471 D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000025472 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025473 }
25474 _res = NULL;
25475 done:
25476 D(p->level--);
25477 return _res;
25478}
25479
Pablo Galindo206cbda2021-02-07 18:42:21 +000025480// _tmp_158: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025481static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000025482_tmp_158_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025483{
25484 D(p->level++);
25485 if (p->error_indicator) {
25486 D(p->level--);
25487 return NULL;
25488 }
25489 void * _res = NULL;
25490 int _mark = p->mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000025491 { // ',' star_target
25492 if (p->error_indicator) {
25493 D(p->level--);
25494 return NULL;
25495 }
25496 D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
25497 Token * _literal;
25498 expr_ty c;
25499 if (
25500 (_literal = _PyPegen_expect_token(p, 12)) // token=','
25501 &&
25502 (c = star_target_rule(p)) // star_target
25503 )
25504 {
25505 D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
25506 _res = c;
25507 if (_res == NULL && PyErr_Occurred()) {
25508 p->error_indicator = 1;
25509 D(p->level--);
25510 return NULL;
25511 }
25512 goto done;
25513 }
25514 p->mark = _mark;
25515 D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
25516 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
25517 }
25518 _res = NULL;
25519 done:
25520 D(p->level--);
25521 return _res;
25522}
25523
25524// _tmp_159: star_targets '='
25525static void *
25526_tmp_159_rule(Parser *p)
25527{
25528 D(p->level++);
25529 if (p->error_indicator) {
25530 D(p->level--);
25531 return NULL;
25532 }
25533 void * _res = NULL;
25534 int _mark = p->mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000025535 { // star_targets '='
25536 if (p->error_indicator) {
25537 D(p->level--);
25538 return NULL;
25539 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000025540 D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000025541 Token * _literal;
25542 expr_ty star_targets_var;
25543 if (
25544 (star_targets_var = star_targets_rule(p)) // star_targets
25545 &&
25546 (_literal = _PyPegen_expect_token(p, 22)) // token='='
25547 )
25548 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000025549 D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000025550 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
25551 goto done;
25552 }
25553 p->mark = _mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000025554 D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000025555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
25556 }
25557 _res = NULL;
25558 done:
25559 D(p->level--);
25560 return _res;
25561}
25562
Pablo Galindo206cbda2021-02-07 18:42:21 +000025563// _tmp_160: star_targets '='
Pablo Galindo835f14f2021-01-31 22:52:56 +000025564static void *
Pablo Galindo206cbda2021-02-07 18:42:21 +000025565_tmp_160_rule(Parser *p)
25566{
25567 D(p->level++);
25568 if (p->error_indicator) {
25569 D(p->level--);
25570 return NULL;
25571 }
25572 void * _res = NULL;
25573 int _mark = p->mark;
25574 { // star_targets '='
25575 if (p->error_indicator) {
25576 D(p->level--);
25577 return NULL;
25578 }
25579 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
25580 Token * _literal;
25581 expr_ty star_targets_var;
25582 if (
25583 (star_targets_var = star_targets_rule(p)) // star_targets
25584 &&
25585 (_literal = _PyPegen_expect_token(p, 22)) // token='='
25586 )
25587 {
25588 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
25589 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
25590 goto done;
25591 }
25592 p->mark = _mark;
25593 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
25594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
25595 }
25596 _res = NULL;
25597 done:
25598 D(p->level--);
25599 return _res;
25600}
25601
25602// _tmp_161: ')' | '**'
25603static void *
25604_tmp_161_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000025605{
25606 D(p->level++);
25607 if (p->error_indicator) {
25608 D(p->level--);
25609 return NULL;
25610 }
25611 void * _res = NULL;
25612 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025613 { // ')'
25614 if (p->error_indicator) {
25615 D(p->level--);
25616 return NULL;
25617 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000025618 D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025619 Token * _literal;
25620 if (
25621 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
25622 )
25623 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000025624 D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025625 _res = _literal;
25626 goto done;
25627 }
25628 p->mark = _mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000025629 D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000025630 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025631 }
25632 { // '**'
25633 if (p->error_indicator) {
25634 D(p->level--);
25635 return NULL;
25636 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000025637 D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025638 Token * _literal;
25639 if (
25640 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
25641 )
25642 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000025643 D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025644 _res = _literal;
25645 goto done;
25646 }
25647 p->mark = _mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000025648 D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
25650 }
25651 _res = NULL;
25652 done:
25653 D(p->level--);
25654 return _res;
25655}
25656
Pablo Galindo206cbda2021-02-07 18:42:21 +000025657// _tmp_162: ':' | '**'
Pablo Galindo835f14f2021-01-31 22:52:56 +000025658static void *
Pablo Galindo206cbda2021-02-07 18:42:21 +000025659_tmp_162_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000025660{
25661 D(p->level++);
25662 if (p->error_indicator) {
25663 D(p->level--);
25664 return NULL;
25665 }
25666 void * _res = NULL;
25667 int _mark = p->mark;
25668 { // ':'
25669 if (p->error_indicator) {
25670 D(p->level--);
25671 return NULL;
25672 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000025673 D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000025674 Token * _literal;
25675 if (
25676 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
25677 )
25678 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000025679 D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000025680 _res = _literal;
25681 goto done;
25682 }
25683 p->mark = _mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000025684 D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000025685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
25686 }
25687 { // '**'
25688 if (p->error_indicator) {
25689 D(p->level--);
25690 return NULL;
25691 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000025692 D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000025693 Token * _literal;
25694 if (
25695 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
25696 )
25697 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000025698 D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000025699 _res = _literal;
25700 goto done;
25701 }
25702 p->mark = _mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000025703 D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000025704 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
25705 }
25706 _res = NULL;
25707 done:
25708 D(p->level--);
25709 return _res;
25710}
25711
Pablo Galindo206cbda2021-02-07 18:42:21 +000025712// _tmp_163: expression ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000025713static void *
Pablo Galindo206cbda2021-02-07 18:42:21 +000025714_tmp_163_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000025715{
25716 D(p->level++);
25717 if (p->error_indicator) {
25718 D(p->level--);
25719 return NULL;
25720 }
25721 void * _res = NULL;
25722 int _mark = p->mark;
25723 { // expression ['as' star_target]
25724 if (p->error_indicator) {
25725 D(p->level--);
25726 return NULL;
25727 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000025728 D(fprintf(stderr, "%*c> _tmp_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000025729 void *_opt_var;
25730 UNUSED(_opt_var); // Silence compiler warnings
25731 expr_ty expression_var;
25732 if (
25733 (expression_var = expression_rule(p)) // expression
25734 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +000025735 (_opt_var = _tmp_165_rule(p), 1) // ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000025736 )
25737 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000025738 D(fprintf(stderr, "%*c+ _tmp_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000025739 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
25740 goto done;
25741 }
25742 p->mark = _mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000025743 D(fprintf(stderr, "%*c%s _tmp_163[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000025744 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
25745 }
25746 _res = NULL;
25747 done:
25748 D(p->level--);
25749 return _res;
25750}
25751
Pablo Galindo206cbda2021-02-07 18:42:21 +000025752// _tmp_164: expressions ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000025753static void *
Pablo Galindo206cbda2021-02-07 18:42:21 +000025754_tmp_164_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000025755{
25756 D(p->level++);
25757 if (p->error_indicator) {
25758 D(p->level--);
25759 return NULL;
25760 }
25761 void * _res = NULL;
25762 int _mark = p->mark;
25763 { // expressions ['as' star_target]
25764 if (p->error_indicator) {
25765 D(p->level--);
25766 return NULL;
25767 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000025768 D(fprintf(stderr, "%*c> _tmp_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000025769 void *_opt_var;
25770 UNUSED(_opt_var); // Silence compiler warnings
25771 expr_ty expressions_var;
25772 if (
25773 (expressions_var = expressions_rule(p)) // expressions
25774 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +000025775 (_opt_var = _tmp_166_rule(p), 1) // ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000025776 )
25777 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000025778 D(fprintf(stderr, "%*c+ _tmp_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000025779 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
25780 goto done;
25781 }
25782 p->mark = _mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000025783 D(fprintf(stderr, "%*c%s _tmp_164[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000025784 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
25785 }
25786 _res = NULL;
25787 done:
25788 D(p->level--);
25789 return _res;
25790}
25791
Pablo Galindo206cbda2021-02-07 18:42:21 +000025792// _tmp_165: 'as' star_target
Pablo Galindo58fb1562021-02-02 19:54:22 +000025793static void *
Pablo Galindo206cbda2021-02-07 18:42:21 +000025794_tmp_165_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000025795{
25796 D(p->level++);
25797 if (p->error_indicator) {
25798 D(p->level--);
25799 return NULL;
25800 }
25801 void * _res = NULL;
25802 int _mark = p->mark;
25803 { // 'as' star_target
25804 if (p->error_indicator) {
25805 D(p->level--);
25806 return NULL;
25807 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000025808 D(fprintf(stderr, "%*c> _tmp_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000025809 Token * _keyword;
25810 expr_ty star_target_var;
25811 if (
25812 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
25813 &&
25814 (star_target_var = star_target_rule(p)) // star_target
25815 )
25816 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000025817 D(fprintf(stderr, "%*c+ _tmp_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000025818 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
25819 goto done;
25820 }
25821 p->mark = _mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000025822 D(fprintf(stderr, "%*c%s _tmp_165[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000025823 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
25824 }
25825 _res = NULL;
25826 done:
25827 D(p->level--);
25828 return _res;
25829}
25830
Pablo Galindo206cbda2021-02-07 18:42:21 +000025831// _tmp_166: 'as' star_target
Pablo Galindo58fb1562021-02-02 19:54:22 +000025832static void *
Pablo Galindo206cbda2021-02-07 18:42:21 +000025833_tmp_166_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000025834{
25835 D(p->level++);
25836 if (p->error_indicator) {
25837 D(p->level--);
25838 return NULL;
25839 }
25840 void * _res = NULL;
25841 int _mark = p->mark;
25842 { // 'as' star_target
25843 if (p->error_indicator) {
25844 D(p->level--);
25845 return NULL;
25846 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000025847 D(fprintf(stderr, "%*c> _tmp_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000025848 Token * _keyword;
25849 expr_ty star_target_var;
25850 if (
25851 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
25852 &&
25853 (star_target_var = star_target_rule(p)) // star_target
25854 )
25855 {
Pablo Galindo206cbda2021-02-07 18:42:21 +000025856 D(fprintf(stderr, "%*c+ _tmp_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000025857 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
25858 goto done;
25859 }
25860 p->mark = _mark;
Pablo Galindo206cbda2021-02-07 18:42:21 +000025861 D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000025862 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
25863 }
25864 _res = NULL;
25865 done:
25866 D(p->level--);
25867 return _res;
25868}
25869
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025870void *
25871_PyPegen_parse(Parser *p)
25872{
25873 // Initialize keywords
25874 p->keywords = reserved_keywords;
25875 p->n_keyword_lists = n_keyword_lists;
25876
25877 // Run parser
25878 void *result = NULL;
25879 if (p->start_rule == Py_file_input) {
25880 result = file_rule(p);
25881 } else if (p->start_rule == Py_single_input) {
25882 result = interactive_rule(p);
25883 } else if (p->start_rule == Py_eval_input) {
25884 result = eval_rule(p);
25885 } else if (p->start_rule == Py_func_type_input) {
25886 result = func_type_rule(p);
25887 } else if (p->start_rule == Py_fstring_input) {
25888 result = fstring_rule(p);
25889 }
25890
25891 return result;
25892}
25893
25894// The end