blob: f4501d3bca094b8ce237dd2bb202bf0d2cad990a [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
235#define _loop0_1_type 1166
236#define _loop0_2_type 1167
237#define _loop0_4_type 1168
238#define _gather_3_type 1169
239#define _loop0_6_type 1170
240#define _gather_5_type 1171
241#define _loop0_8_type 1172
242#define _gather_7_type 1173
243#define _loop0_10_type 1174
244#define _gather_9_type 1175
245#define _loop1_11_type 1176
246#define _loop0_13_type 1177
247#define _gather_12_type 1178
248#define _tmp_14_type 1179
249#define _tmp_15_type 1180
250#define _tmp_16_type 1181
251#define _tmp_17_type 1182
252#define _tmp_18_type 1183
253#define _tmp_19_type 1184
254#define _tmp_20_type 1185
255#define _tmp_21_type 1186
256#define _loop1_22_type 1187
257#define _tmp_23_type 1188
258#define _tmp_24_type 1189
259#define _loop0_26_type 1190
260#define _gather_25_type 1191
261#define _loop0_28_type 1192
262#define _gather_27_type 1193
263#define _tmp_29_type 1194
264#define _tmp_30_type 1195
265#define _loop0_31_type 1196
266#define _loop1_32_type 1197
267#define _loop0_34_type 1198
268#define _gather_33_type 1199
269#define _tmp_35_type 1200
270#define _loop0_37_type 1201
271#define _gather_36_type 1202
272#define _tmp_38_type 1203
273#define _loop0_40_type 1204
274#define _gather_39_type 1205
275#define _loop0_42_type 1206
276#define _gather_41_type 1207
277#define _loop0_44_type 1208
278#define _gather_43_type 1209
279#define _loop0_46_type 1210
280#define _gather_45_type 1211
281#define _tmp_47_type 1212
282#define _loop1_48_type 1213
283#define _tmp_49_type 1214
284#define _tmp_50_type 1215
285#define _tmp_51_type 1216
286#define _tmp_52_type 1217
287#define _tmp_53_type 1218
288#define _loop0_54_type 1219
289#define _loop0_55_type 1220
290#define _loop0_56_type 1221
291#define _loop1_57_type 1222
292#define _loop0_58_type 1223
293#define _loop1_59_type 1224
294#define _loop1_60_type 1225
295#define _loop1_61_type 1226
296#define _loop0_62_type 1227
297#define _loop1_63_type 1228
298#define _loop0_64_type 1229
299#define _loop1_65_type 1230
300#define _loop0_66_type 1231
301#define _loop1_67_type 1232
302#define _loop1_68_type 1233
303#define _tmp_69_type 1234
304#define _loop1_70_type 1235
305#define _loop0_72_type 1236
306#define _gather_71_type 1237
307#define _loop1_73_type 1238
308#define _loop0_74_type 1239
309#define _loop0_75_type 1240
310#define _loop0_76_type 1241
311#define _loop1_77_type 1242
312#define _loop0_78_type 1243
313#define _loop1_79_type 1244
314#define _loop1_80_type 1245
315#define _loop1_81_type 1246
316#define _loop0_82_type 1247
317#define _loop1_83_type 1248
318#define _loop0_84_type 1249
319#define _loop1_85_type 1250
320#define _loop0_86_type 1251
321#define _loop1_87_type 1252
322#define _loop1_88_type 1253
323#define _loop1_89_type 1254
324#define _loop1_90_type 1255
325#define _tmp_91_type 1256
326#define _loop0_93_type 1257
327#define _gather_92_type 1258
328#define _tmp_94_type 1259
329#define _tmp_95_type 1260
330#define _tmp_96_type 1261
331#define _tmp_97_type 1262
332#define _loop1_98_type 1263
333#define _tmp_99_type 1264
334#define _tmp_100_type 1265
335#define _loop0_102_type 1266
336#define _gather_101_type 1267
337#define _loop1_103_type 1268
338#define _loop0_104_type 1269
339#define _loop0_105_type 1270
340#define _loop0_107_type 1271
341#define _gather_106_type 1272
342#define _tmp_108_type 1273
343#define _loop0_110_type 1274
344#define _gather_109_type 1275
345#define _loop0_112_type 1276
346#define _gather_111_type 1277
347#define _loop0_114_type 1278
348#define _gather_113_type 1279
349#define _loop0_116_type 1280
350#define _gather_115_type 1281
351#define _loop0_117_type 1282
352#define _loop0_119_type 1283
353#define _gather_118_type 1284
354#define _loop1_120_type 1285
355#define _tmp_121_type 1286
356#define _loop0_123_type 1287
357#define _gather_122_type 1288
358#define _loop0_125_type 1289
359#define _gather_124_type 1290
360#define _tmp_126_type 1291
361#define _loop0_127_type 1292
362#define _loop0_128_type 1293
363#define _loop0_129_type 1294
364#define _tmp_130_type 1295
365#define _tmp_131_type 1296
366#define _tmp_132_type 1297
367#define _loop0_133_type 1298
368#define _loop1_134_type 1299
369#define _loop0_135_type 1300
370#define _loop1_136_type 1301
371#define _tmp_137_type 1302
372#define _tmp_138_type 1303
373#define _tmp_139_type 1304
374#define _loop0_141_type 1305
375#define _gather_140_type 1306
376#define _loop0_143_type 1307
377#define _gather_142_type 1308
378#define _tmp_144_type 1309
379#define _tmp_145_type 1310
380#define _tmp_146_type 1311
381#define _tmp_147_type 1312
382#define _tmp_148_type 1313
383#define _tmp_149_type 1314
384#define _tmp_150_type 1315
385#define _tmp_151_type 1316
386#define _tmp_152_type 1317
387#define _tmp_153_type 1318
388#define _tmp_154_type 1319
389#define _tmp_155_type 1320
390#define _tmp_156_type 1321
391#define _tmp_157_type 1322
392#define _tmp_158_type 1323
393#define _tmp_159_type 1324
394#define _tmp_160_type 1325
395#define _tmp_161_type 1326
396#define _tmp_162_type 1327
397#define _tmp_163_type 1328
398#define _tmp_164_type 1329
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100399
400static mod_ty file_rule(Parser *p);
401static mod_ty interactive_rule(Parser *p);
402static mod_ty eval_rule(Parser *p);
403static mod_ty func_type_rule(Parser *p);
404static expr_ty fstring_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100405static asdl_expr_seq* type_expressions_rule(Parser *p);
406static asdl_stmt_seq* statements_rule(Parser *p);
407static asdl_stmt_seq* statement_rule(Parser *p);
408static asdl_stmt_seq* statement_newline_rule(Parser *p);
Pablo Galindo9bdc40e2020-11-30 19:42:38 +0000409static asdl_stmt_seq* simple_stmts_rule(Parser *p);
410static stmt_ty simple_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100411static stmt_ty compound_stmt_rule(Parser *p);
412static stmt_ty assignment_rule(Parser *p);
413static AugOperator* augassign_rule(Parser *p);
414static stmt_ty global_stmt_rule(Parser *p);
415static stmt_ty nonlocal_stmt_rule(Parser *p);
416static stmt_ty yield_stmt_rule(Parser *p);
417static stmt_ty assert_stmt_rule(Parser *p);
418static stmt_ty del_stmt_rule(Parser *p);
419static stmt_ty import_stmt_rule(Parser *p);
420static stmt_ty import_name_rule(Parser *p);
421static stmt_ty import_from_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100422static asdl_alias_seq* import_from_targets_rule(Parser *p);
423static asdl_alias_seq* import_from_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100424static alias_ty import_from_as_name_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100425static asdl_alias_seq* dotted_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100426static alias_ty dotted_as_name_rule(Parser *p);
427static expr_ty dotted_name_rule(Parser *p);
428static stmt_ty if_stmt_rule(Parser *p);
429static stmt_ty elif_stmt_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100430static asdl_stmt_seq* else_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100431static stmt_ty while_stmt_rule(Parser *p);
432static stmt_ty for_stmt_rule(Parser *p);
433static stmt_ty with_stmt_rule(Parser *p);
434static withitem_ty with_item_rule(Parser *p);
435static stmt_ty try_stmt_rule(Parser *p);
436static excepthandler_ty except_block_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100437static asdl_stmt_seq* finally_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100438static stmt_ty return_stmt_rule(Parser *p);
439static stmt_ty raise_stmt_rule(Parser *p);
440static stmt_ty function_def_rule(Parser *p);
441static stmt_ty function_def_raw_rule(Parser *p);
442static Token* func_type_comment_rule(Parser *p);
443static arguments_ty params_rule(Parser *p);
444static arguments_ty parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100445static asdl_arg_seq* slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100446static SlashWithDefault* slash_with_default_rule(Parser *p);
447static StarEtc* star_etc_rule(Parser *p);
448static arg_ty kwds_rule(Parser *p);
449static arg_ty param_no_default_rule(Parser *p);
450static NameDefaultPair* param_with_default_rule(Parser *p);
451static NameDefaultPair* param_maybe_default_rule(Parser *p);
452static arg_ty param_rule(Parser *p);
453static expr_ty annotation_rule(Parser *p);
454static expr_ty default_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100455static asdl_expr_seq* decorators_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100456static stmt_ty class_def_rule(Parser *p);
457static stmt_ty class_def_raw_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100458static asdl_stmt_seq* block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100459static expr_ty star_expressions_rule(Parser *p);
460static expr_ty star_expression_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100461static asdl_expr_seq* star_named_expressions_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100462static expr_ty star_named_expression_rule(Parser *p);
463static expr_ty named_expression_rule(Parser *p);
464static expr_ty annotated_rhs_rule(Parser *p);
465static expr_ty expressions_rule(Parser *p);
466static expr_ty expression_rule(Parser *p);
467static expr_ty lambdef_rule(Parser *p);
468static arguments_ty lambda_params_rule(Parser *p);
469static arguments_ty lambda_parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100470static asdl_arg_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100471static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
472static StarEtc* lambda_star_etc_rule(Parser *p);
473static arg_ty lambda_kwds_rule(Parser *p);
474static arg_ty lambda_param_no_default_rule(Parser *p);
475static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
476static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
477static arg_ty lambda_param_rule(Parser *p);
478static expr_ty disjunction_rule(Parser *p);
479static expr_ty conjunction_rule(Parser *p);
480static expr_ty inversion_rule(Parser *p);
481static expr_ty comparison_rule(Parser *p);
482static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
483static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
484static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
485static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
486static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
487static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
488static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
489static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
490static CmpopExprPair* in_bitwise_or_rule(Parser *p);
491static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
492static CmpopExprPair* is_bitwise_or_rule(Parser *p);
493static expr_ty bitwise_or_rule(Parser *p);
494static expr_ty bitwise_xor_rule(Parser *p);
495static expr_ty bitwise_and_rule(Parser *p);
496static expr_ty shift_expr_rule(Parser *p);
497static expr_ty sum_rule(Parser *p);
498static expr_ty term_rule(Parser *p);
499static expr_ty factor_rule(Parser *p);
500static expr_ty power_rule(Parser *p);
501static expr_ty await_primary_rule(Parser *p);
502static expr_ty primary_rule(Parser *p);
503static expr_ty slices_rule(Parser *p);
504static expr_ty slice_rule(Parser *p);
505static expr_ty atom_rule(Parser *p);
506static expr_ty strings_rule(Parser *p);
507static expr_ty list_rule(Parser *p);
508static expr_ty listcomp_rule(Parser *p);
509static expr_ty tuple_rule(Parser *p);
510static expr_ty group_rule(Parser *p);
511static expr_ty genexp_rule(Parser *p);
512static expr_ty set_rule(Parser *p);
513static expr_ty setcomp_rule(Parser *p);
514static expr_ty dict_rule(Parser *p);
515static expr_ty dictcomp_rule(Parser *p);
516static asdl_seq* double_starred_kvpairs_rule(Parser *p);
517static KeyValuePair* double_starred_kvpair_rule(Parser *p);
518static KeyValuePair* kvpair_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100519static asdl_comprehension_seq* for_if_clauses_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100520static comprehension_ty for_if_clause_rule(Parser *p);
521static expr_ty yield_expr_rule(Parser *p);
522static expr_ty arguments_rule(Parser *p);
523static expr_ty args_rule(Parser *p);
524static asdl_seq* kwargs_rule(Parser *p);
525static expr_ty starred_expression_rule(Parser *p);
526static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
527static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
528static expr_ty star_targets_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200529static asdl_expr_seq* star_targets_list_seq_rule(Parser *p);
530static asdl_expr_seq* star_targets_tuple_seq_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100531static expr_ty star_target_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200532static expr_ty target_with_star_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100533static expr_ty star_atom_rule(Parser *p);
534static expr_ty single_target_rule(Parser *p);
535static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100536static asdl_expr_seq* del_targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100537static expr_ty del_target_rule(Parser *p);
538static expr_ty del_t_atom_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100539static asdl_expr_seq* targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100540static expr_ty target_rule(Parser *p);
541static expr_ty t_primary_rule(Parser *p);
542static void *t_lookahead_rule(Parser *p);
543static expr_ty t_atom_rule(Parser *p);
Lysandros Nikolaoubca70142020-10-27 00:42:04 +0200544static void *invalid_arguments_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100545static void *invalid_kwarg_rule(Parser *p);
546static void *invalid_named_expression_rule(Parser *p);
547static void *invalid_assignment_rule(Parser *p);
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +0300548static expr_ty invalid_ann_assign_target_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300549static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100550static void *invalid_block_rule(Parser *p);
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +0200551static void *invalid_primary_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100552static void *invalid_comprehension_rule(Parser *p);
553static void *invalid_dict_comprehension_rule(Parser *p);
554static void *invalid_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200555static void *invalid_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100556static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200557static void *invalid_lambda_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100558static void *invalid_star_etc_rule(Parser *p);
559static void *invalid_lambda_star_etc_rule(Parser *p);
560static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300561static void *invalid_with_item_rule(Parser *p);
562static void *invalid_for_target_rule(Parser *p);
563static void *invalid_group_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100564static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000565static void *invalid_with_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100566static asdl_seq *_loop0_1_rule(Parser *p);
567static asdl_seq *_loop0_2_rule(Parser *p);
568static asdl_seq *_loop0_4_rule(Parser *p);
569static asdl_seq *_gather_3_rule(Parser *p);
570static asdl_seq *_loop0_6_rule(Parser *p);
571static asdl_seq *_gather_5_rule(Parser *p);
572static asdl_seq *_loop0_8_rule(Parser *p);
573static asdl_seq *_gather_7_rule(Parser *p);
574static asdl_seq *_loop0_10_rule(Parser *p);
575static asdl_seq *_gather_9_rule(Parser *p);
576static asdl_seq *_loop1_11_rule(Parser *p);
577static asdl_seq *_loop0_13_rule(Parser *p);
578static asdl_seq *_gather_12_rule(Parser *p);
579static void *_tmp_14_rule(Parser *p);
580static void *_tmp_15_rule(Parser *p);
581static void *_tmp_16_rule(Parser *p);
582static void *_tmp_17_rule(Parser *p);
583static void *_tmp_18_rule(Parser *p);
584static void *_tmp_19_rule(Parser *p);
585static void *_tmp_20_rule(Parser *p);
586static void *_tmp_21_rule(Parser *p);
587static asdl_seq *_loop1_22_rule(Parser *p);
588static void *_tmp_23_rule(Parser *p);
589static void *_tmp_24_rule(Parser *p);
590static asdl_seq *_loop0_26_rule(Parser *p);
591static asdl_seq *_gather_25_rule(Parser *p);
592static asdl_seq *_loop0_28_rule(Parser *p);
593static asdl_seq *_gather_27_rule(Parser *p);
594static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300595static void *_tmp_30_rule(Parser *p);
596static asdl_seq *_loop0_31_rule(Parser *p);
597static asdl_seq *_loop1_32_rule(Parser *p);
598static asdl_seq *_loop0_34_rule(Parser *p);
599static asdl_seq *_gather_33_rule(Parser *p);
600static void *_tmp_35_rule(Parser *p);
601static asdl_seq *_loop0_37_rule(Parser *p);
602static asdl_seq *_gather_36_rule(Parser *p);
603static void *_tmp_38_rule(Parser *p);
604static asdl_seq *_loop0_40_rule(Parser *p);
605static asdl_seq *_gather_39_rule(Parser *p);
606static asdl_seq *_loop0_42_rule(Parser *p);
607static asdl_seq *_gather_41_rule(Parser *p);
608static asdl_seq *_loop0_44_rule(Parser *p);
609static asdl_seq *_gather_43_rule(Parser *p);
610static asdl_seq *_loop0_46_rule(Parser *p);
611static asdl_seq *_gather_45_rule(Parser *p);
612static void *_tmp_47_rule(Parser *p);
613static asdl_seq *_loop1_48_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100614static void *_tmp_49_rule(Parser *p);
615static void *_tmp_50_rule(Parser *p);
616static void *_tmp_51_rule(Parser *p);
617static void *_tmp_52_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300618static void *_tmp_53_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100619static asdl_seq *_loop0_54_rule(Parser *p);
620static asdl_seq *_loop0_55_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300621static asdl_seq *_loop0_56_rule(Parser *p);
622static asdl_seq *_loop1_57_rule(Parser *p);
623static asdl_seq *_loop0_58_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100624static asdl_seq *_loop1_59_rule(Parser *p);
625static asdl_seq *_loop1_60_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300626static asdl_seq *_loop1_61_rule(Parser *p);
627static asdl_seq *_loop0_62_rule(Parser *p);
628static asdl_seq *_loop1_63_rule(Parser *p);
629static asdl_seq *_loop0_64_rule(Parser *p);
630static asdl_seq *_loop1_65_rule(Parser *p);
631static asdl_seq *_loop0_66_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100632static asdl_seq *_loop1_67_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300633static asdl_seq *_loop1_68_rule(Parser *p);
634static void *_tmp_69_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000635static asdl_seq *_loop1_70_rule(Parser *p);
636static asdl_seq *_loop0_72_rule(Parser *p);
637static asdl_seq *_gather_71_rule(Parser *p);
638static asdl_seq *_loop1_73_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300639static asdl_seq *_loop0_74_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000640static asdl_seq *_loop0_75_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100641static asdl_seq *_loop0_76_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000642static asdl_seq *_loop1_77_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300643static asdl_seq *_loop0_78_rule(Parser *p);
644static asdl_seq *_loop1_79_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000645static asdl_seq *_loop1_80_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100646static asdl_seq *_loop1_81_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000647static asdl_seq *_loop0_82_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300648static asdl_seq *_loop1_83_rule(Parser *p);
649static asdl_seq *_loop0_84_rule(Parser *p);
650static asdl_seq *_loop1_85_rule(Parser *p);
651static asdl_seq *_loop0_86_rule(Parser *p);
652static asdl_seq *_loop1_87_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000653static asdl_seq *_loop1_88_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100654static asdl_seq *_loop1_89_rule(Parser *p);
655static asdl_seq *_loop1_90_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000656static void *_tmp_91_rule(Parser *p);
657static asdl_seq *_loop0_93_rule(Parser *p);
658static asdl_seq *_gather_92_rule(Parser *p);
659static void *_tmp_94_rule(Parser *p);
660static void *_tmp_95_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100661static void *_tmp_96_rule(Parser *p);
662static void *_tmp_97_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000663static asdl_seq *_loop1_98_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300664static void *_tmp_99_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000665static void *_tmp_100_rule(Parser *p);
666static asdl_seq *_loop0_102_rule(Parser *p);
667static asdl_seq *_gather_101_rule(Parser *p);
668static asdl_seq *_loop1_103_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300669static asdl_seq *_loop0_104_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000670static asdl_seq *_loop0_105_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300671static asdl_seq *_loop0_107_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000672static asdl_seq *_gather_106_rule(Parser *p);
673static void *_tmp_108_rule(Parser *p);
674static asdl_seq *_loop0_110_rule(Parser *p);
675static asdl_seq *_gather_109_rule(Parser *p);
Pablo Galindo4a97b152020-09-02 17:44:19 +0100676static asdl_seq *_loop0_112_rule(Parser *p);
677static asdl_seq *_gather_111_rule(Parser *p);
678static asdl_seq *_loop0_114_rule(Parser *p);
679static asdl_seq *_gather_113_rule(Parser *p);
680static asdl_seq *_loop0_116_rule(Parser *p);
681static asdl_seq *_gather_115_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000682static asdl_seq *_loop0_117_rule(Parser *p);
Pablo Galindo4a97b152020-09-02 17:44:19 +0100683static asdl_seq *_loop0_119_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000684static asdl_seq *_gather_118_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200685static asdl_seq *_loop1_120_rule(Parser *p);
686static void *_tmp_121_rule(Parser *p);
687static asdl_seq *_loop0_123_rule(Parser *p);
688static asdl_seq *_gather_122_rule(Parser *p);
689static asdl_seq *_loop0_125_rule(Parser *p);
690static asdl_seq *_gather_124_rule(Parser *p);
691static void *_tmp_126_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000692static asdl_seq *_loop0_127_rule(Parser *p);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +0300693static asdl_seq *_loop0_128_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200694static asdl_seq *_loop0_129_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000695static void *_tmp_130_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200696static void *_tmp_131_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000697static void *_tmp_132_rule(Parser *p);
698static asdl_seq *_loop0_133_rule(Parser *p);
699static asdl_seq *_loop1_134_rule(Parser *p);
700static asdl_seq *_loop0_135_rule(Parser *p);
701static asdl_seq *_loop1_136_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100702static void *_tmp_137_rule(Parser *p);
703static void *_tmp_138_rule(Parser *p);
704static void *_tmp_139_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000705static asdl_seq *_loop0_141_rule(Parser *p);
706static asdl_seq *_gather_140_rule(Parser *p);
707static asdl_seq *_loop0_143_rule(Parser *p);
708static asdl_seq *_gather_142_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100709static void *_tmp_144_rule(Parser *p);
710static void *_tmp_145_rule(Parser *p);
711static void *_tmp_146_rule(Parser *p);
712static void *_tmp_147_rule(Parser *p);
713static void *_tmp_148_rule(Parser *p);
714static void *_tmp_149_rule(Parser *p);
715static void *_tmp_150_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200716static void *_tmp_151_rule(Parser *p);
717static void *_tmp_152_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200718static void *_tmp_153_rule(Parser *p);
719static void *_tmp_154_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000720static void *_tmp_155_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000721static void *_tmp_156_rule(Parser *p);
722static void *_tmp_157_rule(Parser *p);
723static void *_tmp_158_rule(Parser *p);
724static void *_tmp_159_rule(Parser *p);
725static void *_tmp_160_rule(Parser *p);
726static void *_tmp_161_rule(Parser *p);
727static void *_tmp_162_rule(Parser *p);
728static void *_tmp_163_rule(Parser *p);
729static void *_tmp_164_rule(Parser *p);
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000730
731
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100732// file: statements? $
733static mod_ty
734file_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000735{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100736 D(p->level++);
737 if (p->error_indicator) {
738 D(p->level--);
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000739 return NULL;
740 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100741 mod_ty _res = NULL;
742 int _mark = p->mark;
743 { // statements? $
744 if (p->error_indicator) {
745 D(p->level--);
746 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000747 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100748 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
749 void *a;
750 Token * endmarker_var;
751 if (
752 (a = statements_rule(p), 1) // statements?
753 &&
754 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
755 )
756 {
757 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
758 _res = _PyPegen_make_module ( p , a );
759 if (_res == NULL && PyErr_Occurred()) {
760 p->error_indicator = 1;
761 D(p->level--);
762 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000763 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100764 goto done;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000765 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100766 p->mark = _mark;
767 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
768 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000769 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100770 _res = NULL;
771 done:
772 D(p->level--);
773 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000774}
775
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100776// interactive: statement_newline
777static mod_ty
778interactive_rule(Parser *p)
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000779{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100780 D(p->level++);
781 if (p->error_indicator) {
782 D(p->level--);
783 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000784 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100785 mod_ty _res = NULL;
786 int _mark = p->mark;
787 { // statement_newline
788 if (p->error_indicator) {
789 D(p->level--);
790 return NULL;
791 }
792 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoa5634c42020-09-16 19:42:00 +0100793 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100794 if (
795 (a = statement_newline_rule(p)) // statement_newline
796 )
797 {
798 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
799 _res = Interactive ( a , p -> arena );
800 if (_res == NULL && PyErr_Occurred()) {
801 p->error_indicator = 1;
802 D(p->level--);
803 return NULL;
804 }
805 goto done;
806 }
807 p->mark = _mark;
808 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
809 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
810 }
811 _res = NULL;
812 done:
813 D(p->level--);
814 return _res;
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000815}
816
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100817// eval: expressions NEWLINE* $
818static mod_ty
819eval_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000820{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100821 D(p->level++);
822 if (p->error_indicator) {
823 D(p->level--);
824 return NULL;
825 }
826 mod_ty _res = NULL;
827 int _mark = p->mark;
828 { // expressions NEWLINE* $
829 if (p->error_indicator) {
830 D(p->level--);
831 return NULL;
832 }
833 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
834 asdl_seq * _loop0_1_var;
835 expr_ty a;
836 Token * endmarker_var;
837 if (
838 (a = expressions_rule(p)) // expressions
839 &&
840 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
841 &&
842 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
843 )
844 {
845 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
846 _res = Expression ( a , p -> arena );
847 if (_res == NULL && PyErr_Occurred()) {
848 p->error_indicator = 1;
849 D(p->level--);
850 return NULL;
851 }
852 goto done;
853 }
854 p->mark = _mark;
855 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
856 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
857 }
858 _res = NULL;
859 done:
860 D(p->level--);
861 return _res;
862}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000863
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100864// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
865static mod_ty
866func_type_rule(Parser *p)
867{
868 D(p->level++);
869 if (p->error_indicator) {
870 D(p->level--);
871 return NULL;
872 }
873 mod_ty _res = NULL;
874 int _mark = p->mark;
875 { // '(' type_expressions? ')' '->' expression NEWLINE* $
876 if (p->error_indicator) {
877 D(p->level--);
878 return NULL;
879 }
880 D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
881 Token * _literal;
882 Token * _literal_1;
883 Token * _literal_2;
884 asdl_seq * _loop0_2_var;
885 void *a;
886 expr_ty b;
887 Token * endmarker_var;
888 if (
889 (_literal = _PyPegen_expect_token(p, 7)) // token='('
890 &&
891 (a = type_expressions_rule(p), 1) // type_expressions?
892 &&
893 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
894 &&
895 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
896 &&
897 (b = expression_rule(p)) // expression
898 &&
899 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
900 &&
901 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
902 )
903 {
904 D(fprintf(stderr, "%*c+ func_type[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
905 _res = FunctionType ( a , b , p -> arena );
906 if (_res == NULL && PyErr_Occurred()) {
907 p->error_indicator = 1;
908 D(p->level--);
909 return NULL;
910 }
911 goto done;
912 }
913 p->mark = _mark;
914 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
915 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
916 }
917 _res = NULL;
918 done:
919 D(p->level--);
920 return _res;
921}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000922
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100923// fstring: star_expressions
924static expr_ty
925fstring_rule(Parser *p)
926{
927 D(p->level++);
928 if (p->error_indicator) {
929 D(p->level--);
930 return NULL;
931 }
932 expr_ty _res = NULL;
933 int _mark = p->mark;
934 { // star_expressions
935 if (p->error_indicator) {
936 D(p->level--);
937 return NULL;
938 }
939 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
940 expr_ty star_expressions_var;
941 if (
942 (star_expressions_var = star_expressions_rule(p)) // star_expressions
943 )
944 {
945 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
946 _res = star_expressions_var;
947 goto done;
948 }
949 p->mark = _mark;
950 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
951 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
952 }
953 _res = NULL;
954 done:
955 D(p->level--);
956 return _res;
957}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000958
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100959// type_expressions:
960// | ','.expression+ ',' '*' expression ',' '**' expression
961// | ','.expression+ ',' '*' expression
962// | ','.expression+ ',' '**' expression
963// | '*' expression ',' '**' expression
964// | '*' expression
965// | '**' expression
966// | ','.expression+
Pablo Galindoa5634c42020-09-16 19:42:00 +0100967static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100968type_expressions_rule(Parser *p)
969{
970 D(p->level++);
971 if (p->error_indicator) {
972 D(p->level--);
973 return NULL;
974 }
Pablo Galindoa5634c42020-09-16 19:42:00 +0100975 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100976 int _mark = p->mark;
977 { // ','.expression+ ',' '*' expression ',' '**' expression
978 if (p->error_indicator) {
979 D(p->level--);
980 return NULL;
981 }
982 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
983 Token * _literal;
984 Token * _literal_1;
985 Token * _literal_2;
986 Token * _literal_3;
987 asdl_seq * a;
988 expr_ty b;
989 expr_ty c;
990 if (
991 (a = _gather_3_rule(p)) // ','.expression+
992 &&
993 (_literal = _PyPegen_expect_token(p, 12)) // token=','
994 &&
995 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
996 &&
997 (b = expression_rule(p)) // expression
998 &&
999 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
1000 &&
1001 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
1002 &&
1003 (c = expression_rule(p)) // expression
1004 )
1005 {
1006 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 +03001007 _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 +01001008 if (_res == NULL && PyErr_Occurred()) {
1009 p->error_indicator = 1;
1010 D(p->level--);
1011 return NULL;
1012 }
1013 goto done;
1014 }
1015 p->mark = _mark;
1016 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1017 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1018 }
1019 { // ','.expression+ ',' '*' expression
1020 if (p->error_indicator) {
1021 D(p->level--);
1022 return NULL;
1023 }
1024 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
1025 Token * _literal;
1026 Token * _literal_1;
1027 asdl_seq * a;
1028 expr_ty b;
1029 if (
1030 (a = _gather_5_rule(p)) // ','.expression+
1031 &&
1032 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1033 &&
1034 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1035 &&
1036 (b = expression_rule(p)) // expression
1037 )
1038 {
1039 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 +01001040 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001041 if (_res == NULL && PyErr_Occurred()) {
1042 p->error_indicator = 1;
1043 D(p->level--);
1044 return NULL;
1045 }
1046 goto done;
1047 }
1048 p->mark = _mark;
1049 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1050 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
1051 }
1052 { // ','.expression+ ',' '**' expression
1053 if (p->error_indicator) {
1054 D(p->level--);
1055 return NULL;
1056 }
1057 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
1058 Token * _literal;
1059 Token * _literal_1;
1060 asdl_seq * a;
1061 expr_ty b;
1062 if (
1063 (a = _gather_7_rule(p)) // ','.expression+
1064 &&
1065 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1066 &&
1067 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
1068 &&
1069 (b = expression_rule(p)) // expression
1070 )
1071 {
1072 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 +01001073 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001074 if (_res == NULL && PyErr_Occurred()) {
1075 p->error_indicator = 1;
1076 D(p->level--);
1077 return NULL;
1078 }
1079 goto done;
1080 }
1081 p->mark = _mark;
1082 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
1084 }
1085 { // '*' expression ',' '**' expression
1086 if (p->error_indicator) {
1087 D(p->level--);
1088 return NULL;
1089 }
1090 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
1091 Token * _literal;
1092 Token * _literal_1;
1093 Token * _literal_2;
1094 expr_ty a;
1095 expr_ty b;
1096 if (
1097 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1098 &&
1099 (a = expression_rule(p)) // expression
1100 &&
1101 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
1102 &&
1103 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
1104 &&
1105 (b = expression_rule(p)) // expression
1106 )
1107 {
1108 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 +03001109 _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 +01001110 if (_res == NULL && PyErr_Occurred()) {
1111 p->error_indicator = 1;
1112 D(p->level--);
1113 return NULL;
1114 }
1115 goto done;
1116 }
1117 p->mark = _mark;
1118 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1119 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
1120 }
1121 { // '*' expression
1122 if (p->error_indicator) {
1123 D(p->level--);
1124 return NULL;
1125 }
1126 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
1127 Token * _literal;
1128 expr_ty a;
1129 if (
1130 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1131 &&
1132 (a = expression_rule(p)) // expression
1133 )
1134 {
1135 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001136 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001137 if (_res == NULL && PyErr_Occurred()) {
1138 p->error_indicator = 1;
1139 D(p->level--);
1140 return NULL;
1141 }
1142 goto done;
1143 }
1144 p->mark = _mark;
1145 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
1147 }
1148 { // '**' expression
1149 if (p->error_indicator) {
1150 D(p->level--);
1151 return NULL;
1152 }
1153 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
1154 Token * _literal;
1155 expr_ty a;
1156 if (
1157 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
1158 &&
1159 (a = expression_rule(p)) // expression
1160 )
1161 {
1162 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001163 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001164 if (_res == NULL && PyErr_Occurred()) {
1165 p->error_indicator = 1;
1166 D(p->level--);
1167 return NULL;
1168 }
1169 goto done;
1170 }
1171 p->mark = _mark;
1172 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1173 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
1174 }
1175 { // ','.expression+
1176 if (p->error_indicator) {
1177 D(p->level--);
1178 return NULL;
1179 }
1180 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001181 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001182 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01001183 (a = (asdl_expr_seq*)_gather_9_rule(p)) // ','.expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001184 )
1185 {
1186 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001187 _res = a;
1188 if (_res == NULL && PyErr_Occurred()) {
1189 p->error_indicator = 1;
1190 D(p->level--);
1191 return NULL;
1192 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001193 goto done;
1194 }
1195 p->mark = _mark;
1196 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1197 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
1198 }
1199 _res = NULL;
1200 done:
1201 D(p->level--);
1202 return _res;
1203}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001204
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001205// statements: statement+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001206static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001207statements_rule(Parser *p)
1208{
1209 D(p->level++);
1210 if (p->error_indicator) {
1211 D(p->level--);
1212 return NULL;
1213 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001214 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001215 int _mark = p->mark;
1216 { // statement+
1217 if (p->error_indicator) {
1218 D(p->level--);
1219 return NULL;
1220 }
1221 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
1222 asdl_seq * a;
1223 if (
1224 (a = _loop1_11_rule(p)) // statement+
1225 )
1226 {
1227 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001228 _res = ( asdl_stmt_seq * ) _PyPegen_seq_flatten ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001229 if (_res == NULL && PyErr_Occurred()) {
1230 p->error_indicator = 1;
1231 D(p->level--);
1232 return NULL;
1233 }
1234 goto done;
1235 }
1236 p->mark = _mark;
1237 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
1239 }
1240 _res = NULL;
1241 done:
1242 D(p->level--);
1243 return _res;
1244}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001245
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001246// statement: compound_stmt | simple_stmts
Pablo Galindoa5634c42020-09-16 19:42:00 +01001247static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001248statement_rule(Parser *p)
1249{
1250 D(p->level++);
1251 if (p->error_indicator) {
1252 D(p->level--);
1253 return NULL;
1254 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001255 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001256 int _mark = p->mark;
1257 { // compound_stmt
1258 if (p->error_indicator) {
1259 D(p->level--);
1260 return NULL;
1261 }
1262 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
1263 stmt_ty a;
1264 if (
1265 (a = compound_stmt_rule(p)) // compound_stmt
1266 )
1267 {
1268 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001269 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001270 if (_res == NULL && PyErr_Occurred()) {
1271 p->error_indicator = 1;
1272 D(p->level--);
1273 return NULL;
1274 }
1275 goto done;
1276 }
1277 p->mark = _mark;
1278 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1279 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
1280 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001281 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001282 if (p->error_indicator) {
1283 D(p->level--);
1284 return NULL;
1285 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001286 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001287 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001288 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001289 (a = (asdl_stmt_seq*)simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001290 )
1291 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001292 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001293 _res = a;
1294 if (_res == NULL && PyErr_Occurred()) {
1295 p->error_indicator = 1;
1296 D(p->level--);
1297 return NULL;
1298 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001299 goto done;
1300 }
1301 p->mark = _mark;
1302 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001303 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001304 }
1305 _res = NULL;
1306 done:
1307 D(p->level--);
1308 return _res;
1309}
1310
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001311// statement_newline: compound_stmt NEWLINE | simple_stmts | NEWLINE | $
Pablo Galindoa5634c42020-09-16 19:42:00 +01001312static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001313statement_newline_rule(Parser *p)
1314{
1315 D(p->level++);
1316 if (p->error_indicator) {
1317 D(p->level--);
1318 return NULL;
1319 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001320 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001321 int _mark = p->mark;
1322 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1323 p->error_indicator = 1;
1324 D(p->level--);
1325 return NULL;
1326 }
1327 int _start_lineno = p->tokens[_mark]->lineno;
1328 UNUSED(_start_lineno); // Only used by EXTRA macro
1329 int _start_col_offset = p->tokens[_mark]->col_offset;
1330 UNUSED(_start_col_offset); // Only used by EXTRA macro
1331 { // compound_stmt NEWLINE
1332 if (p->error_indicator) {
1333 D(p->level--);
1334 return NULL;
1335 }
1336 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
1337 stmt_ty a;
1338 Token * newline_var;
1339 if (
1340 (a = compound_stmt_rule(p)) // compound_stmt
1341 &&
1342 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1343 )
1344 {
1345 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 +01001346 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001347 if (_res == NULL && PyErr_Occurred()) {
1348 p->error_indicator = 1;
1349 D(p->level--);
1350 return NULL;
1351 }
1352 goto done;
1353 }
1354 p->mark = _mark;
1355 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1356 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
1357 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001358 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001359 if (p->error_indicator) {
1360 D(p->level--);
1361 return NULL;
1362 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001363 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1364 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001365 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001366 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001367 )
1368 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001369 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1370 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001371 goto done;
1372 }
1373 p->mark = _mark;
1374 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001375 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001376 }
1377 { // NEWLINE
1378 if (p->error_indicator) {
1379 D(p->level--);
1380 return NULL;
1381 }
1382 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1383 Token * newline_var;
1384 if (
1385 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1386 )
1387 {
1388 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1389 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1390 if (_token == NULL) {
1391 D(p->level--);
1392 return NULL;
1393 }
1394 int _end_lineno = _token->end_lineno;
1395 UNUSED(_end_lineno); // Only used by EXTRA macro
1396 int _end_col_offset = _token->end_col_offset;
1397 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03001398 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , CHECK ( stmt_ty , _Py_Pass ( EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001399 if (_res == NULL && PyErr_Occurred()) {
1400 p->error_indicator = 1;
1401 D(p->level--);
1402 return NULL;
1403 }
1404 goto done;
1405 }
1406 p->mark = _mark;
1407 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
1409 }
1410 { // $
1411 if (p->error_indicator) {
1412 D(p->level--);
1413 return NULL;
1414 }
1415 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
1416 Token * endmarker_var;
1417 if (
1418 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1419 )
1420 {
1421 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
1422 _res = _PyPegen_interactive_exit ( p );
1423 if (_res == NULL && PyErr_Occurred()) {
1424 p->error_indicator = 1;
1425 D(p->level--);
1426 return NULL;
1427 }
1428 goto done;
1429 }
1430 p->mark = _mark;
1431 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1432 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
1433 }
1434 _res = NULL;
1435 done:
1436 D(p->level--);
1437 return _res;
1438}
1439
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001440// simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindoa5634c42020-09-16 19:42:00 +01001441static asdl_stmt_seq*
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001442simple_stmts_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001443{
1444 D(p->level++);
1445 if (p->error_indicator) {
1446 D(p->level--);
1447 return NULL;
1448 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001449 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001450 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001451 { // simple_stmt !';' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001452 if (p->error_indicator) {
1453 D(p->level--);
1454 return NULL;
1455 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001456 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 +01001457 stmt_ty a;
1458 Token * newline_var;
1459 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001460 (a = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001461 &&
1462 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
1463 &&
1464 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1465 )
1466 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001467 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 +01001468 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001469 if (_res == NULL && PyErr_Occurred()) {
1470 p->error_indicator = 1;
1471 D(p->level--);
1472 return NULL;
1473 }
1474 goto done;
1475 }
1476 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001477 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001479 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001480 { // ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001481 if (p->error_indicator) {
1482 D(p->level--);
1483 return NULL;
1484 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001485 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 +01001486 void *_opt_var;
1487 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01001488 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001489 Token * newline_var;
1490 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001491 (a = (asdl_stmt_seq*)_gather_12_rule(p)) // ';'.simple_stmt+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001492 &&
1493 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
1494 &&
1495 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1496 )
1497 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001498 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 +01001499 _res = a;
1500 if (_res == NULL && PyErr_Occurred()) {
1501 p->error_indicator = 1;
1502 D(p->level--);
1503 return NULL;
1504 }
1505 goto done;
1506 }
1507 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001508 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1509 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001510 }
1511 _res = NULL;
1512 done:
1513 D(p->level--);
1514 return _res;
1515}
1516
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001517// simple_stmt:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001518// | assignment
1519// | star_expressions
1520// | &'return' return_stmt
1521// | &('import' | 'from') import_stmt
1522// | &'raise' raise_stmt
1523// | 'pass'
1524// | &'del' del_stmt
1525// | &'yield' yield_stmt
1526// | &'assert' assert_stmt
1527// | 'break'
1528// | 'continue'
1529// | &'global' global_stmt
1530// | &'nonlocal' nonlocal_stmt
1531static stmt_ty
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001532simple_stmt_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001533{
1534 D(p->level++);
1535 if (p->error_indicator) {
1536 D(p->level--);
1537 return NULL;
1538 }
1539 stmt_ty _res = NULL;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001540 if (_PyPegen_is_memoized(p, simple_stmt_type, &_res)) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001541 D(p->level--);
1542 return _res;
1543 }
1544 int _mark = p->mark;
1545 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1546 p->error_indicator = 1;
1547 D(p->level--);
1548 return NULL;
1549 }
1550 int _start_lineno = p->tokens[_mark]->lineno;
1551 UNUSED(_start_lineno); // Only used by EXTRA macro
1552 int _start_col_offset = p->tokens[_mark]->col_offset;
1553 UNUSED(_start_col_offset); // Only used by EXTRA macro
1554 { // assignment
1555 if (p->error_indicator) {
1556 D(p->level--);
1557 return NULL;
1558 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001559 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001560 stmt_ty assignment_var;
1561 if (
1562 (assignment_var = assignment_rule(p)) // assignment
1563 )
1564 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001565 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001566 _res = assignment_var;
1567 goto done;
1568 }
1569 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001570 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001571 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
1572 }
1573 { // star_expressions
1574 if (p->error_indicator) {
1575 D(p->level--);
1576 return NULL;
1577 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001578 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001579 expr_ty e;
1580 if (
1581 (e = star_expressions_rule(p)) // star_expressions
1582 )
1583 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001584 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 +01001585 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1586 if (_token == NULL) {
1587 D(p->level--);
1588 return NULL;
1589 }
1590 int _end_lineno = _token->end_lineno;
1591 UNUSED(_end_lineno); // Only used by EXTRA macro
1592 int _end_col_offset = _token->end_col_offset;
1593 UNUSED(_end_col_offset); // Only used by EXTRA macro
1594 _res = _Py_Expr ( e , EXTRA );
1595 if (_res == NULL && PyErr_Occurred()) {
1596 p->error_indicator = 1;
1597 D(p->level--);
1598 return NULL;
1599 }
1600 goto done;
1601 }
1602 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001603 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1605 }
1606 { // &'return' return_stmt
1607 if (p->error_indicator) {
1608 D(p->level--);
1609 return NULL;
1610 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001611 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 +01001612 stmt_ty return_stmt_var;
1613 if (
1614 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
1615 &&
1616 (return_stmt_var = return_stmt_rule(p)) // return_stmt
1617 )
1618 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001619 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 +01001620 _res = return_stmt_var;
1621 goto done;
1622 }
1623 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001624 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001625 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
1626 }
1627 { // &('import' | 'from') import_stmt
1628 if (p->error_indicator) {
1629 D(p->level--);
1630 return NULL;
1631 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001632 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 +01001633 stmt_ty import_stmt_var;
1634 if (
1635 _PyPegen_lookahead(1, _tmp_14_rule, p)
1636 &&
1637 (import_stmt_var = import_stmt_rule(p)) // import_stmt
1638 )
1639 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001640 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 +01001641 _res = import_stmt_var;
1642 goto done;
1643 }
1644 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001645 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001646 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
1647 }
1648 { // &'raise' raise_stmt
1649 if (p->error_indicator) {
1650 D(p->level--);
1651 return NULL;
1652 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001653 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 +01001654 stmt_ty raise_stmt_var;
1655 if (
1656 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
1657 &&
1658 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
1659 )
1660 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001661 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 +01001662 _res = raise_stmt_var;
1663 goto done;
1664 }
1665 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001666 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
1668 }
1669 { // 'pass'
1670 if (p->error_indicator) {
1671 D(p->level--);
1672 return NULL;
1673 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001674 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001675 Token * _keyword;
1676 if (
1677 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
1678 )
1679 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001680 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001681 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1682 if (_token == NULL) {
1683 D(p->level--);
1684 return NULL;
1685 }
1686 int _end_lineno = _token->end_lineno;
1687 UNUSED(_end_lineno); // Only used by EXTRA macro
1688 int _end_col_offset = _token->end_col_offset;
1689 UNUSED(_end_col_offset); // Only used by EXTRA macro
1690 _res = _Py_Pass ( EXTRA );
1691 if (_res == NULL && PyErr_Occurred()) {
1692 p->error_indicator = 1;
1693 D(p->level--);
1694 return NULL;
1695 }
1696 goto done;
1697 }
1698 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001699 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001700 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
1701 }
1702 { // &'del' del_stmt
1703 if (p->error_indicator) {
1704 D(p->level--);
1705 return NULL;
1706 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001707 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 +01001708 stmt_ty del_stmt_var;
1709 if (
1710 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
1711 &&
1712 (del_stmt_var = del_stmt_rule(p)) // del_stmt
1713 )
1714 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001715 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 +01001716 _res = del_stmt_var;
1717 goto done;
1718 }
1719 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001720 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001721 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
1722 }
1723 { // &'yield' yield_stmt
1724 if (p->error_indicator) {
1725 D(p->level--);
1726 return NULL;
1727 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001728 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 +01001729 stmt_ty yield_stmt_var;
1730 if (
1731 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
1732 &&
1733 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
1734 )
1735 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001736 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 +01001737 _res = yield_stmt_var;
1738 goto done;
1739 }
1740 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001741 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001742 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
1743 }
1744 { // &'assert' assert_stmt
1745 if (p->error_indicator) {
1746 D(p->level--);
1747 return NULL;
1748 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001749 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 +01001750 stmt_ty assert_stmt_var;
1751 if (
1752 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
1753 &&
1754 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
1755 )
1756 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001757 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001758 _res = assert_stmt_var;
1759 goto done;
1760 }
1761 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001762 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001763 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
1764 }
1765 { // 'break'
1766 if (p->error_indicator) {
1767 D(p->level--);
1768 return NULL;
1769 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001770 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001771 Token * _keyword;
1772 if (
1773 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
1774 )
1775 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001776 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001777 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1778 if (_token == NULL) {
1779 D(p->level--);
1780 return NULL;
1781 }
1782 int _end_lineno = _token->end_lineno;
1783 UNUSED(_end_lineno); // Only used by EXTRA macro
1784 int _end_col_offset = _token->end_col_offset;
1785 UNUSED(_end_col_offset); // Only used by EXTRA macro
1786 _res = _Py_Break ( EXTRA );
1787 if (_res == NULL && PyErr_Occurred()) {
1788 p->error_indicator = 1;
1789 D(p->level--);
1790 return NULL;
1791 }
1792 goto done;
1793 }
1794 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001795 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001796 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
1797 }
1798 { // 'continue'
1799 if (p->error_indicator) {
1800 D(p->level--);
1801 return NULL;
1802 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001803 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001804 Token * _keyword;
1805 if (
1806 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
1807 )
1808 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001809 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001810 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1811 if (_token == NULL) {
1812 D(p->level--);
1813 return NULL;
1814 }
1815 int _end_lineno = _token->end_lineno;
1816 UNUSED(_end_lineno); // Only used by EXTRA macro
1817 int _end_col_offset = _token->end_col_offset;
1818 UNUSED(_end_col_offset); // Only used by EXTRA macro
1819 _res = _Py_Continue ( EXTRA );
1820 if (_res == NULL && PyErr_Occurred()) {
1821 p->error_indicator = 1;
1822 D(p->level--);
1823 return NULL;
1824 }
1825 goto done;
1826 }
1827 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001828 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001829 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
1830 }
1831 { // &'global' global_stmt
1832 if (p->error_indicator) {
1833 D(p->level--);
1834 return NULL;
1835 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001836 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 +01001837 stmt_ty global_stmt_var;
1838 if (
1839 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
1840 &&
1841 (global_stmt_var = global_stmt_rule(p)) // global_stmt
1842 )
1843 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001844 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 +01001845 _res = global_stmt_var;
1846 goto done;
1847 }
1848 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001849 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001850 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
1851 }
1852 { // &'nonlocal' nonlocal_stmt
1853 if (p->error_indicator) {
1854 D(p->level--);
1855 return NULL;
1856 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001857 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 +01001858 stmt_ty nonlocal_stmt_var;
1859 if (
1860 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
1861 &&
1862 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
1863 )
1864 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001865 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 +01001866 _res = nonlocal_stmt_var;
1867 goto done;
1868 }
1869 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001870 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001871 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
1872 }
1873 _res = NULL;
1874 done:
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001875 _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001876 D(p->level--);
1877 return _res;
1878}
1879
1880// compound_stmt:
1881// | &('def' | '@' | ASYNC) function_def
1882// | &'if' if_stmt
1883// | &('class' | '@') class_def
1884// | &('with' | ASYNC) with_stmt
1885// | &('for' | ASYNC) for_stmt
1886// | &'try' try_stmt
1887// | &'while' while_stmt
1888static stmt_ty
1889compound_stmt_rule(Parser *p)
1890{
1891 D(p->level++);
1892 if (p->error_indicator) {
1893 D(p->level--);
1894 return NULL;
1895 }
1896 stmt_ty _res = NULL;
1897 int _mark = p->mark;
1898 { // &('def' | '@' | ASYNC) function_def
1899 if (p->error_indicator) {
1900 D(p->level--);
1901 return NULL;
1902 }
1903 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
1904 stmt_ty function_def_var;
1905 if (
1906 _PyPegen_lookahead(1, _tmp_15_rule, p)
1907 &&
1908 (function_def_var = function_def_rule(p)) // function_def
1909 )
1910 {
1911 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
1912 _res = function_def_var;
1913 goto done;
1914 }
1915 p->mark = _mark;
1916 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
1918 }
1919 { // &'if' if_stmt
1920 if (p->error_indicator) {
1921 D(p->level--);
1922 return NULL;
1923 }
1924 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
1925 stmt_ty if_stmt_var;
1926 if (
1927 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
1928 &&
1929 (if_stmt_var = if_stmt_rule(p)) // if_stmt
1930 )
1931 {
1932 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
1933 _res = if_stmt_var;
1934 goto done;
1935 }
1936 p->mark = _mark;
1937 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1938 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
1939 }
1940 { // &('class' | '@') class_def
1941 if (p->error_indicator) {
1942 D(p->level--);
1943 return NULL;
1944 }
1945 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
1946 stmt_ty class_def_var;
1947 if (
1948 _PyPegen_lookahead(1, _tmp_16_rule, p)
1949 &&
1950 (class_def_var = class_def_rule(p)) // class_def
1951 )
1952 {
1953 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
1954 _res = class_def_var;
1955 goto done;
1956 }
1957 p->mark = _mark;
1958 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
1960 }
1961 { // &('with' | ASYNC) with_stmt
1962 if (p->error_indicator) {
1963 D(p->level--);
1964 return NULL;
1965 }
1966 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
1967 stmt_ty with_stmt_var;
1968 if (
1969 _PyPegen_lookahead(1, _tmp_17_rule, p)
1970 &&
1971 (with_stmt_var = with_stmt_rule(p)) // with_stmt
1972 )
1973 {
1974 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
1975 _res = with_stmt_var;
1976 goto done;
1977 }
1978 p->mark = _mark;
1979 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1980 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
1981 }
1982 { // &('for' | ASYNC) for_stmt
1983 if (p->error_indicator) {
1984 D(p->level--);
1985 return NULL;
1986 }
1987 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
1988 stmt_ty for_stmt_var;
1989 if (
1990 _PyPegen_lookahead(1, _tmp_18_rule, p)
1991 &&
1992 (for_stmt_var = for_stmt_rule(p)) // for_stmt
1993 )
1994 {
1995 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
1996 _res = for_stmt_var;
1997 goto done;
1998 }
1999 p->mark = _mark;
2000 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2001 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2002 }
2003 { // &'try' try_stmt
2004 if (p->error_indicator) {
2005 D(p->level--);
2006 return NULL;
2007 }
2008 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2009 stmt_ty try_stmt_var;
2010 if (
2011 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
2012 &&
2013 (try_stmt_var = try_stmt_rule(p)) // try_stmt
2014 )
2015 {
2016 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2017 _res = try_stmt_var;
2018 goto done;
2019 }
2020 p->mark = _mark;
2021 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2022 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
2023 }
2024 { // &'while' while_stmt
2025 if (p->error_indicator) {
2026 D(p->level--);
2027 return NULL;
2028 }
2029 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2030 stmt_ty while_stmt_var;
2031 if (
2032 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
2033 &&
2034 (while_stmt_var = while_stmt_rule(p)) // while_stmt
2035 )
2036 {
2037 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2038 _res = while_stmt_var;
2039 goto done;
2040 }
2041 p->mark = _mark;
2042 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2043 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
2044 }
2045 _res = NULL;
2046 done:
2047 D(p->level--);
2048 return _res;
2049}
2050
2051// assignment:
2052// | NAME ':' expression ['=' annotated_rhs]
2053// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2054// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002055// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002056// | invalid_assignment
2057static stmt_ty
2058assignment_rule(Parser *p)
2059{
2060 D(p->level++);
2061 if (p->error_indicator) {
2062 D(p->level--);
2063 return NULL;
2064 }
2065 stmt_ty _res = NULL;
2066 int _mark = p->mark;
2067 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2068 p->error_indicator = 1;
2069 D(p->level--);
2070 return NULL;
2071 }
2072 int _start_lineno = p->tokens[_mark]->lineno;
2073 UNUSED(_start_lineno); // Only used by EXTRA macro
2074 int _start_col_offset = p->tokens[_mark]->col_offset;
2075 UNUSED(_start_col_offset); // Only used by EXTRA macro
2076 { // NAME ':' expression ['=' annotated_rhs]
2077 if (p->error_indicator) {
2078 D(p->level--);
2079 return NULL;
2080 }
2081 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2082 Token * _literal;
2083 expr_ty a;
2084 expr_ty b;
2085 void *c;
2086 if (
2087 (a = _PyPegen_name_token(p)) // NAME
2088 &&
2089 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2090 &&
2091 (b = expression_rule(p)) // expression
2092 &&
2093 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
2094 )
2095 {
2096 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2097 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2098 if (_token == NULL) {
2099 D(p->level--);
2100 return NULL;
2101 }
2102 int _end_lineno = _token->end_lineno;
2103 UNUSED(_end_lineno); // Only used by EXTRA macro
2104 int _end_col_offset = _token->end_col_offset;
2105 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002106 _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 +01002107 if (_res == NULL && PyErr_Occurred()) {
2108 p->error_indicator = 1;
2109 D(p->level--);
2110 return NULL;
2111 }
2112 goto done;
2113 }
2114 p->mark = _mark;
2115 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2116 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2117 }
2118 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2119 if (p->error_indicator) {
2120 D(p->level--);
2121 return NULL;
2122 }
2123 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2124 Token * _literal;
2125 void *a;
2126 expr_ty b;
2127 void *c;
2128 if (
2129 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
2130 &&
2131 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2132 &&
2133 (b = expression_rule(p)) // expression
2134 &&
2135 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
2136 )
2137 {
2138 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2139 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2140 if (_token == NULL) {
2141 D(p->level--);
2142 return NULL;
2143 }
2144 int _end_lineno = _token->end_lineno;
2145 UNUSED(_end_lineno); // Only used by EXTRA macro
2146 int _end_col_offset = _token->end_col_offset;
2147 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002148 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotations syntax is" , _Py_AnnAssign ( a , b , c , 0 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002149 if (_res == NULL && PyErr_Occurred()) {
2150 p->error_indicator = 1;
2151 D(p->level--);
2152 return NULL;
2153 }
2154 goto done;
2155 }
2156 p->mark = _mark;
2157 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2158 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2159 }
2160 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
2161 if (p->error_indicator) {
2162 D(p->level--);
2163 return NULL;
2164 }
2165 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 +01002166 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002167 void *b;
2168 void *tc;
2169 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01002170 (a = (asdl_expr_seq*)_loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002171 &&
2172 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
2173 &&
2174 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2175 &&
2176 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
2177 )
2178 {
2179 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2180 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2181 if (_token == NULL) {
2182 D(p->level--);
2183 return NULL;
2184 }
2185 int _end_lineno = _token->end_lineno;
2186 UNUSED(_end_lineno); // Only used by EXTRA macro
2187 int _end_col_offset = _token->end_col_offset;
2188 UNUSED(_end_col_offset); // Only used by EXTRA macro
2189 _res = _Py_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
2190 if (_res == NULL && PyErr_Occurred()) {
2191 p->error_indicator = 1;
2192 D(p->level--);
2193 return NULL;
2194 }
2195 goto done;
2196 }
2197 p->mark = _mark;
2198 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2199 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2200 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002201 { // single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002202 if (p->error_indicator) {
2203 D(p->level--);
2204 return NULL;
2205 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002206 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2207 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002208 expr_ty a;
2209 AugOperator* b;
2210 void *c;
2211 if (
2212 (a = single_target_rule(p)) // single_target
2213 &&
2214 (b = augassign_rule(p)) // augassign
2215 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002216 (_cut_var = 1)
2217 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002218 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
2219 )
2220 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002221 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 +01002222 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2223 if (_token == NULL) {
2224 D(p->level--);
2225 return NULL;
2226 }
2227 int _end_lineno = _token->end_lineno;
2228 UNUSED(_end_lineno); // Only used by EXTRA macro
2229 int _end_col_offset = _token->end_col_offset;
2230 UNUSED(_end_col_offset); // Only used by EXTRA macro
2231 _res = _Py_AugAssign ( a , b -> kind , c , EXTRA );
2232 if (_res == NULL && PyErr_Occurred()) {
2233 p->error_indicator = 1;
2234 D(p->level--);
2235 return NULL;
2236 }
2237 goto done;
2238 }
2239 p->mark = _mark;
2240 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002241 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2242 if (_cut_var) {
2243 D(p->level--);
2244 return NULL;
2245 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002246 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002247 if (p->call_invalid_rules) { // invalid_assignment
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002248 if (p->error_indicator) {
2249 D(p->level--);
2250 return NULL;
2251 }
2252 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2253 void *invalid_assignment_var;
2254 if (
2255 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
2256 )
2257 {
2258 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2259 _res = invalid_assignment_var;
2260 goto done;
2261 }
2262 p->mark = _mark;
2263 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2264 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
2265 }
2266 _res = NULL;
2267 done:
2268 D(p->level--);
2269 return _res;
2270}
2271
2272// augassign:
2273// | '+='
2274// | '-='
2275// | '*='
2276// | '@='
2277// | '/='
2278// | '%='
2279// | '&='
2280// | '|='
2281// | '^='
2282// | '<<='
2283// | '>>='
2284// | '**='
2285// | '//='
2286static AugOperator*
2287augassign_rule(Parser *p)
2288{
2289 D(p->level++);
2290 if (p->error_indicator) {
2291 D(p->level--);
2292 return NULL;
2293 }
2294 AugOperator* _res = NULL;
2295 int _mark = p->mark;
2296 { // '+='
2297 if (p->error_indicator) {
2298 D(p->level--);
2299 return NULL;
2300 }
2301 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
2302 Token * _literal;
2303 if (
2304 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
2305 )
2306 {
2307 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
2308 _res = _PyPegen_augoperator ( p , Add );
2309 if (_res == NULL && PyErr_Occurred()) {
2310 p->error_indicator = 1;
2311 D(p->level--);
2312 return NULL;
2313 }
2314 goto done;
2315 }
2316 p->mark = _mark;
2317 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2318 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
2319 }
2320 { // '-='
2321 if (p->error_indicator) {
2322 D(p->level--);
2323 return NULL;
2324 }
2325 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
2326 Token * _literal;
2327 if (
2328 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
2329 )
2330 {
2331 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
2332 _res = _PyPegen_augoperator ( p , Sub );
2333 if (_res == NULL && PyErr_Occurred()) {
2334 p->error_indicator = 1;
2335 D(p->level--);
2336 return NULL;
2337 }
2338 goto done;
2339 }
2340 p->mark = _mark;
2341 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2342 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
2343 }
2344 { // '*='
2345 if (p->error_indicator) {
2346 D(p->level--);
2347 return NULL;
2348 }
2349 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
2350 Token * _literal;
2351 if (
2352 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
2353 )
2354 {
2355 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
2356 _res = _PyPegen_augoperator ( p , Mult );
2357 if (_res == NULL && PyErr_Occurred()) {
2358 p->error_indicator = 1;
2359 D(p->level--);
2360 return NULL;
2361 }
2362 goto done;
2363 }
2364 p->mark = _mark;
2365 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2366 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
2367 }
2368 { // '@='
2369 if (p->error_indicator) {
2370 D(p->level--);
2371 return NULL;
2372 }
2373 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
2374 Token * _literal;
2375 if (
2376 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
2377 )
2378 {
2379 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002380 _res = CHECK_VERSION ( AugOperator * , 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002381 if (_res == NULL && PyErr_Occurred()) {
2382 p->error_indicator = 1;
2383 D(p->level--);
2384 return NULL;
2385 }
2386 goto done;
2387 }
2388 p->mark = _mark;
2389 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2390 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
2391 }
2392 { // '/='
2393 if (p->error_indicator) {
2394 D(p->level--);
2395 return NULL;
2396 }
2397 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
2398 Token * _literal;
2399 if (
2400 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
2401 )
2402 {
2403 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
2404 _res = _PyPegen_augoperator ( p , Div );
2405 if (_res == NULL && PyErr_Occurred()) {
2406 p->error_indicator = 1;
2407 D(p->level--);
2408 return NULL;
2409 }
2410 goto done;
2411 }
2412 p->mark = _mark;
2413 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
2415 }
2416 { // '%='
2417 if (p->error_indicator) {
2418 D(p->level--);
2419 return NULL;
2420 }
2421 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
2422 Token * _literal;
2423 if (
2424 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
2425 )
2426 {
2427 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
2428 _res = _PyPegen_augoperator ( p , Mod );
2429 if (_res == NULL && PyErr_Occurred()) {
2430 p->error_indicator = 1;
2431 D(p->level--);
2432 return NULL;
2433 }
2434 goto done;
2435 }
2436 p->mark = _mark;
2437 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
2439 }
2440 { // '&='
2441 if (p->error_indicator) {
2442 D(p->level--);
2443 return NULL;
2444 }
2445 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
2446 Token * _literal;
2447 if (
2448 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
2449 )
2450 {
2451 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
2452 _res = _PyPegen_augoperator ( p , BitAnd );
2453 if (_res == NULL && PyErr_Occurred()) {
2454 p->error_indicator = 1;
2455 D(p->level--);
2456 return NULL;
2457 }
2458 goto done;
2459 }
2460 p->mark = _mark;
2461 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2462 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
2463 }
2464 { // '|='
2465 if (p->error_indicator) {
2466 D(p->level--);
2467 return NULL;
2468 }
2469 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
2470 Token * _literal;
2471 if (
2472 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
2473 )
2474 {
2475 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
2476 _res = _PyPegen_augoperator ( p , BitOr );
2477 if (_res == NULL && PyErr_Occurred()) {
2478 p->error_indicator = 1;
2479 D(p->level--);
2480 return NULL;
2481 }
2482 goto done;
2483 }
2484 p->mark = _mark;
2485 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2486 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
2487 }
2488 { // '^='
2489 if (p->error_indicator) {
2490 D(p->level--);
2491 return NULL;
2492 }
2493 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
2494 Token * _literal;
2495 if (
2496 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
2497 )
2498 {
2499 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
2500 _res = _PyPegen_augoperator ( p , BitXor );
2501 if (_res == NULL && PyErr_Occurred()) {
2502 p->error_indicator = 1;
2503 D(p->level--);
2504 return NULL;
2505 }
2506 goto done;
2507 }
2508 p->mark = _mark;
2509 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2510 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
2511 }
2512 { // '<<='
2513 if (p->error_indicator) {
2514 D(p->level--);
2515 return NULL;
2516 }
2517 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
2518 Token * _literal;
2519 if (
2520 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
2521 )
2522 {
2523 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
2524 _res = _PyPegen_augoperator ( p , LShift );
2525 if (_res == NULL && PyErr_Occurred()) {
2526 p->error_indicator = 1;
2527 D(p->level--);
2528 return NULL;
2529 }
2530 goto done;
2531 }
2532 p->mark = _mark;
2533 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2534 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
2535 }
2536 { // '>>='
2537 if (p->error_indicator) {
2538 D(p->level--);
2539 return NULL;
2540 }
2541 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
2542 Token * _literal;
2543 if (
2544 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
2545 )
2546 {
2547 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
2548 _res = _PyPegen_augoperator ( p , RShift );
2549 if (_res == NULL && PyErr_Occurred()) {
2550 p->error_indicator = 1;
2551 D(p->level--);
2552 return NULL;
2553 }
2554 goto done;
2555 }
2556 p->mark = _mark;
2557 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2558 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
2559 }
2560 { // '**='
2561 if (p->error_indicator) {
2562 D(p->level--);
2563 return NULL;
2564 }
2565 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
2566 Token * _literal;
2567 if (
2568 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
2569 )
2570 {
2571 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
2572 _res = _PyPegen_augoperator ( p , Pow );
2573 if (_res == NULL && PyErr_Occurred()) {
2574 p->error_indicator = 1;
2575 D(p->level--);
2576 return NULL;
2577 }
2578 goto done;
2579 }
2580 p->mark = _mark;
2581 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
2583 }
2584 { // '//='
2585 if (p->error_indicator) {
2586 D(p->level--);
2587 return NULL;
2588 }
2589 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
2590 Token * _literal;
2591 if (
2592 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
2593 )
2594 {
2595 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
2596 _res = _PyPegen_augoperator ( p , FloorDiv );
2597 if (_res == NULL && PyErr_Occurred()) {
2598 p->error_indicator = 1;
2599 D(p->level--);
2600 return NULL;
2601 }
2602 goto done;
2603 }
2604 p->mark = _mark;
2605 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
2607 }
2608 _res = NULL;
2609 done:
2610 D(p->level--);
2611 return _res;
2612}
2613
2614// global_stmt: 'global' ','.NAME+
2615static stmt_ty
2616global_stmt_rule(Parser *p)
2617{
2618 D(p->level++);
2619 if (p->error_indicator) {
2620 D(p->level--);
2621 return NULL;
2622 }
2623 stmt_ty _res = NULL;
2624 int _mark = p->mark;
2625 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2626 p->error_indicator = 1;
2627 D(p->level--);
2628 return NULL;
2629 }
2630 int _start_lineno = p->tokens[_mark]->lineno;
2631 UNUSED(_start_lineno); // Only used by EXTRA macro
2632 int _start_col_offset = p->tokens[_mark]->col_offset;
2633 UNUSED(_start_col_offset); // Only used by EXTRA macro
2634 { // 'global' ','.NAME+
2635 if (p->error_indicator) {
2636 D(p->level--);
2637 return NULL;
2638 }
2639 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2640 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002641 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002642 if (
2643 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
2644 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002645 (a = (asdl_expr_seq*)_gather_25_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002646 )
2647 {
2648 D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2649 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2650 if (_token == NULL) {
2651 D(p->level--);
2652 return NULL;
2653 }
2654 int _end_lineno = _token->end_lineno;
2655 UNUSED(_end_lineno); // Only used by EXTRA macro
2656 int _end_col_offset = _token->end_col_offset;
2657 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002658 _res = _Py_Global ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002659 if (_res == NULL && PyErr_Occurred()) {
2660 p->error_indicator = 1;
2661 D(p->level--);
2662 return NULL;
2663 }
2664 goto done;
2665 }
2666 p->mark = _mark;
2667 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2668 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
2669 }
2670 _res = NULL;
2671 done:
2672 D(p->level--);
2673 return _res;
2674}
2675
2676// nonlocal_stmt: 'nonlocal' ','.NAME+
2677static stmt_ty
2678nonlocal_stmt_rule(Parser *p)
2679{
2680 D(p->level++);
2681 if (p->error_indicator) {
2682 D(p->level--);
2683 return NULL;
2684 }
2685 stmt_ty _res = NULL;
2686 int _mark = p->mark;
2687 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2688 p->error_indicator = 1;
2689 D(p->level--);
2690 return NULL;
2691 }
2692 int _start_lineno = p->tokens[_mark]->lineno;
2693 UNUSED(_start_lineno); // Only used by EXTRA macro
2694 int _start_col_offset = p->tokens[_mark]->col_offset;
2695 UNUSED(_start_col_offset); // Only used by EXTRA macro
2696 { // 'nonlocal' ','.NAME+
2697 if (p->error_indicator) {
2698 D(p->level--);
2699 return NULL;
2700 }
2701 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2702 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002703 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002704 if (
2705 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
2706 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002707 (a = (asdl_expr_seq*)_gather_27_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002708 )
2709 {
2710 D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2711 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2712 if (_token == NULL) {
2713 D(p->level--);
2714 return NULL;
2715 }
2716 int _end_lineno = _token->end_lineno;
2717 UNUSED(_end_lineno); // Only used by EXTRA macro
2718 int _end_col_offset = _token->end_col_offset;
2719 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002720 _res = _Py_Nonlocal ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002721 if (_res == NULL && PyErr_Occurred()) {
2722 p->error_indicator = 1;
2723 D(p->level--);
2724 return NULL;
2725 }
2726 goto done;
2727 }
2728 p->mark = _mark;
2729 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2730 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
2731 }
2732 _res = NULL;
2733 done:
2734 D(p->level--);
2735 return _res;
2736}
2737
2738// yield_stmt: yield_expr
2739static stmt_ty
2740yield_stmt_rule(Parser *p)
2741{
2742 D(p->level++);
2743 if (p->error_indicator) {
2744 D(p->level--);
2745 return NULL;
2746 }
2747 stmt_ty _res = NULL;
2748 int _mark = p->mark;
2749 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2750 p->error_indicator = 1;
2751 D(p->level--);
2752 return NULL;
2753 }
2754 int _start_lineno = p->tokens[_mark]->lineno;
2755 UNUSED(_start_lineno); // Only used by EXTRA macro
2756 int _start_col_offset = p->tokens[_mark]->col_offset;
2757 UNUSED(_start_col_offset); // Only used by EXTRA macro
2758 { // yield_expr
2759 if (p->error_indicator) {
2760 D(p->level--);
2761 return NULL;
2762 }
2763 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2764 expr_ty y;
2765 if (
2766 (y = yield_expr_rule(p)) // yield_expr
2767 )
2768 {
2769 D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2770 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2771 if (_token == NULL) {
2772 D(p->level--);
2773 return NULL;
2774 }
2775 int _end_lineno = _token->end_lineno;
2776 UNUSED(_end_lineno); // Only used by EXTRA macro
2777 int _end_col_offset = _token->end_col_offset;
2778 UNUSED(_end_col_offset); // Only used by EXTRA macro
2779 _res = _Py_Expr ( y , EXTRA );
2780 if (_res == NULL && PyErr_Occurred()) {
2781 p->error_indicator = 1;
2782 D(p->level--);
2783 return NULL;
2784 }
2785 goto done;
2786 }
2787 p->mark = _mark;
2788 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
2790 }
2791 _res = NULL;
2792 done:
2793 D(p->level--);
2794 return _res;
2795}
2796
2797// assert_stmt: 'assert' expression [',' expression]
2798static stmt_ty
2799assert_stmt_rule(Parser *p)
2800{
2801 D(p->level++);
2802 if (p->error_indicator) {
2803 D(p->level--);
2804 return NULL;
2805 }
2806 stmt_ty _res = NULL;
2807 int _mark = p->mark;
2808 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2809 p->error_indicator = 1;
2810 D(p->level--);
2811 return NULL;
2812 }
2813 int _start_lineno = p->tokens[_mark]->lineno;
2814 UNUSED(_start_lineno); // Only used by EXTRA macro
2815 int _start_col_offset = p->tokens[_mark]->col_offset;
2816 UNUSED(_start_col_offset); // Only used by EXTRA macro
2817 { // 'assert' expression [',' expression]
2818 if (p->error_indicator) {
2819 D(p->level--);
2820 return NULL;
2821 }
2822 D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
2823 Token * _keyword;
2824 expr_ty a;
2825 void *b;
2826 if (
2827 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
2828 &&
2829 (a = expression_rule(p)) // expression
2830 &&
2831 (b = _tmp_29_rule(p), 1) // [',' expression]
2832 )
2833 {
2834 D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
2835 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2836 if (_token == NULL) {
2837 D(p->level--);
2838 return NULL;
2839 }
2840 int _end_lineno = _token->end_lineno;
2841 UNUSED(_end_lineno); // Only used by EXTRA macro
2842 int _end_col_offset = _token->end_col_offset;
2843 UNUSED(_end_col_offset); // Only used by EXTRA macro
2844 _res = _Py_Assert ( a , b , EXTRA );
2845 if (_res == NULL && PyErr_Occurred()) {
2846 p->error_indicator = 1;
2847 D(p->level--);
2848 return NULL;
2849 }
2850 goto done;
2851 }
2852 p->mark = _mark;
2853 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2854 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
2855 }
2856 _res = NULL;
2857 done:
2858 D(p->level--);
2859 return _res;
2860}
2861
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002862// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002863static stmt_ty
2864del_stmt_rule(Parser *p)
2865{
2866 D(p->level++);
2867 if (p->error_indicator) {
2868 D(p->level--);
2869 return NULL;
2870 }
2871 stmt_ty _res = NULL;
2872 int _mark = p->mark;
2873 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2874 p->error_indicator = 1;
2875 D(p->level--);
2876 return NULL;
2877 }
2878 int _start_lineno = p->tokens[_mark]->lineno;
2879 UNUSED(_start_lineno); // Only used by EXTRA macro
2880 int _start_col_offset = p->tokens[_mark]->col_offset;
2881 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002882 { // 'del' del_targets &(';' | NEWLINE)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002883 if (p->error_indicator) {
2884 D(p->level--);
2885 return NULL;
2886 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002887 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 +01002888 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002889 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002890 if (
2891 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
2892 &&
2893 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002894 &&
2895 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002896 )
2897 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002898 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 +01002899 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2900 if (_token == NULL) {
2901 D(p->level--);
2902 return NULL;
2903 }
2904 int _end_lineno = _token->end_lineno;
2905 UNUSED(_end_lineno); // Only used by EXTRA macro
2906 int _end_col_offset = _token->end_col_offset;
2907 UNUSED(_end_col_offset); // Only used by EXTRA macro
2908 _res = _Py_Delete ( a , EXTRA );
2909 if (_res == NULL && PyErr_Occurred()) {
2910 p->error_indicator = 1;
2911 D(p->level--);
2912 return NULL;
2913 }
2914 goto done;
2915 }
2916 p->mark = _mark;
2917 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002918 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
2919 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002920 if (p->call_invalid_rules) { // invalid_del_stmt
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002921 if (p->error_indicator) {
2922 D(p->level--);
2923 return NULL;
2924 }
2925 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
2926 void *invalid_del_stmt_var;
2927 if (
2928 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
2929 )
2930 {
2931 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
2932 _res = invalid_del_stmt_var;
2933 goto done;
2934 }
2935 p->mark = _mark;
2936 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2937 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002938 }
2939 _res = NULL;
2940 done:
2941 D(p->level--);
2942 return _res;
2943}
2944
2945// import_stmt: import_name | import_from
2946static stmt_ty
2947import_stmt_rule(Parser *p)
2948{
2949 D(p->level++);
2950 if (p->error_indicator) {
2951 D(p->level--);
2952 return NULL;
2953 }
2954 stmt_ty _res = NULL;
2955 int _mark = p->mark;
2956 { // import_name
2957 if (p->error_indicator) {
2958 D(p->level--);
2959 return NULL;
2960 }
2961 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
2962 stmt_ty import_name_var;
2963 if (
2964 (import_name_var = import_name_rule(p)) // import_name
2965 )
2966 {
2967 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
2968 _res = import_name_var;
2969 goto done;
2970 }
2971 p->mark = _mark;
2972 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2973 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
2974 }
2975 { // import_from
2976 if (p->error_indicator) {
2977 D(p->level--);
2978 return NULL;
2979 }
2980 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
2981 stmt_ty import_from_var;
2982 if (
2983 (import_from_var = import_from_rule(p)) // import_from
2984 )
2985 {
2986 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
2987 _res = import_from_var;
2988 goto done;
2989 }
2990 p->mark = _mark;
2991 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2992 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
2993 }
2994 _res = NULL;
2995 done:
2996 D(p->level--);
2997 return _res;
2998}
2999
3000// import_name: 'import' dotted_as_names
3001static stmt_ty
3002import_name_rule(Parser *p)
3003{
3004 D(p->level++);
3005 if (p->error_indicator) {
3006 D(p->level--);
3007 return NULL;
3008 }
3009 stmt_ty _res = NULL;
3010 int _mark = p->mark;
3011 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3012 p->error_indicator = 1;
3013 D(p->level--);
3014 return NULL;
3015 }
3016 int _start_lineno = p->tokens[_mark]->lineno;
3017 UNUSED(_start_lineno); // Only used by EXTRA macro
3018 int _start_col_offset = p->tokens[_mark]->col_offset;
3019 UNUSED(_start_col_offset); // Only used by EXTRA macro
3020 { // 'import' dotted_as_names
3021 if (p->error_indicator) {
3022 D(p->level--);
3023 return NULL;
3024 }
3025 D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3026 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003027 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003028 if (
3029 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
3030 &&
3031 (a = dotted_as_names_rule(p)) // dotted_as_names
3032 )
3033 {
3034 D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3035 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3036 if (_token == NULL) {
3037 D(p->level--);
3038 return NULL;
3039 }
3040 int _end_lineno = _token->end_lineno;
3041 UNUSED(_end_lineno); // Only used by EXTRA macro
3042 int _end_col_offset = _token->end_col_offset;
3043 UNUSED(_end_col_offset); // Only used by EXTRA macro
3044 _res = _Py_Import ( a , EXTRA );
3045 if (_res == NULL && PyErr_Occurred()) {
3046 p->error_indicator = 1;
3047 D(p->level--);
3048 return NULL;
3049 }
3050 goto done;
3051 }
3052 p->mark = _mark;
3053 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3054 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
3055 }
3056 _res = NULL;
3057 done:
3058 D(p->level--);
3059 return _res;
3060}
3061
3062// import_from:
3063// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3064// | 'from' (('.' | '...'))+ 'import' import_from_targets
3065static stmt_ty
3066import_from_rule(Parser *p)
3067{
3068 D(p->level++);
3069 if (p->error_indicator) {
3070 D(p->level--);
3071 return NULL;
3072 }
3073 stmt_ty _res = NULL;
3074 int _mark = p->mark;
3075 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3076 p->error_indicator = 1;
3077 D(p->level--);
3078 return NULL;
3079 }
3080 int _start_lineno = p->tokens[_mark]->lineno;
3081 UNUSED(_start_lineno); // Only used by EXTRA macro
3082 int _start_col_offset = p->tokens[_mark]->col_offset;
3083 UNUSED(_start_col_offset); // Only used by EXTRA macro
3084 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3085 if (p->error_indicator) {
3086 D(p->level--);
3087 return NULL;
3088 }
3089 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3090 Token * _keyword;
3091 Token * _keyword_1;
3092 asdl_seq * a;
3093 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003094 asdl_alias_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003095 if (
3096 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3097 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003098 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003099 &&
3100 (b = dotted_name_rule(p)) // dotted_name
3101 &&
3102 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3103 &&
3104 (c = import_from_targets_rule(p)) // import_from_targets
3105 )
3106 {
3107 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3108 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3109 if (_token == NULL) {
3110 D(p->level--);
3111 return NULL;
3112 }
3113 int _end_lineno = _token->end_lineno;
3114 UNUSED(_end_lineno); // Only used by EXTRA macro
3115 int _end_col_offset = _token->end_col_offset;
3116 UNUSED(_end_col_offset); // Only used by EXTRA macro
3117 _res = _Py_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
3118 if (_res == NULL && PyErr_Occurred()) {
3119 p->error_indicator = 1;
3120 D(p->level--);
3121 return NULL;
3122 }
3123 goto done;
3124 }
3125 p->mark = _mark;
3126 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3127 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3128 }
3129 { // 'from' (('.' | '...'))+ 'import' import_from_targets
3130 if (p->error_indicator) {
3131 D(p->level--);
3132 return NULL;
3133 }
3134 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3135 Token * _keyword;
3136 Token * _keyword_1;
3137 asdl_seq * a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003138 asdl_alias_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003139 if (
3140 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3141 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003142 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003143 &&
3144 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3145 &&
3146 (b = import_from_targets_rule(p)) // import_from_targets
3147 )
3148 {
3149 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3150 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3151 if (_token == NULL) {
3152 D(p->level--);
3153 return NULL;
3154 }
3155 int _end_lineno = _token->end_lineno;
3156 UNUSED(_end_lineno); // Only used by EXTRA macro
3157 int _end_col_offset = _token->end_col_offset;
3158 UNUSED(_end_col_offset); // Only used by EXTRA macro
3159 _res = _Py_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
3160 if (_res == NULL && PyErr_Occurred()) {
3161 p->error_indicator = 1;
3162 D(p->level--);
3163 return NULL;
3164 }
3165 goto done;
3166 }
3167 p->mark = _mark;
3168 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3170 }
3171 _res = NULL;
3172 done:
3173 D(p->level--);
3174 return _res;
3175}
3176
3177// import_from_targets:
3178// | '(' import_from_as_names ','? ')'
3179// | import_from_as_names !','
3180// | '*'
3181// | invalid_import_from_targets
Pablo Galindoa5634c42020-09-16 19:42:00 +01003182static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003183import_from_targets_rule(Parser *p)
3184{
3185 D(p->level++);
3186 if (p->error_indicator) {
3187 D(p->level--);
3188 return NULL;
3189 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003190 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003191 int _mark = p->mark;
3192 { // '(' import_from_as_names ','? ')'
3193 if (p->error_indicator) {
3194 D(p->level--);
3195 return NULL;
3196 }
3197 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3198 Token * _literal;
3199 Token * _literal_1;
3200 void *_opt_var;
3201 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01003202 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003203 if (
3204 (_literal = _PyPegen_expect_token(p, 7)) // token='('
3205 &&
3206 (a = import_from_as_names_rule(p)) // import_from_as_names
3207 &&
3208 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
3209 &&
3210 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
3211 )
3212 {
3213 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3214 _res = a;
3215 if (_res == NULL && PyErr_Occurred()) {
3216 p->error_indicator = 1;
3217 D(p->level--);
3218 return NULL;
3219 }
3220 goto done;
3221 }
3222 p->mark = _mark;
3223 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3224 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3225 }
3226 { // import_from_as_names !','
3227 if (p->error_indicator) {
3228 D(p->level--);
3229 return NULL;
3230 }
3231 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 +01003232 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003233 if (
3234 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
3235 &&
3236 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
3237 )
3238 {
3239 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
3240 _res = import_from_as_names_var;
3241 goto done;
3242 }
3243 p->mark = _mark;
3244 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3245 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
3246 }
3247 { // '*'
3248 if (p->error_indicator) {
3249 D(p->level--);
3250 return NULL;
3251 }
3252 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
3253 Token * _literal;
3254 if (
3255 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
3256 )
3257 {
3258 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03003259 _res = ( asdl_alias_seq * ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003260 if (_res == NULL && PyErr_Occurred()) {
3261 p->error_indicator = 1;
3262 D(p->level--);
3263 return NULL;
3264 }
3265 goto done;
3266 }
3267 p->mark = _mark;
3268 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3269 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
3270 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003271 if (p->call_invalid_rules) { // invalid_import_from_targets
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003272 if (p->error_indicator) {
3273 D(p->level--);
3274 return NULL;
3275 }
3276 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3277 void *invalid_import_from_targets_var;
3278 if (
3279 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3280 )
3281 {
3282 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3283 _res = invalid_import_from_targets_var;
3284 goto done;
3285 }
3286 p->mark = _mark;
3287 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3288 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
3289 }
3290 _res = NULL;
3291 done:
3292 D(p->level--);
3293 return _res;
3294}
3295
3296// import_from_as_names: ','.import_from_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003297static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003298import_from_as_names_rule(Parser *p)
3299{
3300 D(p->level++);
3301 if (p->error_indicator) {
3302 D(p->level--);
3303 return NULL;
3304 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003305 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003306 int _mark = p->mark;
3307 { // ','.import_from_as_name+
3308 if (p->error_indicator) {
3309 D(p->level--);
3310 return NULL;
3311 }
3312 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 +01003313 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003314 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003315 (a = (asdl_alias_seq*)_gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003316 )
3317 {
3318 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
3319 _res = a;
3320 if (_res == NULL && PyErr_Occurred()) {
3321 p->error_indicator = 1;
3322 D(p->level--);
3323 return NULL;
3324 }
3325 goto done;
3326 }
3327 p->mark = _mark;
3328 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3329 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
3330 }
3331 _res = NULL;
3332 done:
3333 D(p->level--);
3334 return _res;
3335}
3336
3337// import_from_as_name: NAME ['as' NAME]
3338static alias_ty
3339import_from_as_name_rule(Parser *p)
3340{
3341 D(p->level++);
3342 if (p->error_indicator) {
3343 D(p->level--);
3344 return NULL;
3345 }
3346 alias_ty _res = NULL;
3347 int _mark = p->mark;
3348 { // NAME ['as' NAME]
3349 if (p->error_indicator) {
3350 D(p->level--);
3351 return NULL;
3352 }
3353 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3354 expr_ty a;
3355 void *b;
3356 if (
3357 (a = _PyPegen_name_token(p)) // NAME
3358 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003359 (b = _tmp_35_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003360 )
3361 {
3362 D(fprintf(stderr, "%*c+ import_from_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3363 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3364 if (_res == NULL && PyErr_Occurred()) {
3365 p->error_indicator = 1;
3366 D(p->level--);
3367 return NULL;
3368 }
3369 goto done;
3370 }
3371 p->mark = _mark;
3372 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3373 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
3374 }
3375 _res = NULL;
3376 done:
3377 D(p->level--);
3378 return _res;
3379}
3380
3381// dotted_as_names: ','.dotted_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003382static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003383dotted_as_names_rule(Parser *p)
3384{
3385 D(p->level++);
3386 if (p->error_indicator) {
3387 D(p->level--);
3388 return NULL;
3389 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003390 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003391 int _mark = p->mark;
3392 { // ','.dotted_as_name+
3393 if (p->error_indicator) {
3394 D(p->level--);
3395 return NULL;
3396 }
3397 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 +01003398 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003399 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003400 (a = (asdl_alias_seq*)_gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003401 )
3402 {
3403 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
3404 _res = a;
3405 if (_res == NULL && PyErr_Occurred()) {
3406 p->error_indicator = 1;
3407 D(p->level--);
3408 return NULL;
3409 }
3410 goto done;
3411 }
3412 p->mark = _mark;
3413 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
3415 }
3416 _res = NULL;
3417 done:
3418 D(p->level--);
3419 return _res;
3420}
3421
3422// dotted_as_name: dotted_name ['as' NAME]
3423static alias_ty
3424dotted_as_name_rule(Parser *p)
3425{
3426 D(p->level++);
3427 if (p->error_indicator) {
3428 D(p->level--);
3429 return NULL;
3430 }
3431 alias_ty _res = NULL;
3432 int _mark = p->mark;
3433 { // dotted_name ['as' NAME]
3434 if (p->error_indicator) {
3435 D(p->level--);
3436 return NULL;
3437 }
3438 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3439 expr_ty a;
3440 void *b;
3441 if (
3442 (a = dotted_name_rule(p)) // dotted_name
3443 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003444 (b = _tmp_38_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003445 )
3446 {
3447 D(fprintf(stderr, "%*c+ dotted_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3448 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3449 if (_res == NULL && PyErr_Occurred()) {
3450 p->error_indicator = 1;
3451 D(p->level--);
3452 return NULL;
3453 }
3454 goto done;
3455 }
3456 p->mark = _mark;
3457 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
3459 }
3460 _res = NULL;
3461 done:
3462 D(p->level--);
3463 return _res;
3464}
3465
3466// Left-recursive
3467// dotted_name: dotted_name '.' NAME | NAME
3468static expr_ty dotted_name_raw(Parser *);
3469static expr_ty
3470dotted_name_rule(Parser *p)
3471{
3472 D(p->level++);
3473 expr_ty _res = NULL;
3474 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3475 D(p->level--);
3476 return _res;
3477 }
3478 int _mark = p->mark;
3479 int _resmark = p->mark;
3480 while (1) {
3481 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
3482 if (tmpvar_0) {
3483 D(p->level--);
3484 return _res;
3485 }
3486 p->mark = _mark;
3487 void *_raw = dotted_name_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02003488 if (p->error_indicator)
3489 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003490 if (_raw == NULL || p->mark <= _resmark)
3491 break;
3492 _resmark = p->mark;
3493 _res = _raw;
3494 }
3495 p->mark = _resmark;
3496 D(p->level--);
3497 return _res;
3498}
3499static expr_ty
3500dotted_name_raw(Parser *p)
3501{
3502 D(p->level++);
3503 if (p->error_indicator) {
3504 D(p->level--);
3505 return NULL;
3506 }
3507 expr_ty _res = NULL;
3508 int _mark = p->mark;
3509 { // dotted_name '.' NAME
3510 if (p->error_indicator) {
3511 D(p->level--);
3512 return NULL;
3513 }
3514 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3515 Token * _literal;
3516 expr_ty a;
3517 expr_ty b;
3518 if (
3519 (a = dotted_name_rule(p)) // dotted_name
3520 &&
3521 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
3522 &&
3523 (b = _PyPegen_name_token(p)) // NAME
3524 )
3525 {
3526 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3527 _res = _PyPegen_join_names_with_dot ( p , a , b );
3528 if (_res == NULL && PyErr_Occurred()) {
3529 p->error_indicator = 1;
3530 D(p->level--);
3531 return NULL;
3532 }
3533 goto done;
3534 }
3535 p->mark = _mark;
3536 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
3538 }
3539 { // NAME
3540 if (p->error_indicator) {
3541 D(p->level--);
3542 return NULL;
3543 }
3544 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
3545 expr_ty name_var;
3546 if (
3547 (name_var = _PyPegen_name_token(p)) // NAME
3548 )
3549 {
3550 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
3551 _res = name_var;
3552 goto done;
3553 }
3554 p->mark = _mark;
3555 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3556 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
3557 }
3558 _res = NULL;
3559 done:
3560 D(p->level--);
3561 return _res;
3562}
3563
3564// if_stmt:
Pablo Galindo58fb1562021-02-02 19:54:22 +00003565// | 'if' named_expression &&':' block elif_stmt
3566// | 'if' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003567static stmt_ty
3568if_stmt_rule(Parser *p)
3569{
3570 D(p->level++);
3571 if (p->error_indicator) {
3572 D(p->level--);
3573 return NULL;
3574 }
3575 stmt_ty _res = NULL;
3576 int _mark = p->mark;
3577 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3578 p->error_indicator = 1;
3579 D(p->level--);
3580 return NULL;
3581 }
3582 int _start_lineno = p->tokens[_mark]->lineno;
3583 UNUSED(_start_lineno); // Only used by EXTRA macro
3584 int _start_col_offset = p->tokens[_mark]->col_offset;
3585 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00003586 { // 'if' named_expression &&':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003587 if (p->error_indicator) {
3588 D(p->level--);
3589 return NULL;
3590 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003591 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 +01003592 Token * _keyword;
3593 Token * _literal;
3594 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003595 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003596 stmt_ty c;
3597 if (
3598 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3599 &&
3600 (a = named_expression_rule(p)) // named_expression
3601 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003602 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003603 &&
3604 (b = block_rule(p)) // block
3605 &&
3606 (c = elif_stmt_rule(p)) // elif_stmt
3607 )
3608 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003609 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 +01003610 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3611 if (_token == NULL) {
3612 D(p->level--);
3613 return NULL;
3614 }
3615 int _end_lineno = _token->end_lineno;
3616 UNUSED(_end_lineno); // Only used by EXTRA macro
3617 int _end_col_offset = _token->end_col_offset;
3618 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03003619 _res = _Py_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003620 if (_res == NULL && PyErr_Occurred()) {
3621 p->error_indicator = 1;
3622 D(p->level--);
3623 return NULL;
3624 }
3625 goto done;
3626 }
3627 p->mark = _mark;
3628 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003629 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression &&':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003630 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003631 { // 'if' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003632 if (p->error_indicator) {
3633 D(p->level--);
3634 return NULL;
3635 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003636 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 +01003637 Token * _keyword;
3638 Token * _literal;
3639 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003640 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003641 void *c;
3642 if (
3643 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3644 &&
3645 (a = named_expression_rule(p)) // named_expression
3646 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003647 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003648 &&
3649 (b = block_rule(p)) // block
3650 &&
3651 (c = else_block_rule(p), 1) // else_block?
3652 )
3653 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003654 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 +01003655 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3656 if (_token == NULL) {
3657 D(p->level--);
3658 return NULL;
3659 }
3660 int _end_lineno = _token->end_lineno;
3661 UNUSED(_end_lineno); // Only used by EXTRA macro
3662 int _end_col_offset = _token->end_col_offset;
3663 UNUSED(_end_col_offset); // Only used by EXTRA macro
3664 _res = _Py_If ( a , b , c , EXTRA );
3665 if (_res == NULL && PyErr_Occurred()) {
3666 p->error_indicator = 1;
3667 D(p->level--);
3668 return NULL;
3669 }
3670 goto done;
3671 }
3672 p->mark = _mark;
3673 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003674 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression &&':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003675 }
3676 _res = NULL;
3677 done:
3678 D(p->level--);
3679 return _res;
3680}
3681
3682// elif_stmt:
Pablo Galindo58fb1562021-02-02 19:54:22 +00003683// | 'elif' named_expression &&':' block elif_stmt
3684// | 'elif' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003685static stmt_ty
3686elif_stmt_rule(Parser *p)
3687{
3688 D(p->level++);
3689 if (p->error_indicator) {
3690 D(p->level--);
3691 return NULL;
3692 }
3693 stmt_ty _res = NULL;
3694 int _mark = p->mark;
3695 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3696 p->error_indicator = 1;
3697 D(p->level--);
3698 return NULL;
3699 }
3700 int _start_lineno = p->tokens[_mark]->lineno;
3701 UNUSED(_start_lineno); // Only used by EXTRA macro
3702 int _start_col_offset = p->tokens[_mark]->col_offset;
3703 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00003704 { // 'elif' named_expression &&':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003705 if (p->error_indicator) {
3706 D(p->level--);
3707 return NULL;
3708 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003709 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression &&':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003710 Token * _keyword;
3711 Token * _literal;
3712 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003713 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003714 stmt_ty c;
3715 if (
3716 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
3717 &&
3718 (a = named_expression_rule(p)) // named_expression
3719 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003720 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003721 &&
3722 (b = block_rule(p)) // block
3723 &&
3724 (c = elif_stmt_rule(p)) // elif_stmt
3725 )
3726 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003727 D(fprintf(stderr, "%*c+ 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 +01003728 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3729 if (_token == NULL) {
3730 D(p->level--);
3731 return NULL;
3732 }
3733 int _end_lineno = _token->end_lineno;
3734 UNUSED(_end_lineno); // Only used by EXTRA macro
3735 int _end_col_offset = _token->end_col_offset;
3736 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03003737 _res = _Py_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003738 if (_res == NULL && PyErr_Occurred()) {
3739 p->error_indicator = 1;
3740 D(p->level--);
3741 return NULL;
3742 }
3743 goto done;
3744 }
3745 p->mark = _mark;
3746 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression &&':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003748 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003749 { // 'elif' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003750 if (p->error_indicator) {
3751 D(p->level--);
3752 return NULL;
3753 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003754 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression &&':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003755 Token * _keyword;
3756 Token * _literal;
3757 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003758 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003759 void *c;
3760 if (
3761 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
3762 &&
3763 (a = named_expression_rule(p)) // named_expression
3764 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003765 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003766 &&
3767 (b = block_rule(p)) // block
3768 &&
3769 (c = else_block_rule(p), 1) // else_block?
3770 )
3771 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003772 D(fprintf(stderr, "%*c+ 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 +01003773 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3774 if (_token == NULL) {
3775 D(p->level--);
3776 return NULL;
3777 }
3778 int _end_lineno = _token->end_lineno;
3779 UNUSED(_end_lineno); // Only used by EXTRA macro
3780 int _end_col_offset = _token->end_col_offset;
3781 UNUSED(_end_col_offset); // Only used by EXTRA macro
3782 _res = _Py_If ( a , b , c , EXTRA );
3783 if (_res == NULL && PyErr_Occurred()) {
3784 p->error_indicator = 1;
3785 D(p->level--);
3786 return NULL;
3787 }
3788 goto done;
3789 }
3790 p->mark = _mark;
3791 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003792 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression &&':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003793 }
3794 _res = NULL;
3795 done:
3796 D(p->level--);
3797 return _res;
3798}
3799
Pablo Galindo58fb1562021-02-02 19:54:22 +00003800// else_block: 'else' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01003801static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003802else_block_rule(Parser *p)
3803{
3804 D(p->level++);
3805 if (p->error_indicator) {
3806 D(p->level--);
3807 return NULL;
3808 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003809 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003810 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +00003811 { // 'else' &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003812 if (p->error_indicator) {
3813 D(p->level--);
3814 return NULL;
3815 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003816 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003817 Token * _keyword;
3818 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003819 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003820 if (
3821 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
3822 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003823 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003824 &&
3825 (b = block_rule(p)) // block
3826 )
3827 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003828 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 +01003829 _res = b;
3830 if (_res == NULL && PyErr_Occurred()) {
3831 p->error_indicator = 1;
3832 D(p->level--);
3833 return NULL;
3834 }
3835 goto done;
3836 }
3837 p->mark = _mark;
3838 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003839 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003840 }
3841 _res = NULL;
3842 done:
3843 D(p->level--);
3844 return _res;
3845}
3846
Pablo Galindo58fb1562021-02-02 19:54:22 +00003847// while_stmt: 'while' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003848static stmt_ty
3849while_stmt_rule(Parser *p)
3850{
3851 D(p->level++);
3852 if (p->error_indicator) {
3853 D(p->level--);
3854 return NULL;
3855 }
3856 stmt_ty _res = NULL;
3857 int _mark = p->mark;
3858 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3859 p->error_indicator = 1;
3860 D(p->level--);
3861 return NULL;
3862 }
3863 int _start_lineno = p->tokens[_mark]->lineno;
3864 UNUSED(_start_lineno); // Only used by EXTRA macro
3865 int _start_col_offset = p->tokens[_mark]->col_offset;
3866 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00003867 { // 'while' named_expression &&':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003868 if (p->error_indicator) {
3869 D(p->level--);
3870 return NULL;
3871 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003872 D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression &&':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003873 Token * _keyword;
3874 Token * _literal;
3875 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003876 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003877 void *c;
3878 if (
3879 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
3880 &&
3881 (a = named_expression_rule(p)) // named_expression
3882 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003883 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003884 &&
3885 (b = block_rule(p)) // block
3886 &&
3887 (c = else_block_rule(p), 1) // else_block?
3888 )
3889 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003890 D(fprintf(stderr, "%*c+ 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 +01003891 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3892 if (_token == NULL) {
3893 D(p->level--);
3894 return NULL;
3895 }
3896 int _end_lineno = _token->end_lineno;
3897 UNUSED(_end_lineno); // Only used by EXTRA macro
3898 int _end_col_offset = _token->end_col_offset;
3899 UNUSED(_end_col_offset); // Only used by EXTRA macro
3900 _res = _Py_While ( a , b , c , EXTRA );
3901 if (_res == NULL && PyErr_Occurred()) {
3902 p->error_indicator = 1;
3903 D(p->level--);
3904 return NULL;
3905 }
3906 goto done;
3907 }
3908 p->mark = _mark;
3909 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003910 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression &&':' block else_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003911 }
3912 _res = NULL;
3913 done:
3914 D(p->level--);
3915 return _res;
3916}
3917
3918// for_stmt:
Pablo Galindo58fb1562021-02-02 19:54:22 +00003919// | 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
3920// | ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003921// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003922static stmt_ty
3923for_stmt_rule(Parser *p)
3924{
3925 D(p->level++);
3926 if (p->error_indicator) {
3927 D(p->level--);
3928 return NULL;
3929 }
3930 stmt_ty _res = NULL;
3931 int _mark = p->mark;
3932 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3933 p->error_indicator = 1;
3934 D(p->level--);
3935 return NULL;
3936 }
3937 int _start_lineno = p->tokens[_mark]->lineno;
3938 UNUSED(_start_lineno); // Only used by EXTRA macro
3939 int _start_col_offset = p->tokens[_mark]->col_offset;
3940 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00003941 { // 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003942 if (p->error_indicator) {
3943 D(p->level--);
3944 return NULL;
3945 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00003946 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 +03003947 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003948 Token * _keyword;
3949 Token * _keyword_1;
3950 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003951 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003952 void *el;
3953 expr_ty ex;
3954 expr_ty t;
3955 void *tc;
3956 if (
3957 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
3958 &&
3959 (t = star_targets_rule(p)) // star_targets
3960 &&
3961 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
3962 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003963 (_cut_var = 1)
3964 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003965 (ex = star_expressions_rule(p)) // star_expressions
3966 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00003967 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003968 &&
3969 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
3970 &&
3971 (b = block_rule(p)) // block
3972 &&
3973 (el = else_block_rule(p), 1) // else_block?
3974 )
3975 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00003976 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 +01003977 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3978 if (_token == NULL) {
3979 D(p->level--);
3980 return NULL;
3981 }
3982 int _end_lineno = _token->end_lineno;
3983 UNUSED(_end_lineno); // Only used by EXTRA macro
3984 int _end_col_offset = _token->end_col_offset;
3985 UNUSED(_end_col_offset); // Only used by EXTRA macro
3986 _res = _Py_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
3987 if (_res == NULL && PyErr_Occurred()) {
3988 p->error_indicator = 1;
3989 D(p->level--);
3990 return NULL;
3991 }
3992 goto done;
3993 }
3994 p->mark = _mark;
3995 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00003996 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 +03003997 if (_cut_var) {
3998 D(p->level--);
3999 return NULL;
4000 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004001 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004002 { // ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004003 if (p->error_indicator) {
4004 D(p->level--);
4005 return NULL;
4006 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004007 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 +03004008 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004009 Token * _keyword;
4010 Token * _keyword_1;
4011 Token * _literal;
4012 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004013 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004014 void *el;
4015 expr_ty ex;
4016 expr_ty t;
4017 void *tc;
4018 if (
4019 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4020 &&
4021 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4022 &&
4023 (t = star_targets_rule(p)) // star_targets
4024 &&
4025 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4026 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004027 (_cut_var = 1)
4028 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004029 (ex = star_expressions_rule(p)) // star_expressions
4030 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004031 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004032 &&
4033 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4034 &&
4035 (b = block_rule(p)) // block
4036 &&
4037 (el = else_block_rule(p), 1) // else_block?
4038 )
4039 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004040 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 +01004041 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4042 if (_token == NULL) {
4043 D(p->level--);
4044 return NULL;
4045 }
4046 int _end_lineno = _token->end_lineno;
4047 UNUSED(_end_lineno); // Only used by EXTRA macro
4048 int _end_col_offset = _token->end_col_offset;
4049 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03004050 _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 +01004051 if (_res == NULL && PyErr_Occurred()) {
4052 p->error_indicator = 1;
4053 D(p->level--);
4054 return NULL;
4055 }
4056 goto done;
4057 }
4058 p->mark = _mark;
4059 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004060 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 +03004061 if (_cut_var) {
4062 D(p->level--);
4063 return NULL;
4064 }
4065 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004066 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004067 if (p->error_indicator) {
4068 D(p->level--);
4069 return NULL;
4070 }
4071 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4072 void *invalid_for_target_var;
4073 if (
4074 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4075 )
4076 {
4077 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4078 _res = invalid_for_target_var;
4079 goto done;
4080 }
4081 p->mark = _mark;
4082 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004084 }
4085 _res = NULL;
4086 done:
4087 D(p->level--);
4088 return _res;
4089}
4090
4091// with_stmt:
4092// | 'with' '(' ','.with_item+ ','? ')' ':' block
4093// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
4094// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4095// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo58fb1562021-02-02 19:54:22 +00004096// | invalid_with_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004097static stmt_ty
4098with_stmt_rule(Parser *p)
4099{
4100 D(p->level++);
4101 if (p->error_indicator) {
4102 D(p->level--);
4103 return NULL;
4104 }
4105 stmt_ty _res = NULL;
4106 int _mark = p->mark;
4107 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4108 p->error_indicator = 1;
4109 D(p->level--);
4110 return NULL;
4111 }
4112 int _start_lineno = p->tokens[_mark]->lineno;
4113 UNUSED(_start_lineno); // Only used by EXTRA macro
4114 int _start_col_offset = p->tokens[_mark]->col_offset;
4115 UNUSED(_start_col_offset); // Only used by EXTRA macro
4116 { // 'with' '(' ','.with_item+ ','? ')' ':' block
4117 if (p->error_indicator) {
4118 D(p->level--);
4119 return NULL;
4120 }
4121 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4122 Token * _keyword;
4123 Token * _literal;
4124 Token * _literal_1;
4125 Token * _literal_2;
4126 void *_opt_var;
4127 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004128 asdl_withitem_seq* a;
4129 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004130 if (
4131 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4132 &&
4133 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4134 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004135 (a = (asdl_withitem_seq*)_gather_39_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004136 &&
4137 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4138 &&
4139 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4140 &&
4141 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4142 &&
4143 (b = block_rule(p)) // block
4144 )
4145 {
4146 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4147 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4148 if (_token == NULL) {
4149 D(p->level--);
4150 return NULL;
4151 }
4152 int _end_lineno = _token->end_lineno;
4153 UNUSED(_end_lineno); // Only used by EXTRA macro
4154 int _end_col_offset = _token->end_col_offset;
4155 UNUSED(_end_col_offset); // Only used by EXTRA macro
4156 _res = _Py_With ( a , b , NULL , EXTRA );
4157 if (_res == NULL && PyErr_Occurred()) {
4158 p->error_indicator = 1;
4159 D(p->level--);
4160 return NULL;
4161 }
4162 goto done;
4163 }
4164 p->mark = _mark;
4165 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4166 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4167 }
4168 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
4169 if (p->error_indicator) {
4170 D(p->level--);
4171 return NULL;
4172 }
4173 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4174 Token * _keyword;
4175 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004176 asdl_withitem_seq* a;
4177 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004178 void *tc;
4179 if (
4180 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4181 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004182 (a = (asdl_withitem_seq*)_gather_41_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004183 &&
4184 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4185 &&
4186 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4187 &&
4188 (b = block_rule(p)) // block
4189 )
4190 {
4191 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4192 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4193 if (_token == NULL) {
4194 D(p->level--);
4195 return NULL;
4196 }
4197 int _end_lineno = _token->end_lineno;
4198 UNUSED(_end_lineno); // Only used by EXTRA macro
4199 int _end_col_offset = _token->end_col_offset;
4200 UNUSED(_end_col_offset); // Only used by EXTRA macro
4201 _res = _Py_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
4202 if (_res == NULL && PyErr_Occurred()) {
4203 p->error_indicator = 1;
4204 D(p->level--);
4205 return NULL;
4206 }
4207 goto done;
4208 }
4209 p->mark = _mark;
4210 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4211 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4212 }
4213 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4214 if (p->error_indicator) {
4215 D(p->level--);
4216 return NULL;
4217 }
4218 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4219 Token * _keyword;
4220 Token * _literal;
4221 Token * _literal_1;
4222 Token * _literal_2;
4223 void *_opt_var;
4224 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004225 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004226 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004227 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004228 if (
4229 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4230 &&
4231 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4232 &&
4233 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4234 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004235 (a = (asdl_withitem_seq*)_gather_43_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004236 &&
4237 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4238 &&
4239 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4240 &&
4241 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4242 &&
4243 (b = block_rule(p)) // block
4244 )
4245 {
4246 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4247 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4248 if (_token == NULL) {
4249 D(p->level--);
4250 return NULL;
4251 }
4252 int _end_lineno = _token->end_lineno;
4253 UNUSED(_end_lineno); // Only used by EXTRA macro
4254 int _end_col_offset = _token->end_col_offset;
4255 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03004256 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NULL , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004257 if (_res == NULL && PyErr_Occurred()) {
4258 p->error_indicator = 1;
4259 D(p->level--);
4260 return NULL;
4261 }
4262 goto done;
4263 }
4264 p->mark = _mark;
4265 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4266 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4267 }
4268 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
4269 if (p->error_indicator) {
4270 D(p->level--);
4271 return NULL;
4272 }
4273 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4274 Token * _keyword;
4275 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004276 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004277 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004278 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004279 void *tc;
4280 if (
4281 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4282 &&
4283 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4284 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004285 (a = (asdl_withitem_seq*)_gather_45_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004286 &&
4287 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4288 &&
4289 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4290 &&
4291 (b = block_rule(p)) // block
4292 )
4293 {
4294 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4295 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4296 if (_token == NULL) {
4297 D(p->level--);
4298 return NULL;
4299 }
4300 int _end_lineno = _token->end_lineno;
4301 UNUSED(_end_lineno); // Only used by EXTRA macro
4302 int _end_col_offset = _token->end_col_offset;
4303 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03004304 _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 +01004305 if (_res == NULL && PyErr_Occurred()) {
4306 p->error_indicator = 1;
4307 D(p->level--);
4308 return NULL;
4309 }
4310 goto done;
4311 }
4312 p->mark = _mark;
4313 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4314 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4315 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004316 if (p->call_invalid_rules) { // invalid_with_stmt
4317 if (p->error_indicator) {
4318 D(p->level--);
4319 return NULL;
4320 }
4321 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4322 void *invalid_with_stmt_var;
4323 if (
4324 (invalid_with_stmt_var = invalid_with_stmt_rule(p)) // invalid_with_stmt
4325 )
4326 {
4327 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4328 _res = invalid_with_stmt_var;
4329 goto done;
4330 }
4331 p->mark = _mark;
4332 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4333 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt"));
4334 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004335 _res = NULL;
4336 done:
4337 D(p->level--);
4338 return _res;
4339}
4340
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004341// with_item:
4342// | expression 'as' star_target &(',' | ')' | ':')
4343// | invalid_with_item
4344// | expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004345static withitem_ty
4346with_item_rule(Parser *p)
4347{
4348 D(p->level++);
4349 if (p->error_indicator) {
4350 D(p->level--);
4351 return NULL;
4352 }
4353 withitem_ty _res = NULL;
4354 int _mark = p->mark;
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004355 { // expression 'as' star_target &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004356 if (p->error_indicator) {
4357 D(p->level--);
4358 return NULL;
4359 }
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004360 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 +03004361 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004362 expr_ty e;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004363 expr_ty t;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004364 if (
4365 (e = expression_rule(p)) // expression
4366 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004367 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4368 &&
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004369 (t = star_target_rule(p)) // star_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004370 &&
4371 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004372 )
4373 {
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004374 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 +03004375 _res = _Py_withitem ( e , t , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004376 if (_res == NULL && PyErr_Occurred()) {
4377 p->error_indicator = 1;
4378 D(p->level--);
4379 return NULL;
4380 }
4381 goto done;
4382 }
4383 p->mark = _mark;
4384 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004385 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004386 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004387 if (p->call_invalid_rules) { // invalid_with_item
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004388 if (p->error_indicator) {
4389 D(p->level--);
4390 return NULL;
4391 }
4392 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4393 void *invalid_with_item_var;
4394 if (
4395 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4396 )
4397 {
4398 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4399 _res = invalid_with_item_var;
4400 goto done;
4401 }
4402 p->mark = _mark;
4403 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4405 }
4406 { // expression
4407 if (p->error_indicator) {
4408 D(p->level--);
4409 return NULL;
4410 }
4411 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4412 expr_ty e;
4413 if (
4414 (e = expression_rule(p)) // expression
4415 )
4416 {
4417 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
4418 _res = _Py_withitem ( e , NULL , p -> arena );
4419 if (_res == NULL && PyErr_Occurred()) {
4420 p->error_indicator = 1;
4421 D(p->level--);
4422 return NULL;
4423 }
4424 goto done;
4425 }
4426 p->mark = _mark;
4427 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4428 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004429 }
4430 _res = NULL;
4431 done:
4432 D(p->level--);
4433 return _res;
4434}
4435
4436// try_stmt:
Pablo Galindo58fb1562021-02-02 19:54:22 +00004437// | 'try' &&':' block finally_block
4438// | 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004439static stmt_ty
4440try_stmt_rule(Parser *p)
4441{
4442 D(p->level++);
4443 if (p->error_indicator) {
4444 D(p->level--);
4445 return NULL;
4446 }
4447 stmt_ty _res = NULL;
4448 int _mark = p->mark;
4449 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4450 p->error_indicator = 1;
4451 D(p->level--);
4452 return NULL;
4453 }
4454 int _start_lineno = p->tokens[_mark]->lineno;
4455 UNUSED(_start_lineno); // Only used by EXTRA macro
4456 int _start_col_offset = p->tokens[_mark]->col_offset;
4457 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00004458 { // 'try' &&':' block finally_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004459 if (p->error_indicator) {
4460 D(p->level--);
4461 return NULL;
4462 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004463 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 +01004464 Token * _keyword;
4465 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004466 asdl_stmt_seq* b;
4467 asdl_stmt_seq* f;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004468 if (
4469 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4470 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004471 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004472 &&
4473 (b = block_rule(p)) // block
4474 &&
4475 (f = finally_block_rule(p)) // finally_block
4476 )
4477 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004478 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 +01004479 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4480 if (_token == NULL) {
4481 D(p->level--);
4482 return NULL;
4483 }
4484 int _end_lineno = _token->end_lineno;
4485 UNUSED(_end_lineno); // Only used by EXTRA macro
4486 int _end_col_offset = _token->end_col_offset;
4487 UNUSED(_end_col_offset); // Only used by EXTRA macro
4488 _res = _Py_Try ( b , NULL , NULL , f , EXTRA );
4489 if (_res == NULL && PyErr_Occurred()) {
4490 p->error_indicator = 1;
4491 D(p->level--);
4492 return NULL;
4493 }
4494 goto done;
4495 }
4496 p->mark = _mark;
4497 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004498 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block finally_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004499 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004500 { // 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004501 if (p->error_indicator) {
4502 D(p->level--);
4503 return NULL;
4504 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004505 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 +01004506 Token * _keyword;
4507 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004508 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004509 void *el;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004510 asdl_excepthandler_seq* ex;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004511 void *f;
4512 if (
4513 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4514 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004515 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004516 &&
4517 (b = block_rule(p)) // block
4518 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004519 (ex = (asdl_excepthandler_seq*)_loop1_48_rule(p)) // except_block+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004520 &&
4521 (el = else_block_rule(p), 1) // else_block?
4522 &&
4523 (f = finally_block_rule(p), 1) // finally_block?
4524 )
4525 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004526 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 +01004527 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4528 if (_token == NULL) {
4529 D(p->level--);
4530 return NULL;
4531 }
4532 int _end_lineno = _token->end_lineno;
4533 UNUSED(_end_lineno); // Only used by EXTRA macro
4534 int _end_col_offset = _token->end_col_offset;
4535 UNUSED(_end_col_offset); // Only used by EXTRA macro
4536 _res = _Py_Try ( b , ex , el , f , EXTRA );
4537 if (_res == NULL && PyErr_Occurred()) {
4538 p->error_indicator = 1;
4539 D(p->level--);
4540 return NULL;
4541 }
4542 goto done;
4543 }
4544 p->mark = _mark;
4545 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004546 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004547 }
4548 _res = NULL;
4549 done:
4550 D(p->level--);
4551 return _res;
4552}
4553
Pablo Galindo58fb1562021-02-02 19:54:22 +00004554// except_block: 'except' expression ['as' NAME] &&':' block | 'except' &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004555static excepthandler_ty
4556except_block_rule(Parser *p)
4557{
4558 D(p->level++);
4559 if (p->error_indicator) {
4560 D(p->level--);
4561 return NULL;
4562 }
4563 excepthandler_ty _res = NULL;
4564 int _mark = p->mark;
4565 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4566 p->error_indicator = 1;
4567 D(p->level--);
4568 return NULL;
4569 }
4570 int _start_lineno = p->tokens[_mark]->lineno;
4571 UNUSED(_start_lineno); // Only used by EXTRA macro
4572 int _start_col_offset = p->tokens[_mark]->col_offset;
4573 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00004574 { // 'except' expression ['as' NAME] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004575 if (p->error_indicator) {
4576 D(p->level--);
4577 return NULL;
4578 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004579 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 +01004580 Token * _keyword;
4581 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004582 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004583 expr_ty e;
4584 void *t;
4585 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004586 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004587 &&
4588 (e = expression_rule(p)) // expression
4589 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004590 (t = _tmp_49_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004591 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004592 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004593 &&
4594 (b = block_rule(p)) // block
4595 )
4596 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004597 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 +01004598 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4599 if (_token == NULL) {
4600 D(p->level--);
4601 return NULL;
4602 }
4603 int _end_lineno = _token->end_lineno;
4604 UNUSED(_end_lineno); // Only used by EXTRA macro
4605 int _end_col_offset = _token->end_col_offset;
4606 UNUSED(_end_col_offset); // Only used by EXTRA macro
4607 _res = _Py_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
4608 if (_res == NULL && PyErr_Occurred()) {
4609 p->error_indicator = 1;
4610 D(p->level--);
4611 return NULL;
4612 }
4613 goto done;
4614 }
4615 p->mark = _mark;
4616 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004617 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004618 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004619 { // 'except' &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004620 if (p->error_indicator) {
4621 D(p->level--);
4622 return NULL;
4623 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004624 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004625 Token * _keyword;
4626 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004627 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004628 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004629 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004630 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004631 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004632 &&
4633 (b = block_rule(p)) // block
4634 )
4635 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004636 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 +01004637 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4638 if (_token == NULL) {
4639 D(p->level--);
4640 return NULL;
4641 }
4642 int _end_lineno = _token->end_lineno;
4643 UNUSED(_end_lineno); // Only used by EXTRA macro
4644 int _end_col_offset = _token->end_col_offset;
4645 UNUSED(_end_col_offset); // Only used by EXTRA macro
4646 _res = _Py_ExceptHandler ( NULL , NULL , b , EXTRA );
4647 if (_res == NULL && PyErr_Occurred()) {
4648 p->error_indicator = 1;
4649 D(p->level--);
4650 return NULL;
4651 }
4652 goto done;
4653 }
4654 p->mark = _mark;
4655 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004656 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004657 }
4658 _res = NULL;
4659 done:
4660 D(p->level--);
4661 return _res;
4662}
4663
4664// finally_block: 'finally' ':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01004665static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004666finally_block_rule(Parser *p)
4667{
4668 D(p->level++);
4669 if (p->error_indicator) {
4670 D(p->level--);
4671 return NULL;
4672 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01004673 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004674 int _mark = p->mark;
4675 { // 'finally' ':' block
4676 if (p->error_indicator) {
4677 D(p->level--);
4678 return NULL;
4679 }
4680 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
4681 Token * _keyword;
4682 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004683 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004684 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004685 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004686 &&
4687 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4688 &&
4689 (a = block_rule(p)) // block
4690 )
4691 {
4692 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
4693 _res = a;
4694 if (_res == NULL && PyErr_Occurred()) {
4695 p->error_indicator = 1;
4696 D(p->level--);
4697 return NULL;
4698 }
4699 goto done;
4700 }
4701 p->mark = _mark;
4702 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
4703 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' block"));
4704 }
4705 _res = NULL;
4706 done:
4707 D(p->level--);
4708 return _res;
4709}
4710
4711// return_stmt: 'return' star_expressions?
4712static stmt_ty
4713return_stmt_rule(Parser *p)
4714{
4715 D(p->level++);
4716 if (p->error_indicator) {
4717 D(p->level--);
4718 return NULL;
4719 }
4720 stmt_ty _res = NULL;
4721 int _mark = p->mark;
4722 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4723 p->error_indicator = 1;
4724 D(p->level--);
4725 return NULL;
4726 }
4727 int _start_lineno = p->tokens[_mark]->lineno;
4728 UNUSED(_start_lineno); // Only used by EXTRA macro
4729 int _start_col_offset = p->tokens[_mark]->col_offset;
4730 UNUSED(_start_col_offset); // Only used by EXTRA macro
4731 { // 'return' star_expressions?
4732 if (p->error_indicator) {
4733 D(p->level--);
4734 return NULL;
4735 }
4736 D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
4737 Token * _keyword;
4738 void *a;
4739 if (
4740 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
4741 &&
4742 (a = star_expressions_rule(p), 1) // star_expressions?
4743 )
4744 {
4745 D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
4746 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4747 if (_token == NULL) {
4748 D(p->level--);
4749 return NULL;
4750 }
4751 int _end_lineno = _token->end_lineno;
4752 UNUSED(_end_lineno); // Only used by EXTRA macro
4753 int _end_col_offset = _token->end_col_offset;
4754 UNUSED(_end_col_offset); // Only used by EXTRA macro
4755 _res = _Py_Return ( a , EXTRA );
4756 if (_res == NULL && PyErr_Occurred()) {
4757 p->error_indicator = 1;
4758 D(p->level--);
4759 return NULL;
4760 }
4761 goto done;
4762 }
4763 p->mark = _mark;
4764 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
4766 }
4767 _res = NULL;
4768 done:
4769 D(p->level--);
4770 return _res;
4771}
4772
4773// raise_stmt: 'raise' expression ['from' expression] | 'raise'
4774static stmt_ty
4775raise_stmt_rule(Parser *p)
4776{
4777 D(p->level++);
4778 if (p->error_indicator) {
4779 D(p->level--);
4780 return NULL;
4781 }
4782 stmt_ty _res = NULL;
4783 int _mark = p->mark;
4784 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4785 p->error_indicator = 1;
4786 D(p->level--);
4787 return NULL;
4788 }
4789 int _start_lineno = p->tokens[_mark]->lineno;
4790 UNUSED(_start_lineno); // Only used by EXTRA macro
4791 int _start_col_offset = p->tokens[_mark]->col_offset;
4792 UNUSED(_start_col_offset); // Only used by EXTRA macro
4793 { // 'raise' expression ['from' expression]
4794 if (p->error_indicator) {
4795 D(p->level--);
4796 return NULL;
4797 }
4798 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
4799 Token * _keyword;
4800 expr_ty a;
4801 void *b;
4802 if (
4803 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
4804 &&
4805 (a = expression_rule(p)) // expression
4806 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004807 (b = _tmp_50_rule(p), 1) // ['from' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004808 )
4809 {
4810 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
4811 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4812 if (_token == NULL) {
4813 D(p->level--);
4814 return NULL;
4815 }
4816 int _end_lineno = _token->end_lineno;
4817 UNUSED(_end_lineno); // Only used by EXTRA macro
4818 int _end_col_offset = _token->end_col_offset;
4819 UNUSED(_end_col_offset); // Only used by EXTRA macro
4820 _res = _Py_Raise ( a , b , EXTRA );
4821 if (_res == NULL && PyErr_Occurred()) {
4822 p->error_indicator = 1;
4823 D(p->level--);
4824 return NULL;
4825 }
4826 goto done;
4827 }
4828 p->mark = _mark;
4829 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4830 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
4831 }
4832 { // 'raise'
4833 if (p->error_indicator) {
4834 D(p->level--);
4835 return NULL;
4836 }
4837 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
4838 Token * _keyword;
4839 if (
4840 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
4841 )
4842 {
4843 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
4844 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4845 if (_token == NULL) {
4846 D(p->level--);
4847 return NULL;
4848 }
4849 int _end_lineno = _token->end_lineno;
4850 UNUSED(_end_lineno); // Only used by EXTRA macro
4851 int _end_col_offset = _token->end_col_offset;
4852 UNUSED(_end_col_offset); // Only used by EXTRA macro
4853 _res = _Py_Raise ( NULL , NULL , EXTRA );
4854 if (_res == NULL && PyErr_Occurred()) {
4855 p->error_indicator = 1;
4856 D(p->level--);
4857 return NULL;
4858 }
4859 goto done;
4860 }
4861 p->mark = _mark;
4862 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4863 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
4864 }
4865 _res = NULL;
4866 done:
4867 D(p->level--);
4868 return _res;
4869}
4870
4871// function_def: decorators function_def_raw | function_def_raw
4872static stmt_ty
4873function_def_rule(Parser *p)
4874{
4875 D(p->level++);
4876 if (p->error_indicator) {
4877 D(p->level--);
4878 return NULL;
4879 }
4880 stmt_ty _res = NULL;
4881 int _mark = p->mark;
4882 { // decorators function_def_raw
4883 if (p->error_indicator) {
4884 D(p->level--);
4885 return NULL;
4886 }
4887 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 +01004888 asdl_expr_seq* d;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004889 stmt_ty f;
4890 if (
4891 (d = decorators_rule(p)) // decorators
4892 &&
4893 (f = function_def_raw_rule(p)) // function_def_raw
4894 )
4895 {
4896 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
4897 _res = _PyPegen_function_def_decorators ( p , d , f );
4898 if (_res == NULL && PyErr_Occurred()) {
4899 p->error_indicator = 1;
4900 D(p->level--);
4901 return NULL;
4902 }
4903 goto done;
4904 }
4905 p->mark = _mark;
4906 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
4908 }
4909 { // function_def_raw
4910 if (p->error_indicator) {
4911 D(p->level--);
4912 return NULL;
4913 }
4914 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
4915 stmt_ty function_def_raw_var;
4916 if (
4917 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
4918 )
4919 {
4920 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
4921 _res = function_def_raw_var;
4922 goto done;
4923 }
4924 p->mark = _mark;
4925 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
4927 }
4928 _res = NULL;
4929 done:
4930 D(p->level--);
4931 return _res;
4932}
4933
4934// function_def_raw:
Pablo Galindo58fb1562021-02-02 19:54:22 +00004935// | 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
4936// | ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004937static stmt_ty
4938function_def_raw_rule(Parser *p)
4939{
4940 D(p->level++);
4941 if (p->error_indicator) {
4942 D(p->level--);
4943 return NULL;
4944 }
4945 stmt_ty _res = NULL;
4946 int _mark = p->mark;
4947 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4948 p->error_indicator = 1;
4949 D(p->level--);
4950 return NULL;
4951 }
4952 int _start_lineno = p->tokens[_mark]->lineno;
4953 UNUSED(_start_lineno); // Only used by EXTRA macro
4954 int _start_col_offset = p->tokens[_mark]->col_offset;
4955 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00004956 { // 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004957 if (p->error_indicator) {
4958 D(p->level--);
4959 return NULL;
4960 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004961 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 +01004962 Token * _keyword;
4963 Token * _literal;
4964 Token * _literal_1;
4965 Token * _literal_2;
4966 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004967 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004968 expr_ty n;
4969 void *params;
4970 void *tc;
4971 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004972 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004973 &&
4974 (n = _PyPegen_name_token(p)) // NAME
4975 &&
4976 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4977 &&
4978 (params = params_rule(p), 1) // params?
4979 &&
4980 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4981 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004982 (a = _tmp_51_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004983 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004984 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004985 &&
4986 (tc = func_type_comment_rule(p), 1) // func_type_comment?
4987 &&
4988 (b = block_rule(p)) // block
4989 )
4990 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004991 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 +01004992 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4993 if (_token == NULL) {
4994 D(p->level--);
4995 return NULL;
4996 }
4997 int _end_lineno = _token->end_lineno;
4998 UNUSED(_end_lineno); // Only used by EXTRA macro
4999 int _end_col_offset = _token->end_col_offset;
5000 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03005001 _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 +01005002 if (_res == NULL && PyErr_Occurred()) {
5003 p->error_indicator = 1;
5004 D(p->level--);
5005 return NULL;
5006 }
5007 goto done;
5008 }
5009 p->mark = _mark;
5010 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00005011 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005012 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00005013 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005014 if (p->error_indicator) {
5015 D(p->level--);
5016 return NULL;
5017 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00005018 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 +01005019 Token * _keyword;
5020 Token * _literal;
5021 Token * _literal_1;
5022 Token * _literal_2;
5023 void *a;
5024 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005025 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005026 expr_ty n;
5027 void *params;
5028 void *tc;
5029 if (
5030 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
5031 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005032 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005033 &&
5034 (n = _PyPegen_name_token(p)) // NAME
5035 &&
5036 (_literal = _PyPegen_expect_token(p, 7)) // token='('
5037 &&
5038 (params = params_rule(p), 1) // params?
5039 &&
5040 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
5041 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005042 (a = _tmp_52_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005043 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00005044 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005045 &&
5046 (tc = func_type_comment_rule(p), 1) // func_type_comment?
5047 &&
5048 (b = block_rule(p)) // block
5049 )
5050 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00005051 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 +01005052 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5053 if (_token == NULL) {
5054 D(p->level--);
5055 return NULL;
5056 }
5057 int _end_lineno = _token->end_lineno;
5058 UNUSED(_end_lineno); // Only used by EXTRA macro
5059 int _end_col_offset = _token->end_col_offset;
5060 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03005061 _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 +01005062 if (_res == NULL && PyErr_Occurred()) {
5063 p->error_indicator = 1;
5064 D(p->level--);
5065 return NULL;
5066 }
5067 goto done;
5068 }
5069 p->mark = _mark;
5070 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00005071 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005072 }
5073 _res = NULL;
5074 done:
5075 D(p->level--);
5076 return _res;
5077}
5078
5079// func_type_comment:
5080// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
5081// | invalid_double_type_comments
5082// | TYPE_COMMENT
5083static Token*
5084func_type_comment_rule(Parser *p)
5085{
5086 D(p->level++);
5087 if (p->error_indicator) {
5088 D(p->level--);
5089 return NULL;
5090 }
5091 Token* _res = NULL;
5092 int _mark = p->mark;
5093 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
5094 if (p->error_indicator) {
5095 D(p->level--);
5096 return NULL;
5097 }
5098 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
5099 Token * newline_var;
5100 Token * t;
5101 if (
5102 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
5103 &&
5104 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
5105 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005106 _PyPegen_lookahead(1, _tmp_53_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005107 )
5108 {
5109 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
5110 _res = t;
5111 if (_res == NULL && PyErr_Occurred()) {
5112 p->error_indicator = 1;
5113 D(p->level--);
5114 return NULL;
5115 }
5116 goto done;
5117 }
5118 p->mark = _mark;
5119 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5120 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
5121 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02005122 if (p->call_invalid_rules) { // invalid_double_type_comments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005123 if (p->error_indicator) {
5124 D(p->level--);
5125 return NULL;
5126 }
5127 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
5128 void *invalid_double_type_comments_var;
5129 if (
5130 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
5131 )
5132 {
5133 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
5134 _res = invalid_double_type_comments_var;
5135 goto done;
5136 }
5137 p->mark = _mark;
5138 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
5140 }
5141 { // TYPE_COMMENT
5142 if (p->error_indicator) {
5143 D(p->level--);
5144 return NULL;
5145 }
5146 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
5147 Token * type_comment_var;
5148 if (
5149 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
5150 )
5151 {
5152 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
5153 _res = type_comment_var;
5154 goto done;
5155 }
5156 p->mark = _mark;
5157 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5158 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
5159 }
5160 _res = NULL;
5161 done:
5162 D(p->level--);
5163 return _res;
5164}
5165
5166// params: invalid_parameters | parameters
5167static arguments_ty
5168params_rule(Parser *p)
5169{
5170 D(p->level++);
5171 if (p->error_indicator) {
5172 D(p->level--);
5173 return NULL;
5174 }
5175 arguments_ty _res = NULL;
5176 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02005177 if (p->call_invalid_rules) { // invalid_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005178 if (p->error_indicator) {
5179 D(p->level--);
5180 return NULL;
5181 }
5182 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
5183 void *invalid_parameters_var;
5184 if (
5185 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
5186 )
5187 {
5188 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
5189 _res = invalid_parameters_var;
5190 goto done;
5191 }
5192 p->mark = _mark;
5193 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
5194 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
5195 }
5196 { // parameters
5197 if (p->error_indicator) {
5198 D(p->level--);
5199 return NULL;
5200 }
5201 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
5202 arguments_ty parameters_var;
5203 if (
5204 (parameters_var = parameters_rule(p)) // parameters
5205 )
5206 {
5207 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
5208 _res = parameters_var;
5209 goto done;
5210 }
5211 p->mark = _mark;
5212 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
5213 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
5214 }
5215 _res = NULL;
5216 done:
5217 D(p->level--);
5218 return _res;
5219}
5220
5221// parameters:
5222// | slash_no_default param_no_default* param_with_default* star_etc?
5223// | slash_with_default param_with_default* star_etc?
5224// | param_no_default+ param_with_default* star_etc?
5225// | param_with_default+ star_etc?
5226// | star_etc
5227static arguments_ty
5228parameters_rule(Parser *p)
5229{
5230 D(p->level++);
5231 if (p->error_indicator) {
5232 D(p->level--);
5233 return NULL;
5234 }
5235 arguments_ty _res = NULL;
5236 int _mark = p->mark;
5237 { // slash_no_default param_no_default* param_with_default* star_etc?
5238 if (p->error_indicator) {
5239 D(p->level--);
5240 return NULL;
5241 }
5242 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 +01005243 asdl_arg_seq* a;
5244 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005245 asdl_seq * c;
5246 void *d;
5247 if (
5248 (a = slash_no_default_rule(p)) // slash_no_default
5249 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01005250 (b = (asdl_arg_seq*)_loop0_54_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005251 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005252 (c = _loop0_55_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005253 &&
5254 (d = star_etc_rule(p), 1) // star_etc?
5255 )
5256 {
5257 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?"));
5258 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
5259 if (_res == NULL && PyErr_Occurred()) {
5260 p->error_indicator = 1;
5261 D(p->level--);
5262 return NULL;
5263 }
5264 goto done;
5265 }
5266 p->mark = _mark;
5267 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5268 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
5269 }
5270 { // slash_with_default param_with_default* star_etc?
5271 if (p->error_indicator) {
5272 D(p->level--);
5273 return NULL;
5274 }
5275 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
5276 SlashWithDefault* a;
5277 asdl_seq * b;
5278 void *c;
5279 if (
5280 (a = slash_with_default_rule(p)) // slash_with_default
5281 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005282 (b = _loop0_56_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005283 &&
5284 (c = star_etc_rule(p), 1) // star_etc?
5285 )
5286 {
5287 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
5288 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
5289 if (_res == NULL && PyErr_Occurred()) {
5290 p->error_indicator = 1;
5291 D(p->level--);
5292 return NULL;
5293 }
5294 goto done;
5295 }
5296 p->mark = _mark;
5297 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
5299 }
5300 { // param_no_default+ param_with_default* star_etc?
5301 if (p->error_indicator) {
5302 D(p->level--);
5303 return NULL;
5304 }
5305 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 +01005306 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005307 asdl_seq * b;
5308 void *c;
5309 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01005310 (a = (asdl_arg_seq*)_loop1_57_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005311 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005312 (b = _loop0_58_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005313 &&
5314 (c = star_etc_rule(p), 1) // star_etc?
5315 )
5316 {
5317 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
5318 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
5319 if (_res == NULL && PyErr_Occurred()) {
5320 p->error_indicator = 1;
5321 D(p->level--);
5322 return NULL;
5323 }
5324 goto done;
5325 }
5326 p->mark = _mark;
5327 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5328 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
5329 }
5330 { // param_with_default+ star_etc?
5331 if (p->error_indicator) {
5332 D(p->level--);
5333 return NULL;
5334 }
5335 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
5336 asdl_seq * a;
5337 void *b;
5338 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005339 (a = _loop1_59_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005340 &&
5341 (b = star_etc_rule(p), 1) // star_etc?
5342 )
5343 {
5344 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
5345 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
5346 if (_res == NULL && PyErr_Occurred()) {
5347 p->error_indicator = 1;
5348 D(p->level--);
5349 return NULL;
5350 }
5351 goto done;
5352 }
5353 p->mark = _mark;
5354 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5355 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
5356 }
5357 { // star_etc
5358 if (p->error_indicator) {
5359 D(p->level--);
5360 return NULL;
5361 }
5362 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
5363 StarEtc* a;
5364 if (
5365 (a = star_etc_rule(p)) // star_etc
5366 )
5367 {
5368 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
5369 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
5370 if (_res == NULL && PyErr_Occurred()) {
5371 p->error_indicator = 1;
5372 D(p->level--);
5373 return NULL;
5374 }
5375 goto done;
5376 }
5377 p->mark = _mark;
5378 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5379 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
5380 }
5381 _res = NULL;
5382 done:
5383 D(p->level--);
5384 return _res;
5385}
5386
5387// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoa5634c42020-09-16 19:42:00 +01005388static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005389slash_no_default_rule(Parser *p)
5390{
5391 D(p->level++);
5392 if (p->error_indicator) {
5393 D(p->level--);
5394 return NULL;
5395 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01005396 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005397 int _mark = p->mark;
5398 { // param_no_default+ '/' ','
5399 if (p->error_indicator) {
5400 D(p->level--);
5401 return NULL;
5402 }
5403 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
5404 Token * _literal;
5405 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005406 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005407 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01005408 (a = (asdl_arg_seq*)_loop1_60_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005409 &&
5410 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
5411 &&
5412 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
5413 )
5414 {
5415 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
5416 _res = a;
5417 if (_res == NULL && PyErr_Occurred()) {
5418 p->error_indicator = 1;
5419 D(p->level--);
5420 return NULL;
5421 }
5422 goto done;
5423 }
5424 p->mark = _mark;
5425 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5426 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
5427 }
5428 { // param_no_default+ '/' &')'
5429 if (p->error_indicator) {
5430 D(p->level--);
5431 return NULL;
5432 }
5433 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
5434 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005435 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005436 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01005437 (a = (asdl_arg_seq*)_loop1_61_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005438 &&
5439 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
5440 &&
5441 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5442 )
5443 {
5444 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
5445 _res = a;
5446 if (_res == NULL && PyErr_Occurred()) {
5447 p->error_indicator = 1;
5448 D(p->level--);
5449 return NULL;
5450 }
5451 goto done;
5452 }
5453 p->mark = _mark;
5454 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5455 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
5456 }
5457 _res = NULL;
5458 done:
5459 D(p->level--);
5460 return _res;
5461}
5462
5463// slash_with_default:
5464// | param_no_default* param_with_default+ '/' ','
5465// | param_no_default* param_with_default+ '/' &')'
5466static SlashWithDefault*
5467slash_with_default_rule(Parser *p)
5468{
5469 D(p->level++);
5470 if (p->error_indicator) {
5471 D(p->level--);
5472 return NULL;
5473 }
5474 SlashWithDefault* _res = NULL;
5475 int _mark = p->mark;
5476 { // param_no_default* param_with_default+ '/' ','
5477 if (p->error_indicator) {
5478 D(p->level--);
5479 return NULL;
5480 }
5481 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
5482 Token * _literal;
5483 Token * _literal_1;
5484 asdl_seq * a;
5485 asdl_seq * b;
5486 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005487 (a = _loop0_62_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005488 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005489 (b = _loop1_63_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005490 &&
5491 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
5492 &&
5493 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
5494 )
5495 {
5496 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 +01005497 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005498 if (_res == NULL && PyErr_Occurred()) {
5499 p->error_indicator = 1;
5500 D(p->level--);
5501 return NULL;
5502 }
5503 goto done;
5504 }
5505 p->mark = _mark;
5506 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5507 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
5508 }
5509 { // param_no_default* param_with_default+ '/' &')'
5510 if (p->error_indicator) {
5511 D(p->level--);
5512 return NULL;
5513 }
5514 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
5515 Token * _literal;
5516 asdl_seq * a;
5517 asdl_seq * b;
5518 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005519 (a = _loop0_64_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005520 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005521 (b = _loop1_65_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005522 &&
5523 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
5524 &&
5525 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5526 )
5527 {
5528 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 +01005529 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005530 if (_res == NULL && PyErr_Occurred()) {
5531 p->error_indicator = 1;
5532 D(p->level--);
5533 return NULL;
5534 }
5535 goto done;
5536 }
5537 p->mark = _mark;
5538 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5539 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
5540 }
5541 _res = NULL;
5542 done:
5543 D(p->level--);
5544 return _res;
5545}
5546
5547// star_etc:
5548// | '*' param_no_default param_maybe_default* kwds?
5549// | '*' ',' param_maybe_default+ kwds?
5550// | kwds
5551// | invalid_star_etc
5552static StarEtc*
5553star_etc_rule(Parser *p)
5554{
5555 D(p->level++);
5556 if (p->error_indicator) {
5557 D(p->level--);
5558 return NULL;
5559 }
5560 StarEtc* _res = NULL;
5561 int _mark = p->mark;
5562 { // '*' param_no_default param_maybe_default* kwds?
5563 if (p->error_indicator) {
5564 D(p->level--);
5565 return NULL;
5566 }
5567 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
5568 Token * _literal;
5569 arg_ty a;
5570 asdl_seq * b;
5571 void *c;
5572 if (
5573 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
5574 &&
5575 (a = param_no_default_rule(p)) // param_no_default
5576 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005577 (b = _loop0_66_rule(p)) // param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005578 &&
5579 (c = kwds_rule(p), 1) // kwds?
5580 )
5581 {
5582 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
5583 _res = _PyPegen_star_etc ( p , a , b , c );
5584 if (_res == NULL && PyErr_Occurred()) {
5585 p->error_indicator = 1;
5586 D(p->level--);
5587 return NULL;
5588 }
5589 goto done;
5590 }
5591 p->mark = _mark;
5592 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5593 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
5594 }
5595 { // '*' ',' param_maybe_default+ kwds?
5596 if (p->error_indicator) {
5597 D(p->level--);
5598 return NULL;
5599 }
5600 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
5601 Token * _literal;
5602 Token * _literal_1;
5603 asdl_seq * b;
5604 void *c;
5605 if (
5606 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
5607 &&
5608 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
5609 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005610 (b = _loop1_67_rule(p)) // param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005611 &&
5612 (c = kwds_rule(p), 1) // kwds?
5613 )
5614 {
5615 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
5616 _res = _PyPegen_star_etc ( p , NULL , b , c );
5617 if (_res == NULL && PyErr_Occurred()) {
5618 p->error_indicator = 1;
5619 D(p->level--);
5620 return NULL;
5621 }
5622 goto done;
5623 }
5624 p->mark = _mark;
5625 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5626 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
5627 }
5628 { // kwds
5629 if (p->error_indicator) {
5630 D(p->level--);
5631 return NULL;
5632 }
5633 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
5634 arg_ty a;
5635 if (
5636 (a = kwds_rule(p)) // kwds
5637 )
5638 {
5639 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
5640 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
5641 if (_res == NULL && PyErr_Occurred()) {
5642 p->error_indicator = 1;
5643 D(p->level--);
5644 return NULL;
5645 }
5646 goto done;
5647 }
5648 p->mark = _mark;
5649 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5650 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
5651 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02005652 if (p->call_invalid_rules) { // invalid_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005653 if (p->error_indicator) {
5654 D(p->level--);
5655 return NULL;
5656 }
5657 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
5658 void *invalid_star_etc_var;
5659 if (
5660 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
5661 )
5662 {
5663 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
5664 _res = invalid_star_etc_var;
5665 goto done;
5666 }
5667 p->mark = _mark;
5668 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
5670 }
5671 _res = NULL;
5672 done:
5673 D(p->level--);
5674 return _res;
5675}
5676
5677// kwds: '**' param_no_default
5678static arg_ty
5679kwds_rule(Parser *p)
5680{
5681 D(p->level++);
5682 if (p->error_indicator) {
5683 D(p->level--);
5684 return NULL;
5685 }
5686 arg_ty _res = NULL;
5687 int _mark = p->mark;
5688 { // '**' param_no_default
5689 if (p->error_indicator) {
5690 D(p->level--);
5691 return NULL;
5692 }
5693 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
5694 Token * _literal;
5695 arg_ty a;
5696 if (
5697 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
5698 &&
5699 (a = param_no_default_rule(p)) // param_no_default
5700 )
5701 {
5702 D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
5703 _res = a;
5704 if (_res == NULL && PyErr_Occurred()) {
5705 p->error_indicator = 1;
5706 D(p->level--);
5707 return NULL;
5708 }
5709 goto done;
5710 }
5711 p->mark = _mark;
5712 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
5713 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
5714 }
5715 _res = NULL;
5716 done:
5717 D(p->level--);
5718 return _res;
5719}
5720
5721// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
5722static arg_ty
5723param_no_default_rule(Parser *p)
5724{
5725 D(p->level++);
5726 if (p->error_indicator) {
5727 D(p->level--);
5728 return NULL;
5729 }
5730 arg_ty _res = NULL;
5731 int _mark = p->mark;
5732 { // param ',' TYPE_COMMENT?
5733 if (p->error_indicator) {
5734 D(p->level--);
5735 return NULL;
5736 }
5737 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
5738 Token * _literal;
5739 arg_ty a;
5740 void *tc;
5741 if (
5742 (a = param_rule(p)) // param
5743 &&
5744 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5745 &&
5746 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5747 )
5748 {
5749 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
5750 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5751 if (_res == NULL && PyErr_Occurred()) {
5752 p->error_indicator = 1;
5753 D(p->level--);
5754 return NULL;
5755 }
5756 goto done;
5757 }
5758 p->mark = _mark;
5759 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5760 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
5761 }
5762 { // param TYPE_COMMENT? &')'
5763 if (p->error_indicator) {
5764 D(p->level--);
5765 return NULL;
5766 }
5767 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
5768 arg_ty a;
5769 void *tc;
5770 if (
5771 (a = param_rule(p)) // param
5772 &&
5773 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5774 &&
5775 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5776 )
5777 {
5778 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
5779 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5780 if (_res == NULL && PyErr_Occurred()) {
5781 p->error_indicator = 1;
5782 D(p->level--);
5783 return NULL;
5784 }
5785 goto done;
5786 }
5787 p->mark = _mark;
5788 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
5790 }
5791 _res = NULL;
5792 done:
5793 D(p->level--);
5794 return _res;
5795}
5796
5797// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
5798static NameDefaultPair*
5799param_with_default_rule(Parser *p)
5800{
5801 D(p->level++);
5802 if (p->error_indicator) {
5803 D(p->level--);
5804 return NULL;
5805 }
5806 NameDefaultPair* _res = NULL;
5807 int _mark = p->mark;
5808 { // param default ',' TYPE_COMMENT?
5809 if (p->error_indicator) {
5810 D(p->level--);
5811 return NULL;
5812 }
5813 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
5814 Token * _literal;
5815 arg_ty a;
5816 expr_ty c;
5817 void *tc;
5818 if (
5819 (a = param_rule(p)) // param
5820 &&
5821 (c = default_rule(p)) // default
5822 &&
5823 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5824 &&
5825 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5826 )
5827 {
5828 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
5829 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5830 if (_res == NULL && PyErr_Occurred()) {
5831 p->error_indicator = 1;
5832 D(p->level--);
5833 return NULL;
5834 }
5835 goto done;
5836 }
5837 p->mark = _mark;
5838 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5839 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
5840 }
5841 { // param default TYPE_COMMENT? &')'
5842 if (p->error_indicator) {
5843 D(p->level--);
5844 return NULL;
5845 }
5846 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
5847 arg_ty a;
5848 expr_ty c;
5849 void *tc;
5850 if (
5851 (a = param_rule(p)) // param
5852 &&
5853 (c = default_rule(p)) // default
5854 &&
5855 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5856 &&
5857 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5858 )
5859 {
5860 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
5861 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5862 if (_res == NULL && PyErr_Occurred()) {
5863 p->error_indicator = 1;
5864 D(p->level--);
5865 return NULL;
5866 }
5867 goto done;
5868 }
5869 p->mark = _mark;
5870 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5871 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
5872 }
5873 _res = NULL;
5874 done:
5875 D(p->level--);
5876 return _res;
5877}
5878
5879// param_maybe_default:
5880// | param default? ',' TYPE_COMMENT?
5881// | param default? TYPE_COMMENT? &')'
5882static NameDefaultPair*
5883param_maybe_default_rule(Parser *p)
5884{
5885 D(p->level++);
5886 if (p->error_indicator) {
5887 D(p->level--);
5888 return NULL;
5889 }
5890 NameDefaultPair* _res = NULL;
5891 int _mark = p->mark;
5892 { // param default? ',' TYPE_COMMENT?
5893 if (p->error_indicator) {
5894 D(p->level--);
5895 return NULL;
5896 }
5897 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
5898 Token * _literal;
5899 arg_ty a;
5900 void *c;
5901 void *tc;
5902 if (
5903 (a = param_rule(p)) // param
5904 &&
5905 (c = default_rule(p), 1) // default?
5906 &&
5907 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5908 &&
5909 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5910 )
5911 {
5912 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
5913 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5914 if (_res == NULL && PyErr_Occurred()) {
5915 p->error_indicator = 1;
5916 D(p->level--);
5917 return NULL;
5918 }
5919 goto done;
5920 }
5921 p->mark = _mark;
5922 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5923 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
5924 }
5925 { // param default? TYPE_COMMENT? &')'
5926 if (p->error_indicator) {
5927 D(p->level--);
5928 return NULL;
5929 }
5930 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
5931 arg_ty a;
5932 void *c;
5933 void *tc;
5934 if (
5935 (a = param_rule(p)) // param
5936 &&
5937 (c = default_rule(p), 1) // default?
5938 &&
5939 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5940 &&
5941 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5942 )
5943 {
5944 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
5945 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5946 if (_res == NULL && PyErr_Occurred()) {
5947 p->error_indicator = 1;
5948 D(p->level--);
5949 return NULL;
5950 }
5951 goto done;
5952 }
5953 p->mark = _mark;
5954 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
5956 }
5957 _res = NULL;
5958 done:
5959 D(p->level--);
5960 return _res;
5961}
5962
5963// param: NAME annotation?
5964static arg_ty
5965param_rule(Parser *p)
5966{
5967 D(p->level++);
5968 if (p->error_indicator) {
5969 D(p->level--);
5970 return NULL;
5971 }
5972 arg_ty _res = NULL;
5973 int _mark = p->mark;
5974 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5975 p->error_indicator = 1;
5976 D(p->level--);
5977 return NULL;
5978 }
5979 int _start_lineno = p->tokens[_mark]->lineno;
5980 UNUSED(_start_lineno); // Only used by EXTRA macro
5981 int _start_col_offset = p->tokens[_mark]->col_offset;
5982 UNUSED(_start_col_offset); // Only used by EXTRA macro
5983 { // NAME annotation?
5984 if (p->error_indicator) {
5985 D(p->level--);
5986 return NULL;
5987 }
5988 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
5989 expr_ty a;
5990 void *b;
5991 if (
5992 (a = _PyPegen_name_token(p)) // NAME
5993 &&
5994 (b = annotation_rule(p), 1) // annotation?
5995 )
5996 {
5997 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
5998 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5999 if (_token == NULL) {
6000 D(p->level--);
6001 return NULL;
6002 }
6003 int _end_lineno = _token->end_lineno;
6004 UNUSED(_end_lineno); // Only used by EXTRA macro
6005 int _end_col_offset = _token->end_col_offset;
6006 UNUSED(_end_col_offset); // Only used by EXTRA macro
6007 _res = _Py_arg ( a -> v . Name . id , b , NULL , EXTRA );
6008 if (_res == NULL && PyErr_Occurred()) {
6009 p->error_indicator = 1;
6010 D(p->level--);
6011 return NULL;
6012 }
6013 goto done;
6014 }
6015 p->mark = _mark;
6016 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
6017 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
6018 }
6019 _res = NULL;
6020 done:
6021 D(p->level--);
6022 return _res;
6023}
6024
6025// annotation: ':' expression
6026static expr_ty
6027annotation_rule(Parser *p)
6028{
6029 D(p->level++);
6030 if (p->error_indicator) {
6031 D(p->level--);
6032 return NULL;
6033 }
6034 expr_ty _res = NULL;
6035 int _mark = p->mark;
6036 { // ':' expression
6037 if (p->error_indicator) {
6038 D(p->level--);
6039 return NULL;
6040 }
6041 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
6042 Token * _literal;
6043 expr_ty a;
6044 if (
6045 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
6046 &&
6047 (a = expression_rule(p)) // expression
6048 )
6049 {
6050 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
6051 _res = a;
6052 if (_res == NULL && PyErr_Occurred()) {
6053 p->error_indicator = 1;
6054 D(p->level--);
6055 return NULL;
6056 }
6057 goto done;
6058 }
6059 p->mark = _mark;
6060 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
6061 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
6062 }
6063 _res = NULL;
6064 done:
6065 D(p->level--);
6066 return _res;
6067}
6068
6069// default: '=' expression
6070static expr_ty
6071default_rule(Parser *p)
6072{
6073 D(p->level++);
6074 if (p->error_indicator) {
6075 D(p->level--);
6076 return NULL;
6077 }
6078 expr_ty _res = NULL;
6079 int _mark = p->mark;
6080 { // '=' expression
6081 if (p->error_indicator) {
6082 D(p->level--);
6083 return NULL;
6084 }
6085 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
6086 Token * _literal;
6087 expr_ty a;
6088 if (
6089 (_literal = _PyPegen_expect_token(p, 22)) // token='='
6090 &&
6091 (a = expression_rule(p)) // expression
6092 )
6093 {
6094 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
6095 _res = a;
6096 if (_res == NULL && PyErr_Occurred()) {
6097 p->error_indicator = 1;
6098 D(p->level--);
6099 return NULL;
6100 }
6101 goto done;
6102 }
6103 p->mark = _mark;
6104 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
6105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
6106 }
6107 _res = NULL;
6108 done:
6109 D(p->level--);
6110 return _res;
6111}
6112
6113// decorators: (('@' named_expression NEWLINE))+
Pablo Galindoa5634c42020-09-16 19:42:00 +01006114static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006115decorators_rule(Parser *p)
6116{
6117 D(p->level++);
6118 if (p->error_indicator) {
6119 D(p->level--);
6120 return NULL;
6121 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01006122 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006123 int _mark = p->mark;
6124 { // (('@' named_expression NEWLINE))+
6125 if (p->error_indicator) {
6126 D(p->level--);
6127 return NULL;
6128 }
6129 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01006130 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006131 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01006132 (a = (asdl_expr_seq*)_loop1_68_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006133 )
6134 {
6135 D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
6136 _res = a;
6137 if (_res == NULL && PyErr_Occurred()) {
6138 p->error_indicator = 1;
6139 D(p->level--);
6140 return NULL;
6141 }
6142 goto done;
6143 }
6144 p->mark = _mark;
6145 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
6146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
6147 }
6148 _res = NULL;
6149 done:
6150 D(p->level--);
6151 return _res;
6152}
6153
6154// class_def: decorators class_def_raw | class_def_raw
6155static stmt_ty
6156class_def_rule(Parser *p)
6157{
6158 D(p->level++);
6159 if (p->error_indicator) {
6160 D(p->level--);
6161 return NULL;
6162 }
6163 stmt_ty _res = NULL;
6164 int _mark = p->mark;
6165 { // decorators class_def_raw
6166 if (p->error_indicator) {
6167 D(p->level--);
6168 return NULL;
6169 }
6170 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 +01006171 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006172 stmt_ty b;
6173 if (
6174 (a = decorators_rule(p)) // decorators
6175 &&
6176 (b = class_def_raw_rule(p)) // class_def_raw
6177 )
6178 {
6179 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
6180 _res = _PyPegen_class_def_decorators ( p , a , b );
6181 if (_res == NULL && PyErr_Occurred()) {
6182 p->error_indicator = 1;
6183 D(p->level--);
6184 return NULL;
6185 }
6186 goto done;
6187 }
6188 p->mark = _mark;
6189 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
6190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
6191 }
6192 { // class_def_raw
6193 if (p->error_indicator) {
6194 D(p->level--);
6195 return NULL;
6196 }
6197 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
6198 stmt_ty class_def_raw_var;
6199 if (
6200 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
6201 )
6202 {
6203 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
6204 _res = class_def_raw_var;
6205 goto done;
6206 }
6207 p->mark = _mark;
6208 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
6209 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
6210 }
6211 _res = NULL;
6212 done:
6213 D(p->level--);
6214 return _res;
6215}
6216
Pablo Galindo58fb1562021-02-02 19:54:22 +00006217// class_def_raw: 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006218static stmt_ty
6219class_def_raw_rule(Parser *p)
6220{
6221 D(p->level++);
6222 if (p->error_indicator) {
6223 D(p->level--);
6224 return NULL;
6225 }
6226 stmt_ty _res = NULL;
6227 int _mark = p->mark;
6228 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6229 p->error_indicator = 1;
6230 D(p->level--);
6231 return NULL;
6232 }
6233 int _start_lineno = p->tokens[_mark]->lineno;
6234 UNUSED(_start_lineno); // Only used by EXTRA macro
6235 int _start_col_offset = p->tokens[_mark]->col_offset;
6236 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo58fb1562021-02-02 19:54:22 +00006237 { // 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006238 if (p->error_indicator) {
6239 D(p->level--);
6240 return NULL;
6241 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00006242 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 +01006243 Token * _keyword;
6244 Token * _literal;
6245 expr_ty a;
6246 void *b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01006247 asdl_stmt_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006248 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006249 (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006250 &&
6251 (a = _PyPegen_name_token(p)) // NAME
6252 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006253 (b = _tmp_69_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006254 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00006255 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006256 &&
6257 (c = block_rule(p)) // block
6258 )
6259 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00006260 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 +01006261 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6262 if (_token == NULL) {
6263 D(p->level--);
6264 return NULL;
6265 }
6266 int _end_lineno = _token->end_lineno;
6267 UNUSED(_end_lineno); // Only used by EXTRA macro
6268 int _end_col_offset = _token->end_col_offset;
6269 UNUSED(_end_col_offset); // Only used by EXTRA macro
6270 _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 );
6271 if (_res == NULL && PyErr_Occurred()) {
6272 p->error_indicator = 1;
6273 D(p->level--);
6274 return NULL;
6275 }
6276 goto done;
6277 }
6278 p->mark = _mark;
6279 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00006280 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006281 }
6282 _res = NULL;
6283 done:
6284 D(p->level--);
6285 return _res;
6286}
6287
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006288// block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block
Pablo Galindoa5634c42020-09-16 19:42:00 +01006289static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006290block_rule(Parser *p)
6291{
6292 D(p->level++);
6293 if (p->error_indicator) {
6294 D(p->level--);
6295 return NULL;
6296 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01006297 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006298 if (_PyPegen_is_memoized(p, block_type, &_res)) {
6299 D(p->level--);
6300 return _res;
6301 }
6302 int _mark = p->mark;
6303 { // NEWLINE INDENT statements DEDENT
6304 if (p->error_indicator) {
6305 D(p->level--);
6306 return NULL;
6307 }
6308 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 +01006309 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006310 Token * dedent_var;
6311 Token * indent_var;
6312 Token * newline_var;
6313 if (
6314 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
6315 &&
6316 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
6317 &&
6318 (a = statements_rule(p)) // statements
6319 &&
6320 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
6321 )
6322 {
6323 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
6324 _res = a;
6325 if (_res == NULL && PyErr_Occurred()) {
6326 p->error_indicator = 1;
6327 D(p->level--);
6328 return NULL;
6329 }
6330 goto done;
6331 }
6332 p->mark = _mark;
6333 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6334 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
6335 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006336 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006337 if (p->error_indicator) {
6338 D(p->level--);
6339 return NULL;
6340 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006341 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
6342 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006343 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006344 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006345 )
6346 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006347 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
6348 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006349 goto done;
6350 }
6351 p->mark = _mark;
6352 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006354 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02006355 if (p->call_invalid_rules) { // invalid_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006356 if (p->error_indicator) {
6357 D(p->level--);
6358 return NULL;
6359 }
6360 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
6361 void *invalid_block_var;
6362 if (
6363 (invalid_block_var = invalid_block_rule(p)) // invalid_block
6364 )
6365 {
6366 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
6367 _res = invalid_block_var;
6368 goto done;
6369 }
6370 p->mark = _mark;
6371 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
6373 }
6374 _res = NULL;
6375 done:
6376 _PyPegen_insert_memo(p, _mark, block_type, _res);
6377 D(p->level--);
6378 return _res;
6379}
6380
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006381// star_expressions:
6382// | star_expression ((',' star_expression))+ ','?
6383// | star_expression ','
6384// | star_expression
6385static expr_ty
6386star_expressions_rule(Parser *p)
6387{
6388 D(p->level++);
6389 if (p->error_indicator) {
6390 D(p->level--);
6391 return NULL;
6392 }
6393 expr_ty _res = NULL;
6394 int _mark = p->mark;
6395 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6396 p->error_indicator = 1;
6397 D(p->level--);
6398 return NULL;
6399 }
6400 int _start_lineno = p->tokens[_mark]->lineno;
6401 UNUSED(_start_lineno); // Only used by EXTRA macro
6402 int _start_col_offset = p->tokens[_mark]->col_offset;
6403 UNUSED(_start_col_offset); // Only used by EXTRA macro
6404 { // star_expression ((',' star_expression))+ ','?
6405 if (p->error_indicator) {
6406 D(p->level--);
6407 return NULL;
6408 }
6409 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
6410 void *_opt_var;
6411 UNUSED(_opt_var); // Silence compiler warnings
6412 expr_ty a;
6413 asdl_seq * b;
6414 if (
6415 (a = star_expression_rule(p)) // star_expression
6416 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00006417 (b = _loop1_70_rule(p)) // ((',' star_expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006418 &&
6419 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6420 )
6421 {
6422 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
6423 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6424 if (_token == NULL) {
6425 D(p->level--);
6426 return NULL;
6427 }
6428 int _end_lineno = _token->end_lineno;
6429 UNUSED(_end_lineno); // Only used by EXTRA macro
6430 int _end_col_offset = _token->end_col_offset;
6431 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03006432 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006433 if (_res == NULL && PyErr_Occurred()) {
6434 p->error_indicator = 1;
6435 D(p->level--);
6436 return NULL;
6437 }
6438 goto done;
6439 }
6440 p->mark = _mark;
6441 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6442 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
6443 }
6444 { // star_expression ','
6445 if (p->error_indicator) {
6446 D(p->level--);
6447 return NULL;
6448 }
6449 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
6450 Token * _literal;
6451 expr_ty a;
6452 if (
6453 (a = star_expression_rule(p)) // star_expression
6454 &&
6455 (_literal = _PyPegen_expect_token(p, 12)) // token=','
6456 )
6457 {
6458 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
6459 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6460 if (_token == NULL) {
6461 D(p->level--);
6462 return NULL;
6463 }
6464 int _end_lineno = _token->end_lineno;
6465 UNUSED(_end_lineno); // Only used by EXTRA macro
6466 int _end_col_offset = _token->end_col_offset;
6467 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03006468 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006469 if (_res == NULL && PyErr_Occurred()) {
6470 p->error_indicator = 1;
6471 D(p->level--);
6472 return NULL;
6473 }
6474 goto done;
6475 }
6476 p->mark = _mark;
6477 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
6479 }
6480 { // star_expression
6481 if (p->error_indicator) {
6482 D(p->level--);
6483 return NULL;
6484 }
6485 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
6486 expr_ty star_expression_var;
6487 if (
6488 (star_expression_var = star_expression_rule(p)) // star_expression
6489 )
6490 {
6491 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
6492 _res = star_expression_var;
6493 goto done;
6494 }
6495 p->mark = _mark;
6496 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6497 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
6498 }
6499 _res = NULL;
6500 done:
6501 D(p->level--);
6502 return _res;
6503}
6504
6505// star_expression: '*' bitwise_or | expression
6506static expr_ty
6507star_expression_rule(Parser *p)
6508{
6509 D(p->level++);
6510 if (p->error_indicator) {
6511 D(p->level--);
6512 return NULL;
6513 }
6514 expr_ty _res = NULL;
6515 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
6516 D(p->level--);
6517 return _res;
6518 }
6519 int _mark = p->mark;
6520 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6521 p->error_indicator = 1;
6522 D(p->level--);
6523 return NULL;
6524 }
6525 int _start_lineno = p->tokens[_mark]->lineno;
6526 UNUSED(_start_lineno); // Only used by EXTRA macro
6527 int _start_col_offset = p->tokens[_mark]->col_offset;
6528 UNUSED(_start_col_offset); // Only used by EXTRA macro
6529 { // '*' bitwise_or
6530 if (p->error_indicator) {
6531 D(p->level--);
6532 return NULL;
6533 }
6534 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
6535 Token * _literal;
6536 expr_ty a;
6537 if (
6538 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
6539 &&
6540 (a = bitwise_or_rule(p)) // bitwise_or
6541 )
6542 {
6543 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
6544 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6545 if (_token == NULL) {
6546 D(p->level--);
6547 return NULL;
6548 }
6549 int _end_lineno = _token->end_lineno;
6550 UNUSED(_end_lineno); // Only used by EXTRA macro
6551 int _end_col_offset = _token->end_col_offset;
6552 UNUSED(_end_col_offset); // Only used by EXTRA macro
6553 _res = _Py_Starred ( a , Load , EXTRA );
6554 if (_res == NULL && PyErr_Occurred()) {
6555 p->error_indicator = 1;
6556 D(p->level--);
6557 return NULL;
6558 }
6559 goto done;
6560 }
6561 p->mark = _mark;
6562 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
6563 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
6564 }
6565 { // expression
6566 if (p->error_indicator) {
6567 D(p->level--);
6568 return NULL;
6569 }
6570 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
6571 expr_ty expression_var;
6572 if (
6573 (expression_var = expression_rule(p)) // expression
6574 )
6575 {
6576 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
6577 _res = expression_var;
6578 goto done;
6579 }
6580 p->mark = _mark;
6581 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
6582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
6583 }
6584 _res = NULL;
6585 done:
6586 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
6587 D(p->level--);
6588 return _res;
6589}
6590
6591// star_named_expressions: ','.star_named_expression+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +01006592static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006593star_named_expressions_rule(Parser *p)
6594{
6595 D(p->level++);
6596 if (p->error_indicator) {
6597 D(p->level--);
6598 return NULL;
6599 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01006600 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006601 int _mark = p->mark;
6602 { // ','.star_named_expression+ ','?
6603 if (p->error_indicator) {
6604 D(p->level--);
6605 return NULL;
6606 }
6607 D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
6608 void *_opt_var;
6609 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01006610 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006611 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00006612 (a = (asdl_expr_seq*)_gather_71_rule(p)) // ','.star_named_expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006613 &&
6614 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6615 )
6616 {
6617 D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
6618 _res = a;
6619 if (_res == NULL && PyErr_Occurred()) {
6620 p->error_indicator = 1;
6621 D(p->level--);
6622 return NULL;
6623 }
6624 goto done;
6625 }
6626 p->mark = _mark;
6627 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6628 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
6629 }
6630 _res = NULL;
6631 done:
6632 D(p->level--);
6633 return _res;
6634}
6635
6636// star_named_expression: '*' bitwise_or | named_expression
6637static expr_ty
6638star_named_expression_rule(Parser *p)
6639{
6640 D(p->level++);
6641 if (p->error_indicator) {
6642 D(p->level--);
6643 return NULL;
6644 }
6645 expr_ty _res = NULL;
6646 int _mark = p->mark;
6647 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6648 p->error_indicator = 1;
6649 D(p->level--);
6650 return NULL;
6651 }
6652 int _start_lineno = p->tokens[_mark]->lineno;
6653 UNUSED(_start_lineno); // Only used by EXTRA macro
6654 int _start_col_offset = p->tokens[_mark]->col_offset;
6655 UNUSED(_start_col_offset); // Only used by EXTRA macro
6656 { // '*' bitwise_or
6657 if (p->error_indicator) {
6658 D(p->level--);
6659 return NULL;
6660 }
6661 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
6662 Token * _literal;
6663 expr_ty a;
6664 if (
6665 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
6666 &&
6667 (a = bitwise_or_rule(p)) // bitwise_or
6668 )
6669 {
6670 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
6671 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6672 if (_token == NULL) {
6673 D(p->level--);
6674 return NULL;
6675 }
6676 int _end_lineno = _token->end_lineno;
6677 UNUSED(_end_lineno); // Only used by EXTRA macro
6678 int _end_col_offset = _token->end_col_offset;
6679 UNUSED(_end_col_offset); // Only used by EXTRA macro
6680 _res = _Py_Starred ( a , Load , EXTRA );
6681 if (_res == NULL && PyErr_Occurred()) {
6682 p->error_indicator = 1;
6683 D(p->level--);
6684 return NULL;
6685 }
6686 goto done;
6687 }
6688 p->mark = _mark;
6689 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
6691 }
6692 { // named_expression
6693 if (p->error_indicator) {
6694 D(p->level--);
6695 return NULL;
6696 }
6697 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
6698 expr_ty named_expression_var;
6699 if (
6700 (named_expression_var = named_expression_rule(p)) // named_expression
6701 )
6702 {
6703 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
6704 _res = named_expression_var;
6705 goto done;
6706 }
6707 p->mark = _mark;
6708 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6709 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
6710 }
6711 _res = NULL;
6712 done:
6713 D(p->level--);
6714 return _res;
6715}
6716
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006717// named_expression: NAME ':=' ~ expression | expression !':=' | invalid_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006718static expr_ty
6719named_expression_rule(Parser *p)
6720{
6721 D(p->level++);
6722 if (p->error_indicator) {
6723 D(p->level--);
6724 return NULL;
6725 }
6726 expr_ty _res = NULL;
6727 int _mark = p->mark;
6728 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6729 p->error_indicator = 1;
6730 D(p->level--);
6731 return NULL;
6732 }
6733 int _start_lineno = p->tokens[_mark]->lineno;
6734 UNUSED(_start_lineno); // Only used by EXTRA macro
6735 int _start_col_offset = p->tokens[_mark]->col_offset;
6736 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006737 { // NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006738 if (p->error_indicator) {
6739 D(p->level--);
6740 return NULL;
6741 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006742 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
6743 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006744 Token * _literal;
6745 expr_ty a;
6746 expr_ty b;
6747 if (
6748 (a = _PyPegen_name_token(p)) // NAME
6749 &&
6750 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
6751 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006752 (_cut_var = 1)
6753 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006754 (b = expression_rule(p)) // expression
6755 )
6756 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006757 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 +01006758 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6759 if (_token == NULL) {
6760 D(p->level--);
6761 return NULL;
6762 }
6763 int _end_lineno = _token->end_lineno;
6764 UNUSED(_end_lineno); // Only used by EXTRA macro
6765 int _end_col_offset = _token->end_col_offset;
6766 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03006767 _res = _Py_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006768 if (_res == NULL && PyErr_Occurred()) {
6769 p->error_indicator = 1;
6770 D(p->level--);
6771 return NULL;
6772 }
6773 goto done;
6774 }
6775 p->mark = _mark;
6776 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006777 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
6778 if (_cut_var) {
6779 D(p->level--);
6780 return NULL;
6781 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006782 }
6783 { // expression !':='
6784 if (p->error_indicator) {
6785 D(p->level--);
6786 return NULL;
6787 }
6788 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
6789 expr_ty expression_var;
6790 if (
6791 (expression_var = expression_rule(p)) // expression
6792 &&
6793 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
6794 )
6795 {
6796 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
6797 _res = expression_var;
6798 goto done;
6799 }
6800 p->mark = _mark;
6801 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
6803 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02006804 if (p->call_invalid_rules) { // invalid_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006805 if (p->error_indicator) {
6806 D(p->level--);
6807 return NULL;
6808 }
6809 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
6810 void *invalid_named_expression_var;
6811 if (
6812 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
6813 )
6814 {
6815 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
6816 _res = invalid_named_expression_var;
6817 goto done;
6818 }
6819 p->mark = _mark;
6820 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
6822 }
6823 _res = NULL;
6824 done:
6825 D(p->level--);
6826 return _res;
6827}
6828
6829// annotated_rhs: yield_expr | star_expressions
6830static expr_ty
6831annotated_rhs_rule(Parser *p)
6832{
6833 D(p->level++);
6834 if (p->error_indicator) {
6835 D(p->level--);
6836 return NULL;
6837 }
6838 expr_ty _res = NULL;
6839 int _mark = p->mark;
6840 { // yield_expr
6841 if (p->error_indicator) {
6842 D(p->level--);
6843 return NULL;
6844 }
6845 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
6846 expr_ty yield_expr_var;
6847 if (
6848 (yield_expr_var = yield_expr_rule(p)) // yield_expr
6849 )
6850 {
6851 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
6852 _res = yield_expr_var;
6853 goto done;
6854 }
6855 p->mark = _mark;
6856 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
6857 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
6858 }
6859 { // star_expressions
6860 if (p->error_indicator) {
6861 D(p->level--);
6862 return NULL;
6863 }
6864 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
6865 expr_ty star_expressions_var;
6866 if (
6867 (star_expressions_var = star_expressions_rule(p)) // star_expressions
6868 )
6869 {
6870 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
6871 _res = star_expressions_var;
6872 goto done;
6873 }
6874 p->mark = _mark;
6875 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
6876 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
6877 }
6878 _res = NULL;
6879 done:
6880 D(p->level--);
6881 return _res;
6882}
6883
6884// expressions: expression ((',' expression))+ ','? | expression ',' | expression
6885static expr_ty
6886expressions_rule(Parser *p)
6887{
6888 D(p->level++);
6889 if (p->error_indicator) {
6890 D(p->level--);
6891 return NULL;
6892 }
6893 expr_ty _res = NULL;
6894 int _mark = p->mark;
6895 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6896 p->error_indicator = 1;
6897 D(p->level--);
6898 return NULL;
6899 }
6900 int _start_lineno = p->tokens[_mark]->lineno;
6901 UNUSED(_start_lineno); // Only used by EXTRA macro
6902 int _start_col_offset = p->tokens[_mark]->col_offset;
6903 UNUSED(_start_col_offset); // Only used by EXTRA macro
6904 { // expression ((',' expression))+ ','?
6905 if (p->error_indicator) {
6906 D(p->level--);
6907 return NULL;
6908 }
6909 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
6910 void *_opt_var;
6911 UNUSED(_opt_var); // Silence compiler warnings
6912 expr_ty a;
6913 asdl_seq * b;
6914 if (
6915 (a = expression_rule(p)) // expression
6916 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00006917 (b = _loop1_73_rule(p)) // ((',' expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006918 &&
6919 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6920 )
6921 {
6922 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
6923 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6924 if (_token == NULL) {
6925 D(p->level--);
6926 return NULL;
6927 }
6928 int _end_lineno = _token->end_lineno;
6929 UNUSED(_end_lineno); // Only used by EXTRA macro
6930 int _end_col_offset = _token->end_col_offset;
6931 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03006932 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006933 if (_res == NULL && PyErr_Occurred()) {
6934 p->error_indicator = 1;
6935 D(p->level--);
6936 return NULL;
6937 }
6938 goto done;
6939 }
6940 p->mark = _mark;
6941 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6942 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
6943 }
6944 { // expression ','
6945 if (p->error_indicator) {
6946 D(p->level--);
6947 return NULL;
6948 }
6949 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
6950 Token * _literal;
6951 expr_ty a;
6952 if (
6953 (a = expression_rule(p)) // expression
6954 &&
6955 (_literal = _PyPegen_expect_token(p, 12)) // token=','
6956 )
6957 {
6958 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
6959 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6960 if (_token == NULL) {
6961 D(p->level--);
6962 return NULL;
6963 }
6964 int _end_lineno = _token->end_lineno;
6965 UNUSED(_end_lineno); // Only used by EXTRA macro
6966 int _end_col_offset = _token->end_col_offset;
6967 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03006968 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006969 if (_res == NULL && PyErr_Occurred()) {
6970 p->error_indicator = 1;
6971 D(p->level--);
6972 return NULL;
6973 }
6974 goto done;
6975 }
6976 p->mark = _mark;
6977 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6978 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
6979 }
6980 { // expression
6981 if (p->error_indicator) {
6982 D(p->level--);
6983 return NULL;
6984 }
6985 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
6986 expr_ty expression_var;
6987 if (
6988 (expression_var = expression_rule(p)) // expression
6989 )
6990 {
6991 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
6992 _res = expression_var;
6993 goto done;
6994 }
6995 p->mark = _mark;
6996 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
6998 }
6999 _res = NULL;
7000 done:
7001 D(p->level--);
7002 return _res;
7003}
7004
7005// expression: disjunction 'if' disjunction 'else' expression | disjunction | lambdef
7006static expr_ty
7007expression_rule(Parser *p)
7008{
7009 D(p->level++);
7010 if (p->error_indicator) {
7011 D(p->level--);
7012 return NULL;
7013 }
7014 expr_ty _res = NULL;
7015 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
7016 D(p->level--);
7017 return _res;
7018 }
7019 int _mark = p->mark;
7020 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7021 p->error_indicator = 1;
7022 D(p->level--);
7023 return NULL;
7024 }
7025 int _start_lineno = p->tokens[_mark]->lineno;
7026 UNUSED(_start_lineno); // Only used by EXTRA macro
7027 int _start_col_offset = p->tokens[_mark]->col_offset;
7028 UNUSED(_start_col_offset); // Only used by EXTRA macro
7029 { // disjunction 'if' disjunction 'else' expression
7030 if (p->error_indicator) {
7031 D(p->level--);
7032 return NULL;
7033 }
7034 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
7035 Token * _keyword;
7036 Token * _keyword_1;
7037 expr_ty a;
7038 expr_ty b;
7039 expr_ty c;
7040 if (
7041 (a = disjunction_rule(p)) // disjunction
7042 &&
7043 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
7044 &&
7045 (b = disjunction_rule(p)) // disjunction
7046 &&
7047 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
7048 &&
7049 (c = expression_rule(p)) // expression
7050 )
7051 {
7052 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
7053 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7054 if (_token == NULL) {
7055 D(p->level--);
7056 return NULL;
7057 }
7058 int _end_lineno = _token->end_lineno;
7059 UNUSED(_end_lineno); // Only used by EXTRA macro
7060 int _end_col_offset = _token->end_col_offset;
7061 UNUSED(_end_col_offset); // Only used by EXTRA macro
7062 _res = _Py_IfExp ( b , a , c , EXTRA );
7063 if (_res == NULL && PyErr_Occurred()) {
7064 p->error_indicator = 1;
7065 D(p->level--);
7066 return NULL;
7067 }
7068 goto done;
7069 }
7070 p->mark = _mark;
7071 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7072 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
7073 }
7074 { // disjunction
7075 if (p->error_indicator) {
7076 D(p->level--);
7077 return NULL;
7078 }
7079 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
7080 expr_ty disjunction_var;
7081 if (
7082 (disjunction_var = disjunction_rule(p)) // disjunction
7083 )
7084 {
7085 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
7086 _res = disjunction_var;
7087 goto done;
7088 }
7089 p->mark = _mark;
7090 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7091 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
7092 }
7093 { // lambdef
7094 if (p->error_indicator) {
7095 D(p->level--);
7096 return NULL;
7097 }
7098 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
7099 expr_ty lambdef_var;
7100 if (
7101 (lambdef_var = lambdef_rule(p)) // lambdef
7102 )
7103 {
7104 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
7105 _res = lambdef_var;
7106 goto done;
7107 }
7108 p->mark = _mark;
7109 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7110 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
7111 }
7112 _res = NULL;
7113 done:
7114 _PyPegen_insert_memo(p, _mark, expression_type, _res);
7115 D(p->level--);
7116 return _res;
7117}
7118
7119// lambdef: 'lambda' lambda_params? ':' expression
7120static expr_ty
7121lambdef_rule(Parser *p)
7122{
7123 D(p->level++);
7124 if (p->error_indicator) {
7125 D(p->level--);
7126 return NULL;
7127 }
7128 expr_ty _res = NULL;
7129 int _mark = p->mark;
7130 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7131 p->error_indicator = 1;
7132 D(p->level--);
7133 return NULL;
7134 }
7135 int _start_lineno = p->tokens[_mark]->lineno;
7136 UNUSED(_start_lineno); // Only used by EXTRA macro
7137 int _start_col_offset = p->tokens[_mark]->col_offset;
7138 UNUSED(_start_col_offset); // Only used by EXTRA macro
7139 { // 'lambda' lambda_params? ':' expression
7140 if (p->error_indicator) {
7141 D(p->level--);
7142 return NULL;
7143 }
7144 D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
7145 Token * _keyword;
7146 Token * _literal;
7147 void *a;
7148 expr_ty b;
7149 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03007150 (_keyword = _PyPegen_expect_token(p, 525)) // token='lambda'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007151 &&
7152 (a = lambda_params_rule(p), 1) // lambda_params?
7153 &&
7154 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
7155 &&
7156 (b = expression_rule(p)) // expression
7157 )
7158 {
7159 D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
7160 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7161 if (_token == NULL) {
7162 D(p->level--);
7163 return NULL;
7164 }
7165 int _end_lineno = _token->end_lineno;
7166 UNUSED(_end_lineno); // Only used by EXTRA macro
7167 int _end_col_offset = _token->end_col_offset;
7168 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03007169 _res = _Py_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007170 if (_res == NULL && PyErr_Occurred()) {
7171 p->error_indicator = 1;
7172 D(p->level--);
7173 return NULL;
7174 }
7175 goto done;
7176 }
7177 p->mark = _mark;
7178 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
7179 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
7180 }
7181 _res = NULL;
7182 done:
7183 D(p->level--);
7184 return _res;
7185}
7186
7187// lambda_params: invalid_lambda_parameters | lambda_parameters
7188static arguments_ty
7189lambda_params_rule(Parser *p)
7190{
7191 D(p->level++);
7192 if (p->error_indicator) {
7193 D(p->level--);
7194 return NULL;
7195 }
7196 arguments_ty _res = NULL;
7197 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02007198 if (p->call_invalid_rules) { // invalid_lambda_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007199 if (p->error_indicator) {
7200 D(p->level--);
7201 return NULL;
7202 }
7203 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
7204 void *invalid_lambda_parameters_var;
7205 if (
7206 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
7207 )
7208 {
7209 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
7210 _res = invalid_lambda_parameters_var;
7211 goto done;
7212 }
7213 p->mark = _mark;
7214 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
7215 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
7216 }
7217 { // lambda_parameters
7218 if (p->error_indicator) {
7219 D(p->level--);
7220 return NULL;
7221 }
7222 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
7223 arguments_ty lambda_parameters_var;
7224 if (
7225 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
7226 )
7227 {
7228 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
7229 _res = lambda_parameters_var;
7230 goto done;
7231 }
7232 p->mark = _mark;
7233 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
7234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
7235 }
7236 _res = NULL;
7237 done:
7238 D(p->level--);
7239 return _res;
7240}
7241
7242// lambda_parameters:
7243// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
7244// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
7245// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
7246// | lambda_param_with_default+ lambda_star_etc?
7247// | lambda_star_etc
7248static arguments_ty
7249lambda_parameters_rule(Parser *p)
7250{
7251 D(p->level++);
7252 if (p->error_indicator) {
7253 D(p->level--);
7254 return NULL;
7255 }
7256 arguments_ty _res = NULL;
7257 int _mark = p->mark;
7258 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
7259 if (p->error_indicator) {
7260 D(p->level--);
7261 return NULL;
7262 }
7263 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 +01007264 asdl_arg_seq* a;
7265 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007266 asdl_seq * c;
7267 void *d;
7268 if (
7269 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
7270 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007271 (b = (asdl_arg_seq*)_loop0_74_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007272 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007273 (c = _loop0_75_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007274 &&
7275 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
7276 )
7277 {
7278 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?"));
7279 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
7280 if (_res == NULL && PyErr_Occurred()) {
7281 p->error_indicator = 1;
7282 D(p->level--);
7283 return NULL;
7284 }
7285 goto done;
7286 }
7287 p->mark = _mark;
7288 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7289 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
7290 }
7291 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
7292 if (p->error_indicator) {
7293 D(p->level--);
7294 return NULL;
7295 }
7296 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?"));
7297 SlashWithDefault* a;
7298 asdl_seq * b;
7299 void *c;
7300 if (
7301 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
7302 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007303 (b = _loop0_76_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007304 &&
7305 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
7306 )
7307 {
7308 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?"));
7309 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
7310 if (_res == NULL && PyErr_Occurred()) {
7311 p->error_indicator = 1;
7312 D(p->level--);
7313 return NULL;
7314 }
7315 goto done;
7316 }
7317 p->mark = _mark;
7318 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7319 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
7320 }
7321 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
7322 if (p->error_indicator) {
7323 D(p->level--);
7324 return NULL;
7325 }
7326 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 +01007327 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007328 asdl_seq * b;
7329 void *c;
7330 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007331 (a = (asdl_arg_seq*)_loop1_77_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007332 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007333 (b = _loop0_78_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007334 &&
7335 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
7336 )
7337 {
7338 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?"));
7339 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
7340 if (_res == NULL && PyErr_Occurred()) {
7341 p->error_indicator = 1;
7342 D(p->level--);
7343 return NULL;
7344 }
7345 goto done;
7346 }
7347 p->mark = _mark;
7348 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
7350 }
7351 { // lambda_param_with_default+ lambda_star_etc?
7352 if (p->error_indicator) {
7353 D(p->level--);
7354 return NULL;
7355 }
7356 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
7357 asdl_seq * a;
7358 void *b;
7359 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007360 (a = _loop1_79_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007361 &&
7362 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
7363 )
7364 {
7365 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
7366 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
7367 if (_res == NULL && PyErr_Occurred()) {
7368 p->error_indicator = 1;
7369 D(p->level--);
7370 return NULL;
7371 }
7372 goto done;
7373 }
7374 p->mark = _mark;
7375 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7376 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
7377 }
7378 { // lambda_star_etc
7379 if (p->error_indicator) {
7380 D(p->level--);
7381 return NULL;
7382 }
7383 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
7384 StarEtc* a;
7385 if (
7386 (a = lambda_star_etc_rule(p)) // lambda_star_etc
7387 )
7388 {
7389 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
7390 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
7391 if (_res == NULL && PyErr_Occurred()) {
7392 p->error_indicator = 1;
7393 D(p->level--);
7394 return NULL;
7395 }
7396 goto done;
7397 }
7398 p->mark = _mark;
7399 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7400 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
7401 }
7402 _res = NULL;
7403 done:
7404 D(p->level--);
7405 return _res;
7406}
7407
7408// lambda_slash_no_default:
7409// | lambda_param_no_default+ '/' ','
7410// | lambda_param_no_default+ '/' &':'
Pablo Galindoa5634c42020-09-16 19:42:00 +01007411static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007412lambda_slash_no_default_rule(Parser *p)
7413{
7414 D(p->level++);
7415 if (p->error_indicator) {
7416 D(p->level--);
7417 return NULL;
7418 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01007419 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007420 int _mark = p->mark;
7421 { // lambda_param_no_default+ '/' ','
7422 if (p->error_indicator) {
7423 D(p->level--);
7424 return NULL;
7425 }
7426 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
7427 Token * _literal;
7428 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007429 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007430 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007431 (a = (asdl_arg_seq*)_loop1_80_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007432 &&
7433 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7434 &&
7435 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7436 )
7437 {
7438 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
7439 _res = a;
7440 if (_res == NULL && PyErr_Occurred()) {
7441 p->error_indicator = 1;
7442 D(p->level--);
7443 return NULL;
7444 }
7445 goto done;
7446 }
7447 p->mark = _mark;
7448 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7449 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
7450 }
7451 { // lambda_param_no_default+ '/' &':'
7452 if (p->error_indicator) {
7453 D(p->level--);
7454 return NULL;
7455 }
7456 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
7457 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007458 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007459 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007460 (a = (asdl_arg_seq*)_loop1_81_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007461 &&
7462 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7463 &&
7464 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
7465 )
7466 {
7467 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
7468 _res = a;
7469 if (_res == NULL && PyErr_Occurred()) {
7470 p->error_indicator = 1;
7471 D(p->level--);
7472 return NULL;
7473 }
7474 goto done;
7475 }
7476 p->mark = _mark;
7477 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
7479 }
7480 _res = NULL;
7481 done:
7482 D(p->level--);
7483 return _res;
7484}
7485
7486// lambda_slash_with_default:
7487// | lambda_param_no_default* lambda_param_with_default+ '/' ','
7488// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
7489static SlashWithDefault*
7490lambda_slash_with_default_rule(Parser *p)
7491{
7492 D(p->level++);
7493 if (p->error_indicator) {
7494 D(p->level--);
7495 return NULL;
7496 }
7497 SlashWithDefault* _res = NULL;
7498 int _mark = p->mark;
7499 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
7500 if (p->error_indicator) {
7501 D(p->level--);
7502 return NULL;
7503 }
7504 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+ '/' ','"));
7505 Token * _literal;
7506 Token * _literal_1;
7507 asdl_seq * a;
7508 asdl_seq * b;
7509 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007510 (a = _loop0_82_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007511 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007512 (b = _loop1_83_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007513 &&
7514 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7515 &&
7516 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7517 )
7518 {
7519 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 +01007520 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007521 if (_res == NULL && PyErr_Occurred()) {
7522 p->error_indicator = 1;
7523 D(p->level--);
7524 return NULL;
7525 }
7526 goto done;
7527 }
7528 p->mark = _mark;
7529 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7530 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
7531 }
7532 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
7533 if (p->error_indicator) {
7534 D(p->level--);
7535 return NULL;
7536 }
7537 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+ '/' &':'"));
7538 Token * _literal;
7539 asdl_seq * a;
7540 asdl_seq * b;
7541 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007542 (a = _loop0_84_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007543 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007544 (b = _loop1_85_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007545 &&
7546 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7547 &&
7548 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
7549 )
7550 {
7551 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 +01007552 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007553 if (_res == NULL && PyErr_Occurred()) {
7554 p->error_indicator = 1;
7555 D(p->level--);
7556 return NULL;
7557 }
7558 goto done;
7559 }
7560 p->mark = _mark;
7561 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
7563 }
7564 _res = NULL;
7565 done:
7566 D(p->level--);
7567 return _res;
7568}
7569
7570// lambda_star_etc:
7571// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
7572// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
7573// | lambda_kwds
7574// | invalid_lambda_star_etc
7575static StarEtc*
7576lambda_star_etc_rule(Parser *p)
7577{
7578 D(p->level++);
7579 if (p->error_indicator) {
7580 D(p->level--);
7581 return NULL;
7582 }
7583 StarEtc* _res = NULL;
7584 int _mark = p->mark;
7585 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
7586 if (p->error_indicator) {
7587 D(p->level--);
7588 return NULL;
7589 }
7590 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?"));
7591 Token * _literal;
7592 arg_ty a;
7593 asdl_seq * b;
7594 void *c;
7595 if (
7596 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7597 &&
7598 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
7599 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007600 (b = _loop0_86_rule(p)) // lambda_param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007601 &&
7602 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
7603 )
7604 {
7605 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?"));
7606 _res = _PyPegen_star_etc ( p , a , b , c );
7607 if (_res == NULL && PyErr_Occurred()) {
7608 p->error_indicator = 1;
7609 D(p->level--);
7610 return NULL;
7611 }
7612 goto done;
7613 }
7614 p->mark = _mark;
7615 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
7617 }
7618 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
7619 if (p->error_indicator) {
7620 D(p->level--);
7621 return NULL;
7622 }
7623 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
7624 Token * _literal;
7625 Token * _literal_1;
7626 asdl_seq * b;
7627 void *c;
7628 if (
7629 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7630 &&
7631 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7632 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007633 (b = _loop1_87_rule(p)) // lambda_param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007634 &&
7635 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
7636 )
7637 {
7638 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
7639 _res = _PyPegen_star_etc ( p , NULL , b , c );
7640 if (_res == NULL && PyErr_Occurred()) {
7641 p->error_indicator = 1;
7642 D(p->level--);
7643 return NULL;
7644 }
7645 goto done;
7646 }
7647 p->mark = _mark;
7648 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
7650 }
7651 { // lambda_kwds
7652 if (p->error_indicator) {
7653 D(p->level--);
7654 return NULL;
7655 }
7656 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
7657 arg_ty a;
7658 if (
7659 (a = lambda_kwds_rule(p)) // lambda_kwds
7660 )
7661 {
7662 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
7663 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
7664 if (_res == NULL && PyErr_Occurred()) {
7665 p->error_indicator = 1;
7666 D(p->level--);
7667 return NULL;
7668 }
7669 goto done;
7670 }
7671 p->mark = _mark;
7672 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7673 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
7674 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02007675 if (p->call_invalid_rules) { // invalid_lambda_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007676 if (p->error_indicator) {
7677 D(p->level--);
7678 return NULL;
7679 }
7680 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
7681 void *invalid_lambda_star_etc_var;
7682 if (
7683 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
7684 )
7685 {
7686 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
7687 _res = invalid_lambda_star_etc_var;
7688 goto done;
7689 }
7690 p->mark = _mark;
7691 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
7693 }
7694 _res = NULL;
7695 done:
7696 D(p->level--);
7697 return _res;
7698}
7699
7700// lambda_kwds: '**' lambda_param_no_default
7701static arg_ty
7702lambda_kwds_rule(Parser *p)
7703{
7704 D(p->level++);
7705 if (p->error_indicator) {
7706 D(p->level--);
7707 return NULL;
7708 }
7709 arg_ty _res = NULL;
7710 int _mark = p->mark;
7711 { // '**' lambda_param_no_default
7712 if (p->error_indicator) {
7713 D(p->level--);
7714 return NULL;
7715 }
7716 D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
7717 Token * _literal;
7718 arg_ty a;
7719 if (
7720 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
7721 &&
7722 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
7723 )
7724 {
7725 D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
7726 _res = a;
7727 if (_res == NULL && PyErr_Occurred()) {
7728 p->error_indicator = 1;
7729 D(p->level--);
7730 return NULL;
7731 }
7732 goto done;
7733 }
7734 p->mark = _mark;
7735 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
7736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
7737 }
7738 _res = NULL;
7739 done:
7740 D(p->level--);
7741 return _res;
7742}
7743
7744// lambda_param_no_default: lambda_param ',' | lambda_param &':'
7745static arg_ty
7746lambda_param_no_default_rule(Parser *p)
7747{
7748 D(p->level++);
7749 if (p->error_indicator) {
7750 D(p->level--);
7751 return NULL;
7752 }
7753 arg_ty _res = NULL;
7754 int _mark = p->mark;
7755 { // lambda_param ','
7756 if (p->error_indicator) {
7757 D(p->level--);
7758 return NULL;
7759 }
7760 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
7761 Token * _literal;
7762 arg_ty a;
7763 if (
7764 (a = lambda_param_rule(p)) // lambda_param
7765 &&
7766 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7767 )
7768 {
7769 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
7770 _res = a;
7771 if (_res == NULL && PyErr_Occurred()) {
7772 p->error_indicator = 1;
7773 D(p->level--);
7774 return NULL;
7775 }
7776 goto done;
7777 }
7778 p->mark = _mark;
7779 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
7781 }
7782 { // lambda_param &':'
7783 if (p->error_indicator) {
7784 D(p->level--);
7785 return NULL;
7786 }
7787 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
7788 arg_ty a;
7789 if (
7790 (a = lambda_param_rule(p)) // lambda_param
7791 &&
7792 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
7793 )
7794 {
7795 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
7796 _res = a;
7797 if (_res == NULL && PyErr_Occurred()) {
7798 p->error_indicator = 1;
7799 D(p->level--);
7800 return NULL;
7801 }
7802 goto done;
7803 }
7804 p->mark = _mark;
7805 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7806 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
7807 }
7808 _res = NULL;
7809 done:
7810 D(p->level--);
7811 return _res;
7812}
7813
7814// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
7815static NameDefaultPair*
7816lambda_param_with_default_rule(Parser *p)
7817{
7818 D(p->level++);
7819 if (p->error_indicator) {
7820 D(p->level--);
7821 return NULL;
7822 }
7823 NameDefaultPair* _res = NULL;
7824 int _mark = p->mark;
7825 { // lambda_param default ','
7826 if (p->error_indicator) {
7827 D(p->level--);
7828 return NULL;
7829 }
7830 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
7831 Token * _literal;
7832 arg_ty a;
7833 expr_ty c;
7834 if (
7835 (a = lambda_param_rule(p)) // lambda_param
7836 &&
7837 (c = default_rule(p)) // default
7838 &&
7839 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7840 )
7841 {
7842 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
7843 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7844 if (_res == NULL && PyErr_Occurred()) {
7845 p->error_indicator = 1;
7846 D(p->level--);
7847 return NULL;
7848 }
7849 goto done;
7850 }
7851 p->mark = _mark;
7852 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7853 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
7854 }
7855 { // lambda_param default &':'
7856 if (p->error_indicator) {
7857 D(p->level--);
7858 return NULL;
7859 }
7860 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
7861 arg_ty a;
7862 expr_ty c;
7863 if (
7864 (a = lambda_param_rule(p)) // lambda_param
7865 &&
7866 (c = default_rule(p)) // default
7867 &&
7868 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
7869 )
7870 {
7871 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
7872 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7873 if (_res == NULL && PyErr_Occurred()) {
7874 p->error_indicator = 1;
7875 D(p->level--);
7876 return NULL;
7877 }
7878 goto done;
7879 }
7880 p->mark = _mark;
7881 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7882 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
7883 }
7884 _res = NULL;
7885 done:
7886 D(p->level--);
7887 return _res;
7888}
7889
7890// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
7891static NameDefaultPair*
7892lambda_param_maybe_default_rule(Parser *p)
7893{
7894 D(p->level++);
7895 if (p->error_indicator) {
7896 D(p->level--);
7897 return NULL;
7898 }
7899 NameDefaultPair* _res = NULL;
7900 int _mark = p->mark;
7901 { // lambda_param default? ','
7902 if (p->error_indicator) {
7903 D(p->level--);
7904 return NULL;
7905 }
7906 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
7907 Token * _literal;
7908 arg_ty a;
7909 void *c;
7910 if (
7911 (a = lambda_param_rule(p)) // lambda_param
7912 &&
7913 (c = default_rule(p), 1) // default?
7914 &&
7915 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7916 )
7917 {
7918 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
7919 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7920 if (_res == NULL && PyErr_Occurred()) {
7921 p->error_indicator = 1;
7922 D(p->level--);
7923 return NULL;
7924 }
7925 goto done;
7926 }
7927 p->mark = _mark;
7928 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
7929 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
7930 }
7931 { // lambda_param default? &':'
7932 if (p->error_indicator) {
7933 D(p->level--);
7934 return NULL;
7935 }
7936 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
7937 arg_ty a;
7938 void *c;
7939 if (
7940 (a = lambda_param_rule(p)) // lambda_param
7941 &&
7942 (c = default_rule(p), 1) // default?
7943 &&
7944 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
7945 )
7946 {
7947 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
7948 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7949 if (_res == NULL && PyErr_Occurred()) {
7950 p->error_indicator = 1;
7951 D(p->level--);
7952 return NULL;
7953 }
7954 goto done;
7955 }
7956 p->mark = _mark;
7957 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
7958 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
7959 }
7960 _res = NULL;
7961 done:
7962 D(p->level--);
7963 return _res;
7964}
7965
7966// lambda_param: NAME
7967static arg_ty
7968lambda_param_rule(Parser *p)
7969{
7970 D(p->level++);
7971 if (p->error_indicator) {
7972 D(p->level--);
7973 return NULL;
7974 }
7975 arg_ty _res = NULL;
7976 int _mark = p->mark;
7977 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7978 p->error_indicator = 1;
7979 D(p->level--);
7980 return NULL;
7981 }
7982 int _start_lineno = p->tokens[_mark]->lineno;
7983 UNUSED(_start_lineno); // Only used by EXTRA macro
7984 int _start_col_offset = p->tokens[_mark]->col_offset;
7985 UNUSED(_start_col_offset); // Only used by EXTRA macro
7986 { // NAME
7987 if (p->error_indicator) {
7988 D(p->level--);
7989 return NULL;
7990 }
7991 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
7992 expr_ty a;
7993 if (
7994 (a = _PyPegen_name_token(p)) // NAME
7995 )
7996 {
7997 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
7998 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7999 if (_token == NULL) {
8000 D(p->level--);
8001 return NULL;
8002 }
8003 int _end_lineno = _token->end_lineno;
8004 UNUSED(_end_lineno); // Only used by EXTRA macro
8005 int _end_col_offset = _token->end_col_offset;
8006 UNUSED(_end_col_offset); // Only used by EXTRA macro
8007 _res = _Py_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
8008 if (_res == NULL && PyErr_Occurred()) {
8009 p->error_indicator = 1;
8010 D(p->level--);
8011 return NULL;
8012 }
8013 goto done;
8014 }
8015 p->mark = _mark;
8016 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
8017 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
8018 }
8019 _res = NULL;
8020 done:
8021 D(p->level--);
8022 return _res;
8023}
8024
8025// disjunction: conjunction (('or' conjunction))+ | conjunction
8026static expr_ty
8027disjunction_rule(Parser *p)
8028{
8029 D(p->level++);
8030 if (p->error_indicator) {
8031 D(p->level--);
8032 return NULL;
8033 }
8034 expr_ty _res = NULL;
8035 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
8036 D(p->level--);
8037 return _res;
8038 }
8039 int _mark = p->mark;
8040 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8041 p->error_indicator = 1;
8042 D(p->level--);
8043 return NULL;
8044 }
8045 int _start_lineno = p->tokens[_mark]->lineno;
8046 UNUSED(_start_lineno); // Only used by EXTRA macro
8047 int _start_col_offset = p->tokens[_mark]->col_offset;
8048 UNUSED(_start_col_offset); // Only used by EXTRA macro
8049 { // conjunction (('or' conjunction))+
8050 if (p->error_indicator) {
8051 D(p->level--);
8052 return NULL;
8053 }
8054 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
8055 expr_ty a;
8056 asdl_seq * b;
8057 if (
8058 (a = conjunction_rule(p)) // conjunction
8059 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00008060 (b = _loop1_88_rule(p)) // (('or' conjunction))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008061 )
8062 {
8063 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
8064 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8065 if (_token == NULL) {
8066 D(p->level--);
8067 return NULL;
8068 }
8069 int _end_lineno = _token->end_lineno;
8070 UNUSED(_end_lineno); // Only used by EXTRA macro
8071 int _end_col_offset = _token->end_col_offset;
8072 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03008073 _res = _Py_BoolOp ( Or , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008074 if (_res == NULL && PyErr_Occurred()) {
8075 p->error_indicator = 1;
8076 D(p->level--);
8077 return NULL;
8078 }
8079 goto done;
8080 }
8081 p->mark = _mark;
8082 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
8083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
8084 }
8085 { // conjunction
8086 if (p->error_indicator) {
8087 D(p->level--);
8088 return NULL;
8089 }
8090 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
8091 expr_ty conjunction_var;
8092 if (
8093 (conjunction_var = conjunction_rule(p)) // conjunction
8094 )
8095 {
8096 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
8097 _res = conjunction_var;
8098 goto done;
8099 }
8100 p->mark = _mark;
8101 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
8102 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
8103 }
8104 _res = NULL;
8105 done:
8106 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
8107 D(p->level--);
8108 return _res;
8109}
8110
8111// conjunction: inversion (('and' inversion))+ | inversion
8112static expr_ty
8113conjunction_rule(Parser *p)
8114{
8115 D(p->level++);
8116 if (p->error_indicator) {
8117 D(p->level--);
8118 return NULL;
8119 }
8120 expr_ty _res = NULL;
8121 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
8122 D(p->level--);
8123 return _res;
8124 }
8125 int _mark = p->mark;
8126 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8127 p->error_indicator = 1;
8128 D(p->level--);
8129 return NULL;
8130 }
8131 int _start_lineno = p->tokens[_mark]->lineno;
8132 UNUSED(_start_lineno); // Only used by EXTRA macro
8133 int _start_col_offset = p->tokens[_mark]->col_offset;
8134 UNUSED(_start_col_offset); // Only used by EXTRA macro
8135 { // inversion (('and' inversion))+
8136 if (p->error_indicator) {
8137 D(p->level--);
8138 return NULL;
8139 }
8140 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
8141 expr_ty a;
8142 asdl_seq * b;
8143 if (
8144 (a = inversion_rule(p)) // inversion
8145 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00008146 (b = _loop1_89_rule(p)) // (('and' inversion))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008147 )
8148 {
8149 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
8150 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8151 if (_token == NULL) {
8152 D(p->level--);
8153 return NULL;
8154 }
8155 int _end_lineno = _token->end_lineno;
8156 UNUSED(_end_lineno); // Only used by EXTRA macro
8157 int _end_col_offset = _token->end_col_offset;
8158 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03008159 _res = _Py_BoolOp ( And , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008160 if (_res == NULL && PyErr_Occurred()) {
8161 p->error_indicator = 1;
8162 D(p->level--);
8163 return NULL;
8164 }
8165 goto done;
8166 }
8167 p->mark = _mark;
8168 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
8169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
8170 }
8171 { // inversion
8172 if (p->error_indicator) {
8173 D(p->level--);
8174 return NULL;
8175 }
8176 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
8177 expr_ty inversion_var;
8178 if (
8179 (inversion_var = inversion_rule(p)) // inversion
8180 )
8181 {
8182 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
8183 _res = inversion_var;
8184 goto done;
8185 }
8186 p->mark = _mark;
8187 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
8188 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
8189 }
8190 _res = NULL;
8191 done:
8192 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
8193 D(p->level--);
8194 return _res;
8195}
8196
8197// inversion: 'not' inversion | comparison
8198static expr_ty
8199inversion_rule(Parser *p)
8200{
8201 D(p->level++);
8202 if (p->error_indicator) {
8203 D(p->level--);
8204 return NULL;
8205 }
8206 expr_ty _res = NULL;
8207 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
8208 D(p->level--);
8209 return _res;
8210 }
8211 int _mark = p->mark;
8212 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8213 p->error_indicator = 1;
8214 D(p->level--);
8215 return NULL;
8216 }
8217 int _start_lineno = p->tokens[_mark]->lineno;
8218 UNUSED(_start_lineno); // Only used by EXTRA macro
8219 int _start_col_offset = p->tokens[_mark]->col_offset;
8220 UNUSED(_start_col_offset); // Only used by EXTRA macro
8221 { // 'not' inversion
8222 if (p->error_indicator) {
8223 D(p->level--);
8224 return NULL;
8225 }
8226 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
8227 Token * _keyword;
8228 expr_ty a;
8229 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03008230 (_keyword = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008231 &&
8232 (a = inversion_rule(p)) // inversion
8233 )
8234 {
8235 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
8236 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8237 if (_token == NULL) {
8238 D(p->level--);
8239 return NULL;
8240 }
8241 int _end_lineno = _token->end_lineno;
8242 UNUSED(_end_lineno); // Only used by EXTRA macro
8243 int _end_col_offset = _token->end_col_offset;
8244 UNUSED(_end_col_offset); // Only used by EXTRA macro
8245 _res = _Py_UnaryOp ( Not , a , EXTRA );
8246 if (_res == NULL && PyErr_Occurred()) {
8247 p->error_indicator = 1;
8248 D(p->level--);
8249 return NULL;
8250 }
8251 goto done;
8252 }
8253 p->mark = _mark;
8254 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
8255 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
8256 }
8257 { // comparison
8258 if (p->error_indicator) {
8259 D(p->level--);
8260 return NULL;
8261 }
8262 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
8263 expr_ty comparison_var;
8264 if (
8265 (comparison_var = comparison_rule(p)) // comparison
8266 )
8267 {
8268 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
8269 _res = comparison_var;
8270 goto done;
8271 }
8272 p->mark = _mark;
8273 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
8274 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
8275 }
8276 _res = NULL;
8277 done:
8278 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
8279 D(p->level--);
8280 return _res;
8281}
8282
8283// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
8284static expr_ty
8285comparison_rule(Parser *p)
8286{
8287 D(p->level++);
8288 if (p->error_indicator) {
8289 D(p->level--);
8290 return NULL;
8291 }
8292 expr_ty _res = NULL;
8293 int _mark = p->mark;
8294 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8295 p->error_indicator = 1;
8296 D(p->level--);
8297 return NULL;
8298 }
8299 int _start_lineno = p->tokens[_mark]->lineno;
8300 UNUSED(_start_lineno); // Only used by EXTRA macro
8301 int _start_col_offset = p->tokens[_mark]->col_offset;
8302 UNUSED(_start_col_offset); // Only used by EXTRA macro
8303 { // bitwise_or compare_op_bitwise_or_pair+
8304 if (p->error_indicator) {
8305 D(p->level--);
8306 return NULL;
8307 }
8308 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
8309 expr_ty a;
8310 asdl_seq * b;
8311 if (
8312 (a = bitwise_or_rule(p)) // bitwise_or
8313 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00008314 (b = _loop1_90_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008315 )
8316 {
8317 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
8318 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8319 if (_token == NULL) {
8320 D(p->level--);
8321 return NULL;
8322 }
8323 int _end_lineno = _token->end_lineno;
8324 UNUSED(_end_lineno); // Only used by EXTRA macro
8325 int _end_col_offset = _token->end_col_offset;
8326 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03008327 _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 +01008328 if (_res == NULL && PyErr_Occurred()) {
8329 p->error_indicator = 1;
8330 D(p->level--);
8331 return NULL;
8332 }
8333 goto done;
8334 }
8335 p->mark = _mark;
8336 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
8337 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
8338 }
8339 { // bitwise_or
8340 if (p->error_indicator) {
8341 D(p->level--);
8342 return NULL;
8343 }
8344 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
8345 expr_ty bitwise_or_var;
8346 if (
8347 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
8348 )
8349 {
8350 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
8351 _res = bitwise_or_var;
8352 goto done;
8353 }
8354 p->mark = _mark;
8355 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
8356 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
8357 }
8358 _res = NULL;
8359 done:
8360 D(p->level--);
8361 return _res;
8362}
8363
8364// compare_op_bitwise_or_pair:
8365// | eq_bitwise_or
8366// | noteq_bitwise_or
8367// | lte_bitwise_or
8368// | lt_bitwise_or
8369// | gte_bitwise_or
8370// | gt_bitwise_or
8371// | notin_bitwise_or
8372// | in_bitwise_or
8373// | isnot_bitwise_or
8374// | is_bitwise_or
8375static CmpopExprPair*
8376compare_op_bitwise_or_pair_rule(Parser *p)
8377{
8378 D(p->level++);
8379 if (p->error_indicator) {
8380 D(p->level--);
8381 return NULL;
8382 }
8383 CmpopExprPair* _res = NULL;
8384 int _mark = p->mark;
8385 { // eq_bitwise_or
8386 if (p->error_indicator) {
8387 D(p->level--);
8388 return NULL;
8389 }
8390 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
8391 CmpopExprPair* eq_bitwise_or_var;
8392 if (
8393 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
8394 )
8395 {
8396 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
8397 _res = eq_bitwise_or_var;
8398 goto done;
8399 }
8400 p->mark = _mark;
8401 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8402 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
8403 }
8404 { // noteq_bitwise_or
8405 if (p->error_indicator) {
8406 D(p->level--);
8407 return NULL;
8408 }
8409 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
8410 CmpopExprPair* noteq_bitwise_or_var;
8411 if (
8412 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
8413 )
8414 {
8415 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
8416 _res = noteq_bitwise_or_var;
8417 goto done;
8418 }
8419 p->mark = _mark;
8420 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8421 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
8422 }
8423 { // lte_bitwise_or
8424 if (p->error_indicator) {
8425 D(p->level--);
8426 return NULL;
8427 }
8428 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
8429 CmpopExprPair* lte_bitwise_or_var;
8430 if (
8431 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
8432 )
8433 {
8434 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
8435 _res = lte_bitwise_or_var;
8436 goto done;
8437 }
8438 p->mark = _mark;
8439 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8440 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
8441 }
8442 { // lt_bitwise_or
8443 if (p->error_indicator) {
8444 D(p->level--);
8445 return NULL;
8446 }
8447 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
8448 CmpopExprPair* lt_bitwise_or_var;
8449 if (
8450 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
8451 )
8452 {
8453 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
8454 _res = lt_bitwise_or_var;
8455 goto done;
8456 }
8457 p->mark = _mark;
8458 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8459 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
8460 }
8461 { // gte_bitwise_or
8462 if (p->error_indicator) {
8463 D(p->level--);
8464 return NULL;
8465 }
8466 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
8467 CmpopExprPair* gte_bitwise_or_var;
8468 if (
8469 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
8470 )
8471 {
8472 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
8473 _res = gte_bitwise_or_var;
8474 goto done;
8475 }
8476 p->mark = _mark;
8477 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
8479 }
8480 { // gt_bitwise_or
8481 if (p->error_indicator) {
8482 D(p->level--);
8483 return NULL;
8484 }
8485 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
8486 CmpopExprPair* gt_bitwise_or_var;
8487 if (
8488 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
8489 )
8490 {
8491 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
8492 _res = gt_bitwise_or_var;
8493 goto done;
8494 }
8495 p->mark = _mark;
8496 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8497 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
8498 }
8499 { // notin_bitwise_or
8500 if (p->error_indicator) {
8501 D(p->level--);
8502 return NULL;
8503 }
8504 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
8505 CmpopExprPair* notin_bitwise_or_var;
8506 if (
8507 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
8508 )
8509 {
8510 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
8511 _res = notin_bitwise_or_var;
8512 goto done;
8513 }
8514 p->mark = _mark;
8515 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8516 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
8517 }
8518 { // in_bitwise_or
8519 if (p->error_indicator) {
8520 D(p->level--);
8521 return NULL;
8522 }
8523 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
8524 CmpopExprPair* in_bitwise_or_var;
8525 if (
8526 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
8527 )
8528 {
8529 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
8530 _res = in_bitwise_or_var;
8531 goto done;
8532 }
8533 p->mark = _mark;
8534 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8535 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
8536 }
8537 { // isnot_bitwise_or
8538 if (p->error_indicator) {
8539 D(p->level--);
8540 return NULL;
8541 }
8542 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
8543 CmpopExprPair* isnot_bitwise_or_var;
8544 if (
8545 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
8546 )
8547 {
8548 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
8549 _res = isnot_bitwise_or_var;
8550 goto done;
8551 }
8552 p->mark = _mark;
8553 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8554 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
8555 }
8556 { // is_bitwise_or
8557 if (p->error_indicator) {
8558 D(p->level--);
8559 return NULL;
8560 }
8561 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
8562 CmpopExprPair* is_bitwise_or_var;
8563 if (
8564 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
8565 )
8566 {
8567 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
8568 _res = is_bitwise_or_var;
8569 goto done;
8570 }
8571 p->mark = _mark;
8572 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
8574 }
8575 _res = NULL;
8576 done:
8577 D(p->level--);
8578 return _res;
8579}
8580
8581// eq_bitwise_or: '==' bitwise_or
8582static CmpopExprPair*
8583eq_bitwise_or_rule(Parser *p)
8584{
8585 D(p->level++);
8586 if (p->error_indicator) {
8587 D(p->level--);
8588 return NULL;
8589 }
8590 CmpopExprPair* _res = NULL;
8591 int _mark = p->mark;
8592 { // '==' bitwise_or
8593 if (p->error_indicator) {
8594 D(p->level--);
8595 return NULL;
8596 }
8597 D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
8598 Token * _literal;
8599 expr_ty a;
8600 if (
8601 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
8602 &&
8603 (a = bitwise_or_rule(p)) // bitwise_or
8604 )
8605 {
8606 D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
8607 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
8608 if (_res == NULL && PyErr_Occurred()) {
8609 p->error_indicator = 1;
8610 D(p->level--);
8611 return NULL;
8612 }
8613 goto done;
8614 }
8615 p->mark = _mark;
8616 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8617 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
8618 }
8619 _res = NULL;
8620 done:
8621 D(p->level--);
8622 return _res;
8623}
8624
8625// noteq_bitwise_or: ('!=') bitwise_or
8626static CmpopExprPair*
8627noteq_bitwise_or_rule(Parser *p)
8628{
8629 D(p->level++);
8630 if (p->error_indicator) {
8631 D(p->level--);
8632 return NULL;
8633 }
8634 CmpopExprPair* _res = NULL;
8635 int _mark = p->mark;
8636 { // ('!=') bitwise_or
8637 if (p->error_indicator) {
8638 D(p->level--);
8639 return NULL;
8640 }
8641 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 +00008642 void *_tmp_91_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008643 expr_ty a;
8644 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00008645 (_tmp_91_var = _tmp_91_rule(p)) // '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008646 &&
8647 (a = bitwise_or_rule(p)) // bitwise_or
8648 )
8649 {
8650 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
8651 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
8652 if (_res == NULL && PyErr_Occurred()) {
8653 p->error_indicator = 1;
8654 D(p->level--);
8655 return NULL;
8656 }
8657 goto done;
8658 }
8659 p->mark = _mark;
8660 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8661 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
8662 }
8663 _res = NULL;
8664 done:
8665 D(p->level--);
8666 return _res;
8667}
8668
8669// lte_bitwise_or: '<=' bitwise_or
8670static CmpopExprPair*
8671lte_bitwise_or_rule(Parser *p)
8672{
8673 D(p->level++);
8674 if (p->error_indicator) {
8675 D(p->level--);
8676 return NULL;
8677 }
8678 CmpopExprPair* _res = NULL;
8679 int _mark = p->mark;
8680 { // '<=' bitwise_or
8681 if (p->error_indicator) {
8682 D(p->level--);
8683 return NULL;
8684 }
8685 D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
8686 Token * _literal;
8687 expr_ty a;
8688 if (
8689 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
8690 &&
8691 (a = bitwise_or_rule(p)) // bitwise_or
8692 )
8693 {
8694 D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
8695 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
8696 if (_res == NULL && PyErr_Occurred()) {
8697 p->error_indicator = 1;
8698 D(p->level--);
8699 return NULL;
8700 }
8701 goto done;
8702 }
8703 p->mark = _mark;
8704 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8705 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
8706 }
8707 _res = NULL;
8708 done:
8709 D(p->level--);
8710 return _res;
8711}
8712
8713// lt_bitwise_or: '<' bitwise_or
8714static CmpopExprPair*
8715lt_bitwise_or_rule(Parser *p)
8716{
8717 D(p->level++);
8718 if (p->error_indicator) {
8719 D(p->level--);
8720 return NULL;
8721 }
8722 CmpopExprPair* _res = NULL;
8723 int _mark = p->mark;
8724 { // '<' bitwise_or
8725 if (p->error_indicator) {
8726 D(p->level--);
8727 return NULL;
8728 }
8729 D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
8730 Token * _literal;
8731 expr_ty a;
8732 if (
8733 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
8734 &&
8735 (a = bitwise_or_rule(p)) // bitwise_or
8736 )
8737 {
8738 D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
8739 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
8740 if (_res == NULL && PyErr_Occurred()) {
8741 p->error_indicator = 1;
8742 D(p->level--);
8743 return NULL;
8744 }
8745 goto done;
8746 }
8747 p->mark = _mark;
8748 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8749 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
8750 }
8751 _res = NULL;
8752 done:
8753 D(p->level--);
8754 return _res;
8755}
8756
8757// gte_bitwise_or: '>=' bitwise_or
8758static CmpopExprPair*
8759gte_bitwise_or_rule(Parser *p)
8760{
8761 D(p->level++);
8762 if (p->error_indicator) {
8763 D(p->level--);
8764 return NULL;
8765 }
8766 CmpopExprPair* _res = NULL;
8767 int _mark = p->mark;
8768 { // '>=' bitwise_or
8769 if (p->error_indicator) {
8770 D(p->level--);
8771 return NULL;
8772 }
8773 D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
8774 Token * _literal;
8775 expr_ty a;
8776 if (
8777 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
8778 &&
8779 (a = bitwise_or_rule(p)) // bitwise_or
8780 )
8781 {
8782 D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
8783 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
8784 if (_res == NULL && PyErr_Occurred()) {
8785 p->error_indicator = 1;
8786 D(p->level--);
8787 return NULL;
8788 }
8789 goto done;
8790 }
8791 p->mark = _mark;
8792 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8793 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
8794 }
8795 _res = NULL;
8796 done:
8797 D(p->level--);
8798 return _res;
8799}
8800
8801// gt_bitwise_or: '>' bitwise_or
8802static CmpopExprPair*
8803gt_bitwise_or_rule(Parser *p)
8804{
8805 D(p->level++);
8806 if (p->error_indicator) {
8807 D(p->level--);
8808 return NULL;
8809 }
8810 CmpopExprPair* _res = NULL;
8811 int _mark = p->mark;
8812 { // '>' bitwise_or
8813 if (p->error_indicator) {
8814 D(p->level--);
8815 return NULL;
8816 }
8817 D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
8818 Token * _literal;
8819 expr_ty a;
8820 if (
8821 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
8822 &&
8823 (a = bitwise_or_rule(p)) // bitwise_or
8824 )
8825 {
8826 D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
8827 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
8828 if (_res == NULL && PyErr_Occurred()) {
8829 p->error_indicator = 1;
8830 D(p->level--);
8831 return NULL;
8832 }
8833 goto done;
8834 }
8835 p->mark = _mark;
8836 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8837 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
8838 }
8839 _res = NULL;
8840 done:
8841 D(p->level--);
8842 return _res;
8843}
8844
8845// notin_bitwise_or: 'not' 'in' bitwise_or
8846static CmpopExprPair*
8847notin_bitwise_or_rule(Parser *p)
8848{
8849 D(p->level++);
8850 if (p->error_indicator) {
8851 D(p->level--);
8852 return NULL;
8853 }
8854 CmpopExprPair* _res = NULL;
8855 int _mark = p->mark;
8856 { // 'not' 'in' bitwise_or
8857 if (p->error_indicator) {
8858 D(p->level--);
8859 return NULL;
8860 }
8861 D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
8862 Token * _keyword;
8863 Token * _keyword_1;
8864 expr_ty a;
8865 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03008866 (_keyword = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008867 &&
8868 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
8869 &&
8870 (a = bitwise_or_rule(p)) // bitwise_or
8871 )
8872 {
8873 D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
8874 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
8875 if (_res == NULL && PyErr_Occurred()) {
8876 p->error_indicator = 1;
8877 D(p->level--);
8878 return NULL;
8879 }
8880 goto done;
8881 }
8882 p->mark = _mark;
8883 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8884 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
8885 }
8886 _res = NULL;
8887 done:
8888 D(p->level--);
8889 return _res;
8890}
8891
8892// in_bitwise_or: 'in' bitwise_or
8893static CmpopExprPair*
8894in_bitwise_or_rule(Parser *p)
8895{
8896 D(p->level++);
8897 if (p->error_indicator) {
8898 D(p->level--);
8899 return NULL;
8900 }
8901 CmpopExprPair* _res = NULL;
8902 int _mark = p->mark;
8903 { // 'in' bitwise_or
8904 if (p->error_indicator) {
8905 D(p->level--);
8906 return NULL;
8907 }
8908 D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
8909 Token * _keyword;
8910 expr_ty a;
8911 if (
8912 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
8913 &&
8914 (a = bitwise_or_rule(p)) // bitwise_or
8915 )
8916 {
8917 D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
8918 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
8919 if (_res == NULL && PyErr_Occurred()) {
8920 p->error_indicator = 1;
8921 D(p->level--);
8922 return NULL;
8923 }
8924 goto done;
8925 }
8926 p->mark = _mark;
8927 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
8929 }
8930 _res = NULL;
8931 done:
8932 D(p->level--);
8933 return _res;
8934}
8935
8936// isnot_bitwise_or: 'is' 'not' bitwise_or
8937static CmpopExprPair*
8938isnot_bitwise_or_rule(Parser *p)
8939{
8940 D(p->level++);
8941 if (p->error_indicator) {
8942 D(p->level--);
8943 return NULL;
8944 }
8945 CmpopExprPair* _res = NULL;
8946 int _mark = p->mark;
8947 { // 'is' 'not' bitwise_or
8948 if (p->error_indicator) {
8949 D(p->level--);
8950 return NULL;
8951 }
8952 D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
8953 Token * _keyword;
8954 Token * _keyword_1;
8955 expr_ty a;
8956 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03008957 (_keyword = _PyPegen_expect_token(p, 527)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008958 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03008959 (_keyword_1 = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008960 &&
8961 (a = bitwise_or_rule(p)) // bitwise_or
8962 )
8963 {
8964 D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
8965 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
8966 if (_res == NULL && PyErr_Occurred()) {
8967 p->error_indicator = 1;
8968 D(p->level--);
8969 return NULL;
8970 }
8971 goto done;
8972 }
8973 p->mark = _mark;
8974 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8975 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
8976 }
8977 _res = NULL;
8978 done:
8979 D(p->level--);
8980 return _res;
8981}
8982
8983// is_bitwise_or: 'is' bitwise_or
8984static CmpopExprPair*
8985is_bitwise_or_rule(Parser *p)
8986{
8987 D(p->level++);
8988 if (p->error_indicator) {
8989 D(p->level--);
8990 return NULL;
8991 }
8992 CmpopExprPair* _res = NULL;
8993 int _mark = p->mark;
8994 { // 'is' bitwise_or
8995 if (p->error_indicator) {
8996 D(p->level--);
8997 return NULL;
8998 }
8999 D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
9000 Token * _keyword;
9001 expr_ty a;
9002 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03009003 (_keyword = _PyPegen_expect_token(p, 527)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009004 &&
9005 (a = bitwise_or_rule(p)) // bitwise_or
9006 )
9007 {
9008 D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
9009 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
9010 if (_res == NULL && PyErr_Occurred()) {
9011 p->error_indicator = 1;
9012 D(p->level--);
9013 return NULL;
9014 }
9015 goto done;
9016 }
9017 p->mark = _mark;
9018 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9019 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
9020 }
9021 _res = NULL;
9022 done:
9023 D(p->level--);
9024 return _res;
9025}
9026
9027// Left-recursive
9028// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
9029static expr_ty bitwise_or_raw(Parser *);
9030static expr_ty
9031bitwise_or_rule(Parser *p)
9032{
9033 D(p->level++);
9034 expr_ty _res = NULL;
9035 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
9036 D(p->level--);
9037 return _res;
9038 }
9039 int _mark = p->mark;
9040 int _resmark = p->mark;
9041 while (1) {
9042 int tmpvar_1 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
9043 if (tmpvar_1) {
9044 D(p->level--);
9045 return _res;
9046 }
9047 p->mark = _mark;
9048 void *_raw = bitwise_or_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009049 if (p->error_indicator)
9050 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009051 if (_raw == NULL || p->mark <= _resmark)
9052 break;
9053 _resmark = p->mark;
9054 _res = _raw;
9055 }
9056 p->mark = _resmark;
9057 D(p->level--);
9058 return _res;
9059}
9060static expr_ty
9061bitwise_or_raw(Parser *p)
9062{
9063 D(p->level++);
9064 if (p->error_indicator) {
9065 D(p->level--);
9066 return NULL;
9067 }
9068 expr_ty _res = NULL;
9069 int _mark = p->mark;
9070 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9071 p->error_indicator = 1;
9072 D(p->level--);
9073 return NULL;
9074 }
9075 int _start_lineno = p->tokens[_mark]->lineno;
9076 UNUSED(_start_lineno); // Only used by EXTRA macro
9077 int _start_col_offset = p->tokens[_mark]->col_offset;
9078 UNUSED(_start_col_offset); // Only used by EXTRA macro
9079 { // bitwise_or '|' bitwise_xor
9080 if (p->error_indicator) {
9081 D(p->level--);
9082 return NULL;
9083 }
9084 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
9085 Token * _literal;
9086 expr_ty a;
9087 expr_ty b;
9088 if (
9089 (a = bitwise_or_rule(p)) // bitwise_or
9090 &&
9091 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
9092 &&
9093 (b = bitwise_xor_rule(p)) // bitwise_xor
9094 )
9095 {
9096 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
9097 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9098 if (_token == NULL) {
9099 D(p->level--);
9100 return NULL;
9101 }
9102 int _end_lineno = _token->end_lineno;
9103 UNUSED(_end_lineno); // Only used by EXTRA macro
9104 int _end_col_offset = _token->end_col_offset;
9105 UNUSED(_end_col_offset); // Only used by EXTRA macro
9106 _res = _Py_BinOp ( a , BitOr , b , EXTRA );
9107 if (_res == NULL && PyErr_Occurred()) {
9108 p->error_indicator = 1;
9109 D(p->level--);
9110 return NULL;
9111 }
9112 goto done;
9113 }
9114 p->mark = _mark;
9115 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9116 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
9117 }
9118 { // bitwise_xor
9119 if (p->error_indicator) {
9120 D(p->level--);
9121 return NULL;
9122 }
9123 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
9124 expr_ty bitwise_xor_var;
9125 if (
9126 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
9127 )
9128 {
9129 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
9130 _res = bitwise_xor_var;
9131 goto done;
9132 }
9133 p->mark = _mark;
9134 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9135 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
9136 }
9137 _res = NULL;
9138 done:
9139 D(p->level--);
9140 return _res;
9141}
9142
9143// Left-recursive
9144// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
9145static expr_ty bitwise_xor_raw(Parser *);
9146static expr_ty
9147bitwise_xor_rule(Parser *p)
9148{
9149 D(p->level++);
9150 expr_ty _res = NULL;
9151 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
9152 D(p->level--);
9153 return _res;
9154 }
9155 int _mark = p->mark;
9156 int _resmark = p->mark;
9157 while (1) {
9158 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
9159 if (tmpvar_2) {
9160 D(p->level--);
9161 return _res;
9162 }
9163 p->mark = _mark;
9164 void *_raw = bitwise_xor_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009165 if (p->error_indicator)
9166 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009167 if (_raw == NULL || p->mark <= _resmark)
9168 break;
9169 _resmark = p->mark;
9170 _res = _raw;
9171 }
9172 p->mark = _resmark;
9173 D(p->level--);
9174 return _res;
9175}
9176static expr_ty
9177bitwise_xor_raw(Parser *p)
9178{
9179 D(p->level++);
9180 if (p->error_indicator) {
9181 D(p->level--);
9182 return NULL;
9183 }
9184 expr_ty _res = NULL;
9185 int _mark = p->mark;
9186 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9187 p->error_indicator = 1;
9188 D(p->level--);
9189 return NULL;
9190 }
9191 int _start_lineno = p->tokens[_mark]->lineno;
9192 UNUSED(_start_lineno); // Only used by EXTRA macro
9193 int _start_col_offset = p->tokens[_mark]->col_offset;
9194 UNUSED(_start_col_offset); // Only used by EXTRA macro
9195 { // bitwise_xor '^' bitwise_and
9196 if (p->error_indicator) {
9197 D(p->level--);
9198 return NULL;
9199 }
9200 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
9201 Token * _literal;
9202 expr_ty a;
9203 expr_ty b;
9204 if (
9205 (a = bitwise_xor_rule(p)) // bitwise_xor
9206 &&
9207 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
9208 &&
9209 (b = bitwise_and_rule(p)) // bitwise_and
9210 )
9211 {
9212 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
9213 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9214 if (_token == NULL) {
9215 D(p->level--);
9216 return NULL;
9217 }
9218 int _end_lineno = _token->end_lineno;
9219 UNUSED(_end_lineno); // Only used by EXTRA macro
9220 int _end_col_offset = _token->end_col_offset;
9221 UNUSED(_end_col_offset); // Only used by EXTRA macro
9222 _res = _Py_BinOp ( a , BitXor , b , EXTRA );
9223 if (_res == NULL && PyErr_Occurred()) {
9224 p->error_indicator = 1;
9225 D(p->level--);
9226 return NULL;
9227 }
9228 goto done;
9229 }
9230 p->mark = _mark;
9231 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
9232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
9233 }
9234 { // bitwise_and
9235 if (p->error_indicator) {
9236 D(p->level--);
9237 return NULL;
9238 }
9239 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
9240 expr_ty bitwise_and_var;
9241 if (
9242 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
9243 )
9244 {
9245 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
9246 _res = bitwise_and_var;
9247 goto done;
9248 }
9249 p->mark = _mark;
9250 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
9251 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
9252 }
9253 _res = NULL;
9254 done:
9255 D(p->level--);
9256 return _res;
9257}
9258
9259// Left-recursive
9260// bitwise_and: bitwise_and '&' shift_expr | shift_expr
9261static expr_ty bitwise_and_raw(Parser *);
9262static expr_ty
9263bitwise_and_rule(Parser *p)
9264{
9265 D(p->level++);
9266 expr_ty _res = NULL;
9267 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
9268 D(p->level--);
9269 return _res;
9270 }
9271 int _mark = p->mark;
9272 int _resmark = p->mark;
9273 while (1) {
9274 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
9275 if (tmpvar_3) {
9276 D(p->level--);
9277 return _res;
9278 }
9279 p->mark = _mark;
9280 void *_raw = bitwise_and_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009281 if (p->error_indicator)
9282 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009283 if (_raw == NULL || p->mark <= _resmark)
9284 break;
9285 _resmark = p->mark;
9286 _res = _raw;
9287 }
9288 p->mark = _resmark;
9289 D(p->level--);
9290 return _res;
9291}
9292static expr_ty
9293bitwise_and_raw(Parser *p)
9294{
9295 D(p->level++);
9296 if (p->error_indicator) {
9297 D(p->level--);
9298 return NULL;
9299 }
9300 expr_ty _res = NULL;
9301 int _mark = p->mark;
9302 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9303 p->error_indicator = 1;
9304 D(p->level--);
9305 return NULL;
9306 }
9307 int _start_lineno = p->tokens[_mark]->lineno;
9308 UNUSED(_start_lineno); // Only used by EXTRA macro
9309 int _start_col_offset = p->tokens[_mark]->col_offset;
9310 UNUSED(_start_col_offset); // Only used by EXTRA macro
9311 { // bitwise_and '&' shift_expr
9312 if (p->error_indicator) {
9313 D(p->level--);
9314 return NULL;
9315 }
9316 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
9317 Token * _literal;
9318 expr_ty a;
9319 expr_ty b;
9320 if (
9321 (a = bitwise_and_rule(p)) // bitwise_and
9322 &&
9323 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
9324 &&
9325 (b = shift_expr_rule(p)) // shift_expr
9326 )
9327 {
9328 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
9329 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9330 if (_token == NULL) {
9331 D(p->level--);
9332 return NULL;
9333 }
9334 int _end_lineno = _token->end_lineno;
9335 UNUSED(_end_lineno); // Only used by EXTRA macro
9336 int _end_col_offset = _token->end_col_offset;
9337 UNUSED(_end_col_offset); // Only used by EXTRA macro
9338 _res = _Py_BinOp ( a , BitAnd , b , EXTRA );
9339 if (_res == NULL && PyErr_Occurred()) {
9340 p->error_indicator = 1;
9341 D(p->level--);
9342 return NULL;
9343 }
9344 goto done;
9345 }
9346 p->mark = _mark;
9347 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
9348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
9349 }
9350 { // shift_expr
9351 if (p->error_indicator) {
9352 D(p->level--);
9353 return NULL;
9354 }
9355 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
9356 expr_ty shift_expr_var;
9357 if (
9358 (shift_expr_var = shift_expr_rule(p)) // shift_expr
9359 )
9360 {
9361 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
9362 _res = shift_expr_var;
9363 goto done;
9364 }
9365 p->mark = _mark;
9366 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
9367 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
9368 }
9369 _res = NULL;
9370 done:
9371 D(p->level--);
9372 return _res;
9373}
9374
9375// Left-recursive
9376// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
9377static expr_ty shift_expr_raw(Parser *);
9378static expr_ty
9379shift_expr_rule(Parser *p)
9380{
9381 D(p->level++);
9382 expr_ty _res = NULL;
9383 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
9384 D(p->level--);
9385 return _res;
9386 }
9387 int _mark = p->mark;
9388 int _resmark = p->mark;
9389 while (1) {
9390 int tmpvar_4 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
9391 if (tmpvar_4) {
9392 D(p->level--);
9393 return _res;
9394 }
9395 p->mark = _mark;
9396 void *_raw = shift_expr_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009397 if (p->error_indicator)
9398 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009399 if (_raw == NULL || p->mark <= _resmark)
9400 break;
9401 _resmark = p->mark;
9402 _res = _raw;
9403 }
9404 p->mark = _resmark;
9405 D(p->level--);
9406 return _res;
9407}
9408static expr_ty
9409shift_expr_raw(Parser *p)
9410{
9411 D(p->level++);
9412 if (p->error_indicator) {
9413 D(p->level--);
9414 return NULL;
9415 }
9416 expr_ty _res = NULL;
9417 int _mark = p->mark;
9418 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9419 p->error_indicator = 1;
9420 D(p->level--);
9421 return NULL;
9422 }
9423 int _start_lineno = p->tokens[_mark]->lineno;
9424 UNUSED(_start_lineno); // Only used by EXTRA macro
9425 int _start_col_offset = p->tokens[_mark]->col_offset;
9426 UNUSED(_start_col_offset); // Only used by EXTRA macro
9427 { // shift_expr '<<' sum
9428 if (p->error_indicator) {
9429 D(p->level--);
9430 return NULL;
9431 }
9432 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
9433 Token * _literal;
9434 expr_ty a;
9435 expr_ty b;
9436 if (
9437 (a = shift_expr_rule(p)) // shift_expr
9438 &&
9439 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
9440 &&
9441 (b = sum_rule(p)) // sum
9442 )
9443 {
9444 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
9445 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9446 if (_token == NULL) {
9447 D(p->level--);
9448 return NULL;
9449 }
9450 int _end_lineno = _token->end_lineno;
9451 UNUSED(_end_lineno); // Only used by EXTRA macro
9452 int _end_col_offset = _token->end_col_offset;
9453 UNUSED(_end_col_offset); // Only used by EXTRA macro
9454 _res = _Py_BinOp ( a , LShift , b , EXTRA );
9455 if (_res == NULL && PyErr_Occurred()) {
9456 p->error_indicator = 1;
9457 D(p->level--);
9458 return NULL;
9459 }
9460 goto done;
9461 }
9462 p->mark = _mark;
9463 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9464 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
9465 }
9466 { // shift_expr '>>' sum
9467 if (p->error_indicator) {
9468 D(p->level--);
9469 return NULL;
9470 }
9471 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
9472 Token * _literal;
9473 expr_ty a;
9474 expr_ty b;
9475 if (
9476 (a = shift_expr_rule(p)) // shift_expr
9477 &&
9478 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
9479 &&
9480 (b = sum_rule(p)) // sum
9481 )
9482 {
9483 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
9484 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9485 if (_token == NULL) {
9486 D(p->level--);
9487 return NULL;
9488 }
9489 int _end_lineno = _token->end_lineno;
9490 UNUSED(_end_lineno); // Only used by EXTRA macro
9491 int _end_col_offset = _token->end_col_offset;
9492 UNUSED(_end_col_offset); // Only used by EXTRA macro
9493 _res = _Py_BinOp ( a , RShift , b , EXTRA );
9494 if (_res == NULL && PyErr_Occurred()) {
9495 p->error_indicator = 1;
9496 D(p->level--);
9497 return NULL;
9498 }
9499 goto done;
9500 }
9501 p->mark = _mark;
9502 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9503 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
9504 }
9505 { // sum
9506 if (p->error_indicator) {
9507 D(p->level--);
9508 return NULL;
9509 }
9510 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
9511 expr_ty sum_var;
9512 if (
9513 (sum_var = sum_rule(p)) // sum
9514 )
9515 {
9516 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
9517 _res = sum_var;
9518 goto done;
9519 }
9520 p->mark = _mark;
9521 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9522 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
9523 }
9524 _res = NULL;
9525 done:
9526 D(p->level--);
9527 return _res;
9528}
9529
9530// Left-recursive
9531// sum: sum '+' term | sum '-' term | term
9532static expr_ty sum_raw(Parser *);
9533static expr_ty
9534sum_rule(Parser *p)
9535{
9536 D(p->level++);
9537 expr_ty _res = NULL;
9538 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
9539 D(p->level--);
9540 return _res;
9541 }
9542 int _mark = p->mark;
9543 int _resmark = p->mark;
9544 while (1) {
9545 int tmpvar_5 = _PyPegen_update_memo(p, _mark, sum_type, _res);
9546 if (tmpvar_5) {
9547 D(p->level--);
9548 return _res;
9549 }
9550 p->mark = _mark;
9551 void *_raw = sum_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009552 if (p->error_indicator)
9553 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009554 if (_raw == NULL || p->mark <= _resmark)
9555 break;
9556 _resmark = p->mark;
9557 _res = _raw;
9558 }
9559 p->mark = _resmark;
9560 D(p->level--);
9561 return _res;
9562}
9563static expr_ty
9564sum_raw(Parser *p)
9565{
9566 D(p->level++);
9567 if (p->error_indicator) {
9568 D(p->level--);
9569 return NULL;
9570 }
9571 expr_ty _res = NULL;
9572 int _mark = p->mark;
9573 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9574 p->error_indicator = 1;
9575 D(p->level--);
9576 return NULL;
9577 }
9578 int _start_lineno = p->tokens[_mark]->lineno;
9579 UNUSED(_start_lineno); // Only used by EXTRA macro
9580 int _start_col_offset = p->tokens[_mark]->col_offset;
9581 UNUSED(_start_col_offset); // Only used by EXTRA macro
9582 { // sum '+' term
9583 if (p->error_indicator) {
9584 D(p->level--);
9585 return NULL;
9586 }
9587 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
9588 Token * _literal;
9589 expr_ty a;
9590 expr_ty b;
9591 if (
9592 (a = sum_rule(p)) // sum
9593 &&
9594 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
9595 &&
9596 (b = term_rule(p)) // term
9597 )
9598 {
9599 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
9600 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9601 if (_token == NULL) {
9602 D(p->level--);
9603 return NULL;
9604 }
9605 int _end_lineno = _token->end_lineno;
9606 UNUSED(_end_lineno); // Only used by EXTRA macro
9607 int _end_col_offset = _token->end_col_offset;
9608 UNUSED(_end_col_offset); // Only used by EXTRA macro
9609 _res = _Py_BinOp ( a , Add , b , EXTRA );
9610 if (_res == NULL && PyErr_Occurred()) {
9611 p->error_indicator = 1;
9612 D(p->level--);
9613 return NULL;
9614 }
9615 goto done;
9616 }
9617 p->mark = _mark;
9618 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9619 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
9620 }
9621 { // sum '-' term
9622 if (p->error_indicator) {
9623 D(p->level--);
9624 return NULL;
9625 }
9626 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
9627 Token * _literal;
9628 expr_ty a;
9629 expr_ty b;
9630 if (
9631 (a = sum_rule(p)) // sum
9632 &&
9633 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
9634 &&
9635 (b = term_rule(p)) // term
9636 )
9637 {
9638 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
9639 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9640 if (_token == NULL) {
9641 D(p->level--);
9642 return NULL;
9643 }
9644 int _end_lineno = _token->end_lineno;
9645 UNUSED(_end_lineno); // Only used by EXTRA macro
9646 int _end_col_offset = _token->end_col_offset;
9647 UNUSED(_end_col_offset); // Only used by EXTRA macro
9648 _res = _Py_BinOp ( a , Sub , b , EXTRA );
9649 if (_res == NULL && PyErr_Occurred()) {
9650 p->error_indicator = 1;
9651 D(p->level--);
9652 return NULL;
9653 }
9654 goto done;
9655 }
9656 p->mark = _mark;
9657 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
9659 }
9660 { // term
9661 if (p->error_indicator) {
9662 D(p->level--);
9663 return NULL;
9664 }
9665 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
9666 expr_ty term_var;
9667 if (
9668 (term_var = term_rule(p)) // term
9669 )
9670 {
9671 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
9672 _res = term_var;
9673 goto done;
9674 }
9675 p->mark = _mark;
9676 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
9678 }
9679 _res = NULL;
9680 done:
9681 D(p->level--);
9682 return _res;
9683}
9684
9685// Left-recursive
9686// term:
9687// | term '*' factor
9688// | term '/' factor
9689// | term '//' factor
9690// | term '%' factor
9691// | term '@' factor
9692// | factor
9693static expr_ty term_raw(Parser *);
9694static expr_ty
9695term_rule(Parser *p)
9696{
9697 D(p->level++);
9698 expr_ty _res = NULL;
9699 if (_PyPegen_is_memoized(p, term_type, &_res)) {
9700 D(p->level--);
9701 return _res;
9702 }
9703 int _mark = p->mark;
9704 int _resmark = p->mark;
9705 while (1) {
9706 int tmpvar_6 = _PyPegen_update_memo(p, _mark, term_type, _res);
9707 if (tmpvar_6) {
9708 D(p->level--);
9709 return _res;
9710 }
9711 p->mark = _mark;
9712 void *_raw = term_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009713 if (p->error_indicator)
9714 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009715 if (_raw == NULL || p->mark <= _resmark)
9716 break;
9717 _resmark = p->mark;
9718 _res = _raw;
9719 }
9720 p->mark = _resmark;
9721 D(p->level--);
9722 return _res;
9723}
9724static expr_ty
9725term_raw(Parser *p)
9726{
9727 D(p->level++);
9728 if (p->error_indicator) {
9729 D(p->level--);
9730 return NULL;
9731 }
9732 expr_ty _res = NULL;
9733 int _mark = p->mark;
9734 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9735 p->error_indicator = 1;
9736 D(p->level--);
9737 return NULL;
9738 }
9739 int _start_lineno = p->tokens[_mark]->lineno;
9740 UNUSED(_start_lineno); // Only used by EXTRA macro
9741 int _start_col_offset = p->tokens[_mark]->col_offset;
9742 UNUSED(_start_col_offset); // Only used by EXTRA macro
9743 { // term '*' factor
9744 if (p->error_indicator) {
9745 D(p->level--);
9746 return NULL;
9747 }
9748 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
9749 Token * _literal;
9750 expr_ty a;
9751 expr_ty b;
9752 if (
9753 (a = term_rule(p)) // term
9754 &&
9755 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9756 &&
9757 (b = factor_rule(p)) // factor
9758 )
9759 {
9760 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
9761 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9762 if (_token == NULL) {
9763 D(p->level--);
9764 return NULL;
9765 }
9766 int _end_lineno = _token->end_lineno;
9767 UNUSED(_end_lineno); // Only used by EXTRA macro
9768 int _end_col_offset = _token->end_col_offset;
9769 UNUSED(_end_col_offset); // Only used by EXTRA macro
9770 _res = _Py_BinOp ( a , Mult , b , EXTRA );
9771 if (_res == NULL && PyErr_Occurred()) {
9772 p->error_indicator = 1;
9773 D(p->level--);
9774 return NULL;
9775 }
9776 goto done;
9777 }
9778 p->mark = _mark;
9779 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
9781 }
9782 { // term '/' factor
9783 if (p->error_indicator) {
9784 D(p->level--);
9785 return NULL;
9786 }
9787 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
9788 Token * _literal;
9789 expr_ty a;
9790 expr_ty b;
9791 if (
9792 (a = term_rule(p)) // term
9793 &&
9794 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
9795 &&
9796 (b = factor_rule(p)) // factor
9797 )
9798 {
9799 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
9800 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9801 if (_token == NULL) {
9802 D(p->level--);
9803 return NULL;
9804 }
9805 int _end_lineno = _token->end_lineno;
9806 UNUSED(_end_lineno); // Only used by EXTRA macro
9807 int _end_col_offset = _token->end_col_offset;
9808 UNUSED(_end_col_offset); // Only used by EXTRA macro
9809 _res = _Py_BinOp ( a , Div , b , EXTRA );
9810 if (_res == NULL && PyErr_Occurred()) {
9811 p->error_indicator = 1;
9812 D(p->level--);
9813 return NULL;
9814 }
9815 goto done;
9816 }
9817 p->mark = _mark;
9818 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
9820 }
9821 { // term '//' factor
9822 if (p->error_indicator) {
9823 D(p->level--);
9824 return NULL;
9825 }
9826 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
9827 Token * _literal;
9828 expr_ty a;
9829 expr_ty b;
9830 if (
9831 (a = term_rule(p)) // term
9832 &&
9833 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
9834 &&
9835 (b = factor_rule(p)) // factor
9836 )
9837 {
9838 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
9839 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9840 if (_token == NULL) {
9841 D(p->level--);
9842 return NULL;
9843 }
9844 int _end_lineno = _token->end_lineno;
9845 UNUSED(_end_lineno); // Only used by EXTRA macro
9846 int _end_col_offset = _token->end_col_offset;
9847 UNUSED(_end_col_offset); // Only used by EXTRA macro
9848 _res = _Py_BinOp ( a , FloorDiv , b , EXTRA );
9849 if (_res == NULL && PyErr_Occurred()) {
9850 p->error_indicator = 1;
9851 D(p->level--);
9852 return NULL;
9853 }
9854 goto done;
9855 }
9856 p->mark = _mark;
9857 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9858 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
9859 }
9860 { // term '%' factor
9861 if (p->error_indicator) {
9862 D(p->level--);
9863 return NULL;
9864 }
9865 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
9866 Token * _literal;
9867 expr_ty a;
9868 expr_ty b;
9869 if (
9870 (a = term_rule(p)) // term
9871 &&
9872 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
9873 &&
9874 (b = factor_rule(p)) // factor
9875 )
9876 {
9877 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
9878 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9879 if (_token == NULL) {
9880 D(p->level--);
9881 return NULL;
9882 }
9883 int _end_lineno = _token->end_lineno;
9884 UNUSED(_end_lineno); // Only used by EXTRA macro
9885 int _end_col_offset = _token->end_col_offset;
9886 UNUSED(_end_col_offset); // Only used by EXTRA macro
9887 _res = _Py_BinOp ( a , Mod , b , EXTRA );
9888 if (_res == NULL && PyErr_Occurred()) {
9889 p->error_indicator = 1;
9890 D(p->level--);
9891 return NULL;
9892 }
9893 goto done;
9894 }
9895 p->mark = _mark;
9896 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9897 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
9898 }
9899 { // term '@' factor
9900 if (p->error_indicator) {
9901 D(p->level--);
9902 return NULL;
9903 }
9904 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
9905 Token * _literal;
9906 expr_ty a;
9907 expr_ty b;
9908 if (
9909 (a = term_rule(p)) // term
9910 &&
9911 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
9912 &&
9913 (b = factor_rule(p)) // factor
9914 )
9915 {
9916 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
9917 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9918 if (_token == NULL) {
9919 D(p->level--);
9920 return NULL;
9921 }
9922 int _end_lineno = _token->end_lineno;
9923 UNUSED(_end_lineno); // Only used by EXTRA macro
9924 int _end_col_offset = _token->end_col_offset;
9925 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03009926 _res = CHECK_VERSION ( expr_ty , 5 , "The '@' operator is" , _Py_BinOp ( a , MatMult , b , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009927 if (_res == NULL && PyErr_Occurred()) {
9928 p->error_indicator = 1;
9929 D(p->level--);
9930 return NULL;
9931 }
9932 goto done;
9933 }
9934 p->mark = _mark;
9935 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9936 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
9937 }
9938 { // factor
9939 if (p->error_indicator) {
9940 D(p->level--);
9941 return NULL;
9942 }
9943 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
9944 expr_ty factor_var;
9945 if (
9946 (factor_var = factor_rule(p)) // factor
9947 )
9948 {
9949 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
9950 _res = factor_var;
9951 goto done;
9952 }
9953 p->mark = _mark;
9954 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
9956 }
9957 _res = NULL;
9958 done:
9959 D(p->level--);
9960 return _res;
9961}
9962
9963// factor: '+' factor | '-' factor | '~' factor | power
9964static expr_ty
9965factor_rule(Parser *p)
9966{
9967 D(p->level++);
9968 if (p->error_indicator) {
9969 D(p->level--);
9970 return NULL;
9971 }
9972 expr_ty _res = NULL;
9973 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
9974 D(p->level--);
9975 return _res;
9976 }
9977 int _mark = p->mark;
9978 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9979 p->error_indicator = 1;
9980 D(p->level--);
9981 return NULL;
9982 }
9983 int _start_lineno = p->tokens[_mark]->lineno;
9984 UNUSED(_start_lineno); // Only used by EXTRA macro
9985 int _start_col_offset = p->tokens[_mark]->col_offset;
9986 UNUSED(_start_col_offset); // Only used by EXTRA macro
9987 { // '+' factor
9988 if (p->error_indicator) {
9989 D(p->level--);
9990 return NULL;
9991 }
9992 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
9993 Token * _literal;
9994 expr_ty a;
9995 if (
9996 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
9997 &&
9998 (a = factor_rule(p)) // factor
9999 )
10000 {
10001 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
10002 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10003 if (_token == NULL) {
10004 D(p->level--);
10005 return NULL;
10006 }
10007 int _end_lineno = _token->end_lineno;
10008 UNUSED(_end_lineno); // Only used by EXTRA macro
10009 int _end_col_offset = _token->end_col_offset;
10010 UNUSED(_end_col_offset); // Only used by EXTRA macro
10011 _res = _Py_UnaryOp ( UAdd , a , EXTRA );
10012 if (_res == NULL && PyErr_Occurred()) {
10013 p->error_indicator = 1;
10014 D(p->level--);
10015 return NULL;
10016 }
10017 goto done;
10018 }
10019 p->mark = _mark;
10020 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10021 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
10022 }
10023 { // '-' factor
10024 if (p->error_indicator) {
10025 D(p->level--);
10026 return NULL;
10027 }
10028 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
10029 Token * _literal;
10030 expr_ty a;
10031 if (
10032 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
10033 &&
10034 (a = factor_rule(p)) // factor
10035 )
10036 {
10037 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
10038 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10039 if (_token == NULL) {
10040 D(p->level--);
10041 return NULL;
10042 }
10043 int _end_lineno = _token->end_lineno;
10044 UNUSED(_end_lineno); // Only used by EXTRA macro
10045 int _end_col_offset = _token->end_col_offset;
10046 UNUSED(_end_col_offset); // Only used by EXTRA macro
10047 _res = _Py_UnaryOp ( USub , a , EXTRA );
10048 if (_res == NULL && PyErr_Occurred()) {
10049 p->error_indicator = 1;
10050 D(p->level--);
10051 return NULL;
10052 }
10053 goto done;
10054 }
10055 p->mark = _mark;
10056 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10057 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
10058 }
10059 { // '~' factor
10060 if (p->error_indicator) {
10061 D(p->level--);
10062 return NULL;
10063 }
10064 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
10065 Token * _literal;
10066 expr_ty a;
10067 if (
10068 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
10069 &&
10070 (a = factor_rule(p)) // factor
10071 )
10072 {
10073 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
10074 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10075 if (_token == NULL) {
10076 D(p->level--);
10077 return NULL;
10078 }
10079 int _end_lineno = _token->end_lineno;
10080 UNUSED(_end_lineno); // Only used by EXTRA macro
10081 int _end_col_offset = _token->end_col_offset;
10082 UNUSED(_end_col_offset); // Only used by EXTRA macro
10083 _res = _Py_UnaryOp ( Invert , a , EXTRA );
10084 if (_res == NULL && PyErr_Occurred()) {
10085 p->error_indicator = 1;
10086 D(p->level--);
10087 return NULL;
10088 }
10089 goto done;
10090 }
10091 p->mark = _mark;
10092 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10093 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
10094 }
10095 { // power
10096 if (p->error_indicator) {
10097 D(p->level--);
10098 return NULL;
10099 }
10100 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
10101 expr_ty power_var;
10102 if (
10103 (power_var = power_rule(p)) // power
10104 )
10105 {
10106 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
10107 _res = power_var;
10108 goto done;
10109 }
10110 p->mark = _mark;
10111 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10112 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
10113 }
10114 _res = NULL;
10115 done:
10116 _PyPegen_insert_memo(p, _mark, factor_type, _res);
10117 D(p->level--);
10118 return _res;
10119}
10120
10121// power: await_primary '**' factor | await_primary
10122static expr_ty
10123power_rule(Parser *p)
10124{
10125 D(p->level++);
10126 if (p->error_indicator) {
10127 D(p->level--);
10128 return NULL;
10129 }
10130 expr_ty _res = NULL;
10131 int _mark = p->mark;
10132 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10133 p->error_indicator = 1;
10134 D(p->level--);
10135 return NULL;
10136 }
10137 int _start_lineno = p->tokens[_mark]->lineno;
10138 UNUSED(_start_lineno); // Only used by EXTRA macro
10139 int _start_col_offset = p->tokens[_mark]->col_offset;
10140 UNUSED(_start_col_offset); // Only used by EXTRA macro
10141 { // await_primary '**' factor
10142 if (p->error_indicator) {
10143 D(p->level--);
10144 return NULL;
10145 }
10146 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
10147 Token * _literal;
10148 expr_ty a;
10149 expr_ty b;
10150 if (
10151 (a = await_primary_rule(p)) // await_primary
10152 &&
10153 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
10154 &&
10155 (b = factor_rule(p)) // factor
10156 )
10157 {
10158 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
10159 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10160 if (_token == NULL) {
10161 D(p->level--);
10162 return NULL;
10163 }
10164 int _end_lineno = _token->end_lineno;
10165 UNUSED(_end_lineno); // Only used by EXTRA macro
10166 int _end_col_offset = _token->end_col_offset;
10167 UNUSED(_end_col_offset); // Only used by EXTRA macro
10168 _res = _Py_BinOp ( a , Pow , b , EXTRA );
10169 if (_res == NULL && PyErr_Occurred()) {
10170 p->error_indicator = 1;
10171 D(p->level--);
10172 return NULL;
10173 }
10174 goto done;
10175 }
10176 p->mark = _mark;
10177 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
10178 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
10179 }
10180 { // await_primary
10181 if (p->error_indicator) {
10182 D(p->level--);
10183 return NULL;
10184 }
10185 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
10186 expr_ty await_primary_var;
10187 if (
10188 (await_primary_var = await_primary_rule(p)) // await_primary
10189 )
10190 {
10191 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
10192 _res = await_primary_var;
10193 goto done;
10194 }
10195 p->mark = _mark;
10196 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
10197 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
10198 }
10199 _res = NULL;
10200 done:
10201 D(p->level--);
10202 return _res;
10203}
10204
10205// await_primary: AWAIT primary | primary
10206static expr_ty
10207await_primary_rule(Parser *p)
10208{
10209 D(p->level++);
10210 if (p->error_indicator) {
10211 D(p->level--);
10212 return NULL;
10213 }
10214 expr_ty _res = NULL;
10215 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
10216 D(p->level--);
10217 return _res;
10218 }
10219 int _mark = p->mark;
10220 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10221 p->error_indicator = 1;
10222 D(p->level--);
10223 return NULL;
10224 }
10225 int _start_lineno = p->tokens[_mark]->lineno;
10226 UNUSED(_start_lineno); // Only used by EXTRA macro
10227 int _start_col_offset = p->tokens[_mark]->col_offset;
10228 UNUSED(_start_col_offset); // Only used by EXTRA macro
10229 { // AWAIT primary
10230 if (p->error_indicator) {
10231 D(p->level--);
10232 return NULL;
10233 }
10234 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
10235 expr_ty a;
10236 Token * await_var;
10237 if (
10238 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
10239 &&
10240 (a = primary_rule(p)) // primary
10241 )
10242 {
10243 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
10244 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10245 if (_token == NULL) {
10246 D(p->level--);
10247 return NULL;
10248 }
10249 int _end_lineno = _token->end_lineno;
10250 UNUSED(_end_lineno); // Only used by EXTRA macro
10251 int _end_col_offset = _token->end_col_offset;
10252 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030010253 _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _Py_Await ( a , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010254 if (_res == NULL && PyErr_Occurred()) {
10255 p->error_indicator = 1;
10256 D(p->level--);
10257 return NULL;
10258 }
10259 goto done;
10260 }
10261 p->mark = _mark;
10262 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
10263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
10264 }
10265 { // primary
10266 if (p->error_indicator) {
10267 D(p->level--);
10268 return NULL;
10269 }
10270 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
10271 expr_ty primary_var;
10272 if (
10273 (primary_var = primary_rule(p)) // primary
10274 )
10275 {
10276 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
10277 _res = primary_var;
10278 goto done;
10279 }
10280 p->mark = _mark;
10281 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
10282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
10283 }
10284 _res = NULL;
10285 done:
10286 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
10287 D(p->level--);
10288 return _res;
10289}
10290
10291// Left-recursive
10292// primary:
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020010293// | invalid_primary
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010294// | primary '.' NAME
10295// | primary genexp
10296// | primary '(' arguments? ')'
10297// | primary '[' slices ']'
10298// | atom
10299static expr_ty primary_raw(Parser *);
10300static expr_ty
10301primary_rule(Parser *p)
10302{
10303 D(p->level++);
10304 expr_ty _res = NULL;
10305 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
10306 D(p->level--);
10307 return _res;
10308 }
10309 int _mark = p->mark;
10310 int _resmark = p->mark;
10311 while (1) {
10312 int tmpvar_7 = _PyPegen_update_memo(p, _mark, primary_type, _res);
10313 if (tmpvar_7) {
10314 D(p->level--);
10315 return _res;
10316 }
10317 p->mark = _mark;
10318 void *_raw = primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020010319 if (p->error_indicator)
10320 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010321 if (_raw == NULL || p->mark <= _resmark)
10322 break;
10323 _resmark = p->mark;
10324 _res = _raw;
10325 }
10326 p->mark = _resmark;
10327 D(p->level--);
10328 return _res;
10329}
10330static expr_ty
10331primary_raw(Parser *p)
10332{
10333 D(p->level++);
10334 if (p->error_indicator) {
10335 D(p->level--);
10336 return NULL;
10337 }
10338 expr_ty _res = NULL;
10339 int _mark = p->mark;
10340 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10341 p->error_indicator = 1;
10342 D(p->level--);
10343 return NULL;
10344 }
10345 int _start_lineno = p->tokens[_mark]->lineno;
10346 UNUSED(_start_lineno); // Only used by EXTRA macro
10347 int _start_col_offset = p->tokens[_mark]->col_offset;
10348 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020010349 if (p->call_invalid_rules) { // invalid_primary
10350 if (p->error_indicator) {
10351 D(p->level--);
10352 return NULL;
10353 }
10354 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
10355 void *invalid_primary_var;
10356 if (
10357 (invalid_primary_var = invalid_primary_rule(p)) // invalid_primary
10358 )
10359 {
10360 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
10361 _res = invalid_primary_var;
10362 goto done;
10363 }
10364 p->mark = _mark;
10365 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10366 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
10367 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010368 { // primary '.' NAME
10369 if (p->error_indicator) {
10370 D(p->level--);
10371 return NULL;
10372 }
10373 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
10374 Token * _literal;
10375 expr_ty a;
10376 expr_ty b;
10377 if (
10378 (a = primary_rule(p)) // primary
10379 &&
10380 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
10381 &&
10382 (b = _PyPegen_name_token(p)) // NAME
10383 )
10384 {
10385 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
10386 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10387 if (_token == NULL) {
10388 D(p->level--);
10389 return NULL;
10390 }
10391 int _end_lineno = _token->end_lineno;
10392 UNUSED(_end_lineno); // Only used by EXTRA macro
10393 int _end_col_offset = _token->end_col_offset;
10394 UNUSED(_end_col_offset); // Only used by EXTRA macro
10395 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
10396 if (_res == NULL && PyErr_Occurred()) {
10397 p->error_indicator = 1;
10398 D(p->level--);
10399 return NULL;
10400 }
10401 goto done;
10402 }
10403 p->mark = _mark;
10404 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10405 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
10406 }
10407 { // primary genexp
10408 if (p->error_indicator) {
10409 D(p->level--);
10410 return NULL;
10411 }
10412 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
10413 expr_ty a;
10414 expr_ty b;
10415 if (
10416 (a = primary_rule(p)) // primary
10417 &&
10418 (b = genexp_rule(p)) // genexp
10419 )
10420 {
10421 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
10422 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10423 if (_token == NULL) {
10424 D(p->level--);
10425 return NULL;
10426 }
10427 int _end_lineno = _token->end_lineno;
10428 UNUSED(_end_lineno); // Only used by EXTRA macro
10429 int _end_col_offset = _token->end_col_offset;
10430 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030010431 _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 +010010432 if (_res == NULL && PyErr_Occurred()) {
10433 p->error_indicator = 1;
10434 D(p->level--);
10435 return NULL;
10436 }
10437 goto done;
10438 }
10439 p->mark = _mark;
10440 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10441 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
10442 }
10443 { // primary '(' arguments? ')'
10444 if (p->error_indicator) {
10445 D(p->level--);
10446 return NULL;
10447 }
10448 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
10449 Token * _literal;
10450 Token * _literal_1;
10451 expr_ty a;
10452 void *b;
10453 if (
10454 (a = primary_rule(p)) // primary
10455 &&
10456 (_literal = _PyPegen_expect_token(p, 7)) // token='('
10457 &&
10458 (b = arguments_rule(p), 1) // arguments?
10459 &&
10460 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
10461 )
10462 {
10463 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
10464 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10465 if (_token == NULL) {
10466 D(p->level--);
10467 return NULL;
10468 }
10469 int _end_lineno = _token->end_lineno;
10470 UNUSED(_end_lineno); // Only used by EXTRA macro
10471 int _end_col_offset = _token->end_col_offset;
10472 UNUSED(_end_col_offset); // Only used by EXTRA macro
10473 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
10474 if (_res == NULL && PyErr_Occurred()) {
10475 p->error_indicator = 1;
10476 D(p->level--);
10477 return NULL;
10478 }
10479 goto done;
10480 }
10481 p->mark = _mark;
10482 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10483 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
10484 }
10485 { // primary '[' slices ']'
10486 if (p->error_indicator) {
10487 D(p->level--);
10488 return NULL;
10489 }
10490 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
10491 Token * _literal;
10492 Token * _literal_1;
10493 expr_ty a;
10494 expr_ty b;
10495 if (
10496 (a = primary_rule(p)) // primary
10497 &&
10498 (_literal = _PyPegen_expect_token(p, 9)) // token='['
10499 &&
10500 (b = slices_rule(p)) // slices
10501 &&
10502 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
10503 )
10504 {
10505 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
10506 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10507 if (_token == NULL) {
10508 D(p->level--);
10509 return NULL;
10510 }
10511 int _end_lineno = _token->end_lineno;
10512 UNUSED(_end_lineno); // Only used by EXTRA macro
10513 int _end_col_offset = _token->end_col_offset;
10514 UNUSED(_end_col_offset); // Only used by EXTRA macro
10515 _res = _Py_Subscript ( a , b , Load , EXTRA );
10516 if (_res == NULL && PyErr_Occurred()) {
10517 p->error_indicator = 1;
10518 D(p->level--);
10519 return NULL;
10520 }
10521 goto done;
10522 }
10523 p->mark = _mark;
10524 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
10526 }
10527 { // atom
10528 if (p->error_indicator) {
10529 D(p->level--);
10530 return NULL;
10531 }
10532 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
10533 expr_ty atom_var;
10534 if (
10535 (atom_var = atom_rule(p)) // atom
10536 )
10537 {
10538 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
10539 _res = atom_var;
10540 goto done;
10541 }
10542 p->mark = _mark;
10543 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
10545 }
10546 _res = NULL;
10547 done:
10548 D(p->level--);
10549 return _res;
10550}
10551
10552// slices: slice !',' | ','.slice+ ','?
10553static expr_ty
10554slices_rule(Parser *p)
10555{
10556 D(p->level++);
10557 if (p->error_indicator) {
10558 D(p->level--);
10559 return NULL;
10560 }
10561 expr_ty _res = NULL;
10562 int _mark = p->mark;
10563 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10564 p->error_indicator = 1;
10565 D(p->level--);
10566 return NULL;
10567 }
10568 int _start_lineno = p->tokens[_mark]->lineno;
10569 UNUSED(_start_lineno); // Only used by EXTRA macro
10570 int _start_col_offset = p->tokens[_mark]->col_offset;
10571 UNUSED(_start_col_offset); // Only used by EXTRA macro
10572 { // slice !','
10573 if (p->error_indicator) {
10574 D(p->level--);
10575 return NULL;
10576 }
10577 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
10578 expr_ty a;
10579 if (
10580 (a = slice_rule(p)) // slice
10581 &&
10582 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
10583 )
10584 {
10585 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
10586 _res = a;
10587 if (_res == NULL && PyErr_Occurred()) {
10588 p->error_indicator = 1;
10589 D(p->level--);
10590 return NULL;
10591 }
10592 goto done;
10593 }
10594 p->mark = _mark;
10595 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
10596 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
10597 }
10598 { // ','.slice+ ','?
10599 if (p->error_indicator) {
10600 D(p->level--);
10601 return NULL;
10602 }
10603 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
10604 void *_opt_var;
10605 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010010606 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010607 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010608 (a = (asdl_expr_seq*)_gather_92_rule(p)) // ','.slice+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010609 &&
10610 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
10611 )
10612 {
10613 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
10614 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10615 if (_token == NULL) {
10616 D(p->level--);
10617 return NULL;
10618 }
10619 int _end_lineno = _token->end_lineno;
10620 UNUSED(_end_lineno); // Only used by EXTRA macro
10621 int _end_col_offset = _token->end_col_offset;
10622 UNUSED(_end_col_offset); // Only used by EXTRA macro
10623 _res = _Py_Tuple ( a , Load , EXTRA );
10624 if (_res == NULL && PyErr_Occurred()) {
10625 p->error_indicator = 1;
10626 D(p->level--);
10627 return NULL;
10628 }
10629 goto done;
10630 }
10631 p->mark = _mark;
10632 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
10633 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
10634 }
10635 _res = NULL;
10636 done:
10637 D(p->level--);
10638 return _res;
10639}
10640
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010641// slice: expression? ':' expression? [':' expression?] | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010642static expr_ty
10643slice_rule(Parser *p)
10644{
10645 D(p->level++);
10646 if (p->error_indicator) {
10647 D(p->level--);
10648 return NULL;
10649 }
10650 expr_ty _res = NULL;
10651 int _mark = p->mark;
10652 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10653 p->error_indicator = 1;
10654 D(p->level--);
10655 return NULL;
10656 }
10657 int _start_lineno = p->tokens[_mark]->lineno;
10658 UNUSED(_start_lineno); // Only used by EXTRA macro
10659 int _start_col_offset = p->tokens[_mark]->col_offset;
10660 UNUSED(_start_col_offset); // Only used by EXTRA macro
10661 { // expression? ':' expression? [':' expression?]
10662 if (p->error_indicator) {
10663 D(p->level--);
10664 return NULL;
10665 }
10666 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
10667 Token * _literal;
10668 void *a;
10669 void *b;
10670 void *c;
10671 if (
10672 (a = expression_rule(p), 1) // expression?
10673 &&
10674 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
10675 &&
10676 (b = expression_rule(p), 1) // expression?
10677 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010678 (c = _tmp_94_rule(p), 1) // [':' expression?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010679 )
10680 {
10681 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
10682 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10683 if (_token == NULL) {
10684 D(p->level--);
10685 return NULL;
10686 }
10687 int _end_lineno = _token->end_lineno;
10688 UNUSED(_end_lineno); // Only used by EXTRA macro
10689 int _end_col_offset = _token->end_col_offset;
10690 UNUSED(_end_col_offset); // Only used by EXTRA macro
10691 _res = _Py_Slice ( a , b , c , EXTRA );
10692 if (_res == NULL && PyErr_Occurred()) {
10693 p->error_indicator = 1;
10694 D(p->level--);
10695 return NULL;
10696 }
10697 goto done;
10698 }
10699 p->mark = _mark;
10700 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
10701 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
10702 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010703 { // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010704 if (p->error_indicator) {
10705 D(p->level--);
10706 return NULL;
10707 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010708 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010709 expr_ty a;
10710 if (
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010711 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010712 )
10713 {
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010714 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010715 _res = a;
10716 if (_res == NULL && PyErr_Occurred()) {
10717 p->error_indicator = 1;
10718 D(p->level--);
10719 return NULL;
10720 }
10721 goto done;
10722 }
10723 p->mark = _mark;
10724 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010725 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010726 }
10727 _res = NULL;
10728 done:
10729 D(p->level--);
10730 return _res;
10731}
10732
10733// atom:
10734// | NAME
10735// | 'True'
10736// | 'False'
10737// | 'None'
10738// | &STRING strings
10739// | NUMBER
10740// | &'(' (tuple | group | genexp)
10741// | &'[' (list | listcomp)
10742// | &'{' (dict | set | dictcomp | setcomp)
10743// | '...'
10744static expr_ty
10745atom_rule(Parser *p)
10746{
10747 D(p->level++);
10748 if (p->error_indicator) {
10749 D(p->level--);
10750 return NULL;
10751 }
10752 expr_ty _res = NULL;
10753 int _mark = p->mark;
10754 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10755 p->error_indicator = 1;
10756 D(p->level--);
10757 return NULL;
10758 }
10759 int _start_lineno = p->tokens[_mark]->lineno;
10760 UNUSED(_start_lineno); // Only used by EXTRA macro
10761 int _start_col_offset = p->tokens[_mark]->col_offset;
10762 UNUSED(_start_col_offset); // Only used by EXTRA macro
10763 { // NAME
10764 if (p->error_indicator) {
10765 D(p->level--);
10766 return NULL;
10767 }
10768 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
10769 expr_ty name_var;
10770 if (
10771 (name_var = _PyPegen_name_token(p)) // NAME
10772 )
10773 {
10774 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
10775 _res = name_var;
10776 goto done;
10777 }
10778 p->mark = _mark;
10779 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
10781 }
10782 { // 'True'
10783 if (p->error_indicator) {
10784 D(p->level--);
10785 return NULL;
10786 }
10787 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
10788 Token * _keyword;
10789 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010790 (_keyword = _PyPegen_expect_token(p, 528)) // token='True'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010791 )
10792 {
10793 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
10794 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10795 if (_token == NULL) {
10796 D(p->level--);
10797 return NULL;
10798 }
10799 int _end_lineno = _token->end_lineno;
10800 UNUSED(_end_lineno); // Only used by EXTRA macro
10801 int _end_col_offset = _token->end_col_offset;
10802 UNUSED(_end_col_offset); // Only used by EXTRA macro
10803 _res = _Py_Constant ( Py_True , NULL , EXTRA );
10804 if (_res == NULL && PyErr_Occurred()) {
10805 p->error_indicator = 1;
10806 D(p->level--);
10807 return NULL;
10808 }
10809 goto done;
10810 }
10811 p->mark = _mark;
10812 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10813 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
10814 }
10815 { // 'False'
10816 if (p->error_indicator) {
10817 D(p->level--);
10818 return NULL;
10819 }
10820 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
10821 Token * _keyword;
10822 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010823 (_keyword = _PyPegen_expect_token(p, 529)) // token='False'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010824 )
10825 {
10826 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
10827 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10828 if (_token == NULL) {
10829 D(p->level--);
10830 return NULL;
10831 }
10832 int _end_lineno = _token->end_lineno;
10833 UNUSED(_end_lineno); // Only used by EXTRA macro
10834 int _end_col_offset = _token->end_col_offset;
10835 UNUSED(_end_col_offset); // Only used by EXTRA macro
10836 _res = _Py_Constant ( Py_False , NULL , EXTRA );
10837 if (_res == NULL && PyErr_Occurred()) {
10838 p->error_indicator = 1;
10839 D(p->level--);
10840 return NULL;
10841 }
10842 goto done;
10843 }
10844 p->mark = _mark;
10845 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10846 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
10847 }
10848 { // 'None'
10849 if (p->error_indicator) {
10850 D(p->level--);
10851 return NULL;
10852 }
10853 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
10854 Token * _keyword;
10855 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010856 (_keyword = _PyPegen_expect_token(p, 530)) // token='None'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010857 )
10858 {
10859 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
10860 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10861 if (_token == NULL) {
10862 D(p->level--);
10863 return NULL;
10864 }
10865 int _end_lineno = _token->end_lineno;
10866 UNUSED(_end_lineno); // Only used by EXTRA macro
10867 int _end_col_offset = _token->end_col_offset;
10868 UNUSED(_end_col_offset); // Only used by EXTRA macro
10869 _res = _Py_Constant ( Py_None , NULL , EXTRA );
10870 if (_res == NULL && PyErr_Occurred()) {
10871 p->error_indicator = 1;
10872 D(p->level--);
10873 return NULL;
10874 }
10875 goto done;
10876 }
10877 p->mark = _mark;
10878 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10879 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
10880 }
10881 { // &STRING strings
10882 if (p->error_indicator) {
10883 D(p->level--);
10884 return NULL;
10885 }
10886 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
10887 expr_ty strings_var;
10888 if (
10889 _PyPegen_lookahead(1, _PyPegen_string_token, p)
10890 &&
10891 (strings_var = strings_rule(p)) // strings
10892 )
10893 {
10894 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
10895 _res = strings_var;
10896 goto done;
10897 }
10898 p->mark = _mark;
10899 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10900 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
10901 }
10902 { // NUMBER
10903 if (p->error_indicator) {
10904 D(p->level--);
10905 return NULL;
10906 }
10907 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
10908 expr_ty number_var;
10909 if (
10910 (number_var = _PyPegen_number_token(p)) // NUMBER
10911 )
10912 {
10913 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
10914 _res = number_var;
10915 goto done;
10916 }
10917 p->mark = _mark;
10918 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10919 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
10920 }
10921 { // &'(' (tuple | group | genexp)
10922 if (p->error_indicator) {
10923 D(p->level--);
10924 return NULL;
10925 }
10926 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010927 void *_tmp_95_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010928 if (
10929 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
10930 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010931 (_tmp_95_var = _tmp_95_rule(p)) // tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010932 )
10933 {
10934 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 +000010935 _res = _tmp_95_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010936 goto done;
10937 }
10938 p->mark = _mark;
10939 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10940 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
10941 }
10942 { // &'[' (list | listcomp)
10943 if (p->error_indicator) {
10944 D(p->level--);
10945 return NULL;
10946 }
10947 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010948 void *_tmp_96_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010949 if (
10950 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
10951 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010952 (_tmp_96_var = _tmp_96_rule(p)) // list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010953 )
10954 {
10955 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010956 _res = _tmp_96_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010957 goto done;
10958 }
10959 p->mark = _mark;
10960 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
10962 }
10963 { // &'{' (dict | set | dictcomp | setcomp)
10964 if (p->error_indicator) {
10965 D(p->level--);
10966 return NULL;
10967 }
10968 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 +000010969 void *_tmp_97_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010970 if (
10971 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
10972 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010973 (_tmp_97_var = _tmp_97_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010974 )
10975 {
10976 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 +000010977 _res = _tmp_97_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010978 goto done;
10979 }
10980 p->mark = _mark;
10981 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10982 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
10983 }
10984 { // '...'
10985 if (p->error_indicator) {
10986 D(p->level--);
10987 return NULL;
10988 }
10989 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
10990 Token * _literal;
10991 if (
10992 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
10993 )
10994 {
10995 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
10996 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10997 if (_token == NULL) {
10998 D(p->level--);
10999 return NULL;
11000 }
11001 int _end_lineno = _token->end_lineno;
11002 UNUSED(_end_lineno); // Only used by EXTRA macro
11003 int _end_col_offset = _token->end_col_offset;
11004 UNUSED(_end_col_offset); // Only used by EXTRA macro
11005 _res = _Py_Constant ( Py_Ellipsis , NULL , EXTRA );
11006 if (_res == NULL && PyErr_Occurred()) {
11007 p->error_indicator = 1;
11008 D(p->level--);
11009 return NULL;
11010 }
11011 goto done;
11012 }
11013 p->mark = _mark;
11014 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
11015 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
11016 }
11017 _res = NULL;
11018 done:
11019 D(p->level--);
11020 return _res;
11021}
11022
11023// strings: STRING+
11024static expr_ty
11025strings_rule(Parser *p)
11026{
11027 D(p->level++);
11028 if (p->error_indicator) {
11029 D(p->level--);
11030 return NULL;
11031 }
11032 expr_ty _res = NULL;
11033 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
11034 D(p->level--);
11035 return _res;
11036 }
11037 int _mark = p->mark;
11038 { // STRING+
11039 if (p->error_indicator) {
11040 D(p->level--);
11041 return NULL;
11042 }
11043 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
11044 asdl_seq * a;
11045 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011046 (a = _loop1_98_rule(p)) // STRING+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011047 )
11048 {
11049 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
11050 _res = _PyPegen_concatenate_strings ( p , a );
11051 if (_res == NULL && PyErr_Occurred()) {
11052 p->error_indicator = 1;
11053 D(p->level--);
11054 return NULL;
11055 }
11056 goto done;
11057 }
11058 p->mark = _mark;
11059 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
11060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
11061 }
11062 _res = NULL;
11063 done:
11064 _PyPegen_insert_memo(p, _mark, strings_type, _res);
11065 D(p->level--);
11066 return _res;
11067}
11068
11069// list: '[' star_named_expressions? ']'
11070static expr_ty
11071list_rule(Parser *p)
11072{
11073 D(p->level++);
11074 if (p->error_indicator) {
11075 D(p->level--);
11076 return NULL;
11077 }
11078 expr_ty _res = NULL;
11079 int _mark = p->mark;
11080 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11081 p->error_indicator = 1;
11082 D(p->level--);
11083 return NULL;
11084 }
11085 int _start_lineno = p->tokens[_mark]->lineno;
11086 UNUSED(_start_lineno); // Only used by EXTRA macro
11087 int _start_col_offset = p->tokens[_mark]->col_offset;
11088 UNUSED(_start_col_offset); // Only used by EXTRA macro
11089 { // '[' star_named_expressions? ']'
11090 if (p->error_indicator) {
11091 D(p->level--);
11092 return NULL;
11093 }
11094 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
11095 Token * _literal;
11096 Token * _literal_1;
11097 void *a;
11098 if (
11099 (_literal = _PyPegen_expect_token(p, 9)) // token='['
11100 &&
11101 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
11102 &&
11103 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
11104 )
11105 {
11106 D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
11107 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11108 if (_token == NULL) {
11109 D(p->level--);
11110 return NULL;
11111 }
11112 int _end_lineno = _token->end_lineno;
11113 UNUSED(_end_lineno); // Only used by EXTRA macro
11114 int _end_col_offset = _token->end_col_offset;
11115 UNUSED(_end_col_offset); // Only used by EXTRA macro
11116 _res = _Py_List ( a , Load , EXTRA );
11117 if (_res == NULL && PyErr_Occurred()) {
11118 p->error_indicator = 1;
11119 D(p->level--);
11120 return NULL;
11121 }
11122 goto done;
11123 }
11124 p->mark = _mark;
11125 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
11126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
11127 }
11128 _res = NULL;
11129 done:
11130 D(p->level--);
11131 return _res;
11132}
11133
Pablo Galindo835f14f2021-01-31 22:52:56 +000011134// listcomp: '[' named_expression for_if_clauses ']' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011135static expr_ty
11136listcomp_rule(Parser *p)
11137{
11138 D(p->level++);
11139 if (p->error_indicator) {
11140 D(p->level--);
11141 return NULL;
11142 }
11143 expr_ty _res = NULL;
11144 int _mark = p->mark;
11145 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11146 p->error_indicator = 1;
11147 D(p->level--);
11148 return NULL;
11149 }
11150 int _start_lineno = p->tokens[_mark]->lineno;
11151 UNUSED(_start_lineno); // Only used by EXTRA macro
11152 int _start_col_offset = p->tokens[_mark]->col_offset;
11153 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000011154 { // '[' named_expression for_if_clauses ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011155 if (p->error_indicator) {
11156 D(p->level--);
11157 return NULL;
11158 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000011159 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 +010011160 Token * _literal;
11161 Token * _literal_1;
11162 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011163 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011164 if (
11165 (_literal = _PyPegen_expect_token(p, 9)) // token='['
11166 &&
11167 (a = named_expression_rule(p)) // named_expression
11168 &&
11169 (b = for_if_clauses_rule(p)) // for_if_clauses
11170 &&
11171 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
11172 )
11173 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000011174 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 +010011175 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11176 if (_token == NULL) {
11177 D(p->level--);
11178 return NULL;
11179 }
11180 int _end_lineno = _token->end_lineno;
11181 UNUSED(_end_lineno); // Only used by EXTRA macro
11182 int _end_col_offset = _token->end_col_offset;
11183 UNUSED(_end_col_offset); // Only used by EXTRA macro
11184 _res = _Py_ListComp ( a , b , EXTRA );
11185 if (_res == NULL && PyErr_Occurred()) {
11186 p->error_indicator = 1;
11187 D(p->level--);
11188 return NULL;
11189 }
11190 goto done;
11191 }
11192 p->mark = _mark;
11193 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000011194 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011195 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011196 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011197 if (p->error_indicator) {
11198 D(p->level--);
11199 return NULL;
11200 }
11201 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11202 void *invalid_comprehension_var;
11203 if (
11204 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
11205 )
11206 {
11207 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11208 _res = invalid_comprehension_var;
11209 goto done;
11210 }
11211 p->mark = _mark;
11212 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
11213 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
11214 }
11215 _res = NULL;
11216 done:
11217 D(p->level--);
11218 return _res;
11219}
11220
11221// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
11222static expr_ty
11223tuple_rule(Parser *p)
11224{
11225 D(p->level++);
11226 if (p->error_indicator) {
11227 D(p->level--);
11228 return NULL;
11229 }
11230 expr_ty _res = NULL;
11231 int _mark = p->mark;
11232 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11233 p->error_indicator = 1;
11234 D(p->level--);
11235 return NULL;
11236 }
11237 int _start_lineno = p->tokens[_mark]->lineno;
11238 UNUSED(_start_lineno); // Only used by EXTRA macro
11239 int _start_col_offset = p->tokens[_mark]->col_offset;
11240 UNUSED(_start_col_offset); // Only used by EXTRA macro
11241 { // '(' [star_named_expression ',' star_named_expressions?] ')'
11242 if (p->error_indicator) {
11243 D(p->level--);
11244 return NULL;
11245 }
11246 D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
11247 Token * _literal;
11248 Token * _literal_1;
11249 void *a;
11250 if (
11251 (_literal = _PyPegen_expect_token(p, 7)) // token='('
11252 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011253 (a = _tmp_99_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011254 &&
11255 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
11256 )
11257 {
11258 D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
11259 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11260 if (_token == NULL) {
11261 D(p->level--);
11262 return NULL;
11263 }
11264 int _end_lineno = _token->end_lineno;
11265 UNUSED(_end_lineno); // Only used by EXTRA macro
11266 int _end_col_offset = _token->end_col_offset;
11267 UNUSED(_end_col_offset); // Only used by EXTRA macro
11268 _res = _Py_Tuple ( a , Load , EXTRA );
11269 if (_res == NULL && PyErr_Occurred()) {
11270 p->error_indicator = 1;
11271 D(p->level--);
11272 return NULL;
11273 }
11274 goto done;
11275 }
11276 p->mark = _mark;
11277 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
11278 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
11279 }
11280 _res = NULL;
11281 done:
11282 D(p->level--);
11283 return _res;
11284}
11285
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011286// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011287static expr_ty
11288group_rule(Parser *p)
11289{
11290 D(p->level++);
11291 if (p->error_indicator) {
11292 D(p->level--);
11293 return NULL;
11294 }
11295 expr_ty _res = NULL;
11296 int _mark = p->mark;
11297 { // '(' (yield_expr | named_expression) ')'
11298 if (p->error_indicator) {
11299 D(p->level--);
11300 return NULL;
11301 }
11302 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
11303 Token * _literal;
11304 Token * _literal_1;
11305 void *a;
11306 if (
11307 (_literal = _PyPegen_expect_token(p, 7)) // token='('
11308 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011309 (a = _tmp_100_rule(p)) // yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011310 &&
11311 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
11312 )
11313 {
11314 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
11315 _res = a;
11316 if (_res == NULL && PyErr_Occurred()) {
11317 p->error_indicator = 1;
11318 D(p->level--);
11319 return NULL;
11320 }
11321 goto done;
11322 }
11323 p->mark = _mark;
11324 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
11325 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
11326 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011327 if (p->call_invalid_rules) { // invalid_group
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011328 if (p->error_indicator) {
11329 D(p->level--);
11330 return NULL;
11331 }
11332 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
11333 void *invalid_group_var;
11334 if (
11335 (invalid_group_var = invalid_group_rule(p)) // invalid_group
11336 )
11337 {
11338 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
11339 _res = invalid_group_var;
11340 goto done;
11341 }
11342 p->mark = _mark;
11343 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
11344 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
11345 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011346 _res = NULL;
11347 done:
11348 D(p->level--);
11349 return _res;
11350}
11351
Pablo Galindo835f14f2021-01-31 22:52:56 +000011352// genexp: '(' named_expression for_if_clauses ')' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011353static expr_ty
11354genexp_rule(Parser *p)
11355{
11356 D(p->level++);
11357 if (p->error_indicator) {
11358 D(p->level--);
11359 return NULL;
11360 }
11361 expr_ty _res = NULL;
11362 int _mark = p->mark;
11363 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11364 p->error_indicator = 1;
11365 D(p->level--);
11366 return NULL;
11367 }
11368 int _start_lineno = p->tokens[_mark]->lineno;
11369 UNUSED(_start_lineno); // Only used by EXTRA macro
11370 int _start_col_offset = p->tokens[_mark]->col_offset;
11371 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000011372 { // '(' named_expression for_if_clauses ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011373 if (p->error_indicator) {
11374 D(p->level--);
11375 return NULL;
11376 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000011377 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 +010011378 Token * _literal;
11379 Token * _literal_1;
11380 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011381 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011382 if (
11383 (_literal = _PyPegen_expect_token(p, 7)) // token='('
11384 &&
Lysandros Nikolaoucb3e5ed2020-11-17 01:08:35 +020011385 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011386 &&
11387 (b = for_if_clauses_rule(p)) // for_if_clauses
11388 &&
11389 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
11390 )
11391 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000011392 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 +010011393 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11394 if (_token == NULL) {
11395 D(p->level--);
11396 return NULL;
11397 }
11398 int _end_lineno = _token->end_lineno;
11399 UNUSED(_end_lineno); // Only used by EXTRA macro
11400 int _end_col_offset = _token->end_col_offset;
11401 UNUSED(_end_col_offset); // Only used by EXTRA macro
11402 _res = _Py_GeneratorExp ( a , b , EXTRA );
11403 if (_res == NULL && PyErr_Occurred()) {
11404 p->error_indicator = 1;
11405 D(p->level--);
11406 return NULL;
11407 }
11408 goto done;
11409 }
11410 p->mark = _mark;
11411 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000011412 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011413 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011414 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011415 if (p->error_indicator) {
11416 D(p->level--);
11417 return NULL;
11418 }
11419 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11420 void *invalid_comprehension_var;
11421 if (
11422 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
11423 )
11424 {
11425 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11426 _res = invalid_comprehension_var;
11427 goto done;
11428 }
11429 p->mark = _mark;
11430 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
11431 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
11432 }
11433 _res = NULL;
11434 done:
11435 D(p->level--);
11436 return _res;
11437}
11438
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011439// set: '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011440static expr_ty
11441set_rule(Parser *p)
11442{
11443 D(p->level++);
11444 if (p->error_indicator) {
11445 D(p->level--);
11446 return NULL;
11447 }
11448 expr_ty _res = NULL;
11449 int _mark = p->mark;
11450 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11451 p->error_indicator = 1;
11452 D(p->level--);
11453 return NULL;
11454 }
11455 int _start_lineno = p->tokens[_mark]->lineno;
11456 UNUSED(_start_lineno); // Only used by EXTRA macro
11457 int _start_col_offset = p->tokens[_mark]->col_offset;
11458 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011459 { // '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011460 if (p->error_indicator) {
11461 D(p->level--);
11462 return NULL;
11463 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011464 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011465 Token * _literal;
11466 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011467 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011468 if (
11469 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
11470 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011471 (a = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011472 &&
11473 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
11474 )
11475 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011476 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 +010011477 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11478 if (_token == NULL) {
11479 D(p->level--);
11480 return NULL;
11481 }
11482 int _end_lineno = _token->end_lineno;
11483 UNUSED(_end_lineno); // Only used by EXTRA macro
11484 int _end_col_offset = _token->end_col_offset;
11485 UNUSED(_end_col_offset); // Only used by EXTRA macro
11486 _res = _Py_Set ( a , EXTRA );
11487 if (_res == NULL && PyErr_Occurred()) {
11488 p->error_indicator = 1;
11489 D(p->level--);
11490 return NULL;
11491 }
11492 goto done;
11493 }
11494 p->mark = _mark;
11495 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011496 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011497 }
11498 _res = NULL;
11499 done:
11500 D(p->level--);
11501 return _res;
11502}
11503
Pablo Galindo835f14f2021-01-31 22:52:56 +000011504// setcomp: '{' named_expression for_if_clauses '}' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011505static expr_ty
11506setcomp_rule(Parser *p)
11507{
11508 D(p->level++);
11509 if (p->error_indicator) {
11510 D(p->level--);
11511 return NULL;
11512 }
11513 expr_ty _res = NULL;
11514 int _mark = p->mark;
11515 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11516 p->error_indicator = 1;
11517 D(p->level--);
11518 return NULL;
11519 }
11520 int _start_lineno = p->tokens[_mark]->lineno;
11521 UNUSED(_start_lineno); // Only used by EXTRA macro
11522 int _start_col_offset = p->tokens[_mark]->col_offset;
11523 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000011524 { // '{' named_expression for_if_clauses '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011525 if (p->error_indicator) {
11526 D(p->level--);
11527 return NULL;
11528 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000011529 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 +010011530 Token * _literal;
11531 Token * _literal_1;
11532 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011533 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011534 if (
11535 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
11536 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011537 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011538 &&
11539 (b = for_if_clauses_rule(p)) // for_if_clauses
11540 &&
11541 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
11542 )
11543 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000011544 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 +010011545 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11546 if (_token == NULL) {
11547 D(p->level--);
11548 return NULL;
11549 }
11550 int _end_lineno = _token->end_lineno;
11551 UNUSED(_end_lineno); // Only used by EXTRA macro
11552 int _end_col_offset = _token->end_col_offset;
11553 UNUSED(_end_col_offset); // Only used by EXTRA macro
11554 _res = _Py_SetComp ( a , b , EXTRA );
11555 if (_res == NULL && PyErr_Occurred()) {
11556 p->error_indicator = 1;
11557 D(p->level--);
11558 return NULL;
11559 }
11560 goto done;
11561 }
11562 p->mark = _mark;
11563 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000011564 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011565 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011566 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011567 if (p->error_indicator) {
11568 D(p->level--);
11569 return NULL;
11570 }
11571 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11572 void *invalid_comprehension_var;
11573 if (
11574 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
11575 )
11576 {
11577 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11578 _res = invalid_comprehension_var;
11579 goto done;
11580 }
11581 p->mark = _mark;
11582 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
11583 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
11584 }
11585 _res = NULL;
11586 done:
11587 D(p->level--);
11588 return _res;
11589}
11590
11591// dict: '{' double_starred_kvpairs? '}'
11592static expr_ty
11593dict_rule(Parser *p)
11594{
11595 D(p->level++);
11596 if (p->error_indicator) {
11597 D(p->level--);
11598 return NULL;
11599 }
11600 expr_ty _res = NULL;
11601 int _mark = p->mark;
11602 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11603 p->error_indicator = 1;
11604 D(p->level--);
11605 return NULL;
11606 }
11607 int _start_lineno = p->tokens[_mark]->lineno;
11608 UNUSED(_start_lineno); // Only used by EXTRA macro
11609 int _start_col_offset = p->tokens[_mark]->col_offset;
11610 UNUSED(_start_col_offset); // Only used by EXTRA macro
11611 { // '{' double_starred_kvpairs? '}'
11612 if (p->error_indicator) {
11613 D(p->level--);
11614 return NULL;
11615 }
11616 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
11617 Token * _literal;
11618 Token * _literal_1;
11619 void *a;
11620 if (
11621 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
11622 &&
11623 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
11624 &&
11625 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
11626 )
11627 {
11628 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
11629 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11630 if (_token == NULL) {
11631 D(p->level--);
11632 return NULL;
11633 }
11634 int _end_lineno = _token->end_lineno;
11635 UNUSED(_end_lineno); // Only used by EXTRA macro
11636 int _end_col_offset = _token->end_col_offset;
11637 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030011638 _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 +010011639 if (_res == NULL && PyErr_Occurred()) {
11640 p->error_indicator = 1;
11641 D(p->level--);
11642 return NULL;
11643 }
11644 goto done;
11645 }
11646 p->mark = _mark;
11647 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
11648 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
11649 }
11650 _res = NULL;
11651 done:
11652 D(p->level--);
11653 return _res;
11654}
11655
11656// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
11657static expr_ty
11658dictcomp_rule(Parser *p)
11659{
11660 D(p->level++);
11661 if (p->error_indicator) {
11662 D(p->level--);
11663 return NULL;
11664 }
11665 expr_ty _res = NULL;
11666 int _mark = p->mark;
11667 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11668 p->error_indicator = 1;
11669 D(p->level--);
11670 return NULL;
11671 }
11672 int _start_lineno = p->tokens[_mark]->lineno;
11673 UNUSED(_start_lineno); // Only used by EXTRA macro
11674 int _start_col_offset = p->tokens[_mark]->col_offset;
11675 UNUSED(_start_col_offset); // Only used by EXTRA macro
11676 { // '{' kvpair for_if_clauses '}'
11677 if (p->error_indicator) {
11678 D(p->level--);
11679 return NULL;
11680 }
11681 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
11682 Token * _literal;
11683 Token * _literal_1;
11684 KeyValuePair* a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011685 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011686 if (
11687 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
11688 &&
11689 (a = kvpair_rule(p)) // kvpair
11690 &&
11691 (b = for_if_clauses_rule(p)) // for_if_clauses
11692 &&
11693 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
11694 )
11695 {
11696 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
11697 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11698 if (_token == NULL) {
11699 D(p->level--);
11700 return NULL;
11701 }
11702 int _end_lineno = _token->end_lineno;
11703 UNUSED(_end_lineno); // Only used by EXTRA macro
11704 int _end_col_offset = _token->end_col_offset;
11705 UNUSED(_end_col_offset); // Only used by EXTRA macro
11706 _res = _Py_DictComp ( a -> key , a -> value , b , EXTRA );
11707 if (_res == NULL && PyErr_Occurred()) {
11708 p->error_indicator = 1;
11709 D(p->level--);
11710 return NULL;
11711 }
11712 goto done;
11713 }
11714 p->mark = _mark;
11715 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
11716 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
11717 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011718 if (p->call_invalid_rules) { // invalid_dict_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011719 if (p->error_indicator) {
11720 D(p->level--);
11721 return NULL;
11722 }
11723 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
11724 void *invalid_dict_comprehension_var;
11725 if (
11726 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
11727 )
11728 {
11729 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
11730 _res = invalid_dict_comprehension_var;
11731 goto done;
11732 }
11733 p->mark = _mark;
11734 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
11735 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
11736 }
11737 _res = NULL;
11738 done:
11739 D(p->level--);
11740 return _res;
11741}
11742
11743// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
11744static asdl_seq*
11745double_starred_kvpairs_rule(Parser *p)
11746{
11747 D(p->level++);
11748 if (p->error_indicator) {
11749 D(p->level--);
11750 return NULL;
11751 }
11752 asdl_seq* _res = NULL;
11753 int _mark = p->mark;
11754 { // ','.double_starred_kvpair+ ','?
11755 if (p->error_indicator) {
11756 D(p->level--);
11757 return NULL;
11758 }
11759 D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
11760 void *_opt_var;
11761 UNUSED(_opt_var); // Silence compiler warnings
11762 asdl_seq * a;
11763 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011764 (a = _gather_101_rule(p)) // ','.double_starred_kvpair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011765 &&
11766 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
11767 )
11768 {
11769 D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
11770 _res = a;
11771 if (_res == NULL && PyErr_Occurred()) {
11772 p->error_indicator = 1;
11773 D(p->level--);
11774 return NULL;
11775 }
11776 goto done;
11777 }
11778 p->mark = _mark;
11779 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
11780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
11781 }
11782 _res = NULL;
11783 done:
11784 D(p->level--);
11785 return _res;
11786}
11787
11788// double_starred_kvpair: '**' bitwise_or | kvpair
11789static KeyValuePair*
11790double_starred_kvpair_rule(Parser *p)
11791{
11792 D(p->level++);
11793 if (p->error_indicator) {
11794 D(p->level--);
11795 return NULL;
11796 }
11797 KeyValuePair* _res = NULL;
11798 int _mark = p->mark;
11799 { // '**' bitwise_or
11800 if (p->error_indicator) {
11801 D(p->level--);
11802 return NULL;
11803 }
11804 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
11805 Token * _literal;
11806 expr_ty a;
11807 if (
11808 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
11809 &&
11810 (a = bitwise_or_rule(p)) // bitwise_or
11811 )
11812 {
11813 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
11814 _res = _PyPegen_key_value_pair ( p , NULL , a );
11815 if (_res == NULL && PyErr_Occurred()) {
11816 p->error_indicator = 1;
11817 D(p->level--);
11818 return NULL;
11819 }
11820 goto done;
11821 }
11822 p->mark = _mark;
11823 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11824 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
11825 }
11826 { // kvpair
11827 if (p->error_indicator) {
11828 D(p->level--);
11829 return NULL;
11830 }
11831 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
11832 KeyValuePair* kvpair_var;
11833 if (
11834 (kvpair_var = kvpair_rule(p)) // kvpair
11835 )
11836 {
11837 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
11838 _res = kvpair_var;
11839 goto done;
11840 }
11841 p->mark = _mark;
11842 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
11844 }
11845 _res = NULL;
11846 done:
11847 D(p->level--);
11848 return _res;
11849}
11850
11851// kvpair: expression ':' expression
11852static KeyValuePair*
11853kvpair_rule(Parser *p)
11854{
11855 D(p->level++);
11856 if (p->error_indicator) {
11857 D(p->level--);
11858 return NULL;
11859 }
11860 KeyValuePair* _res = NULL;
11861 int _mark = p->mark;
11862 { // expression ':' expression
11863 if (p->error_indicator) {
11864 D(p->level--);
11865 return NULL;
11866 }
11867 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
11868 Token * _literal;
11869 expr_ty a;
11870 expr_ty b;
11871 if (
11872 (a = expression_rule(p)) // expression
11873 &&
11874 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
11875 &&
11876 (b = expression_rule(p)) // expression
11877 )
11878 {
11879 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
11880 _res = _PyPegen_key_value_pair ( p , a , b );
11881 if (_res == NULL && PyErr_Occurred()) {
11882 p->error_indicator = 1;
11883 D(p->level--);
11884 return NULL;
11885 }
11886 goto done;
11887 }
11888 p->mark = _mark;
11889 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11890 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
11891 }
11892 _res = NULL;
11893 done:
11894 D(p->level--);
11895 return _res;
11896}
11897
11898// for_if_clauses: for_if_clause+
Pablo Galindoa5634c42020-09-16 19:42:00 +010011899static asdl_comprehension_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011900for_if_clauses_rule(Parser *p)
11901{
11902 D(p->level++);
11903 if (p->error_indicator) {
11904 D(p->level--);
11905 return NULL;
11906 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010011907 asdl_comprehension_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011908 int _mark = p->mark;
11909 { // for_if_clause+
11910 if (p->error_indicator) {
11911 D(p->level--);
11912 return NULL;
11913 }
11914 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 +010011915 asdl_comprehension_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011916 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011917 (a = (asdl_comprehension_seq*)_loop1_103_rule(p)) // for_if_clause+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011918 )
11919 {
11920 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 +010011921 _res = a;
11922 if (_res == NULL && PyErr_Occurred()) {
11923 p->error_indicator = 1;
11924 D(p->level--);
11925 return NULL;
11926 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011927 goto done;
11928 }
11929 p->mark = _mark;
11930 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
11931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
11932 }
11933 _res = NULL;
11934 done:
11935 D(p->level--);
11936 return _res;
11937}
11938
11939// for_if_clause:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011940// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
11941// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
11942// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011943static comprehension_ty
11944for_if_clause_rule(Parser *p)
11945{
11946 D(p->level++);
11947 if (p->error_indicator) {
11948 D(p->level--);
11949 return NULL;
11950 }
11951 comprehension_ty _res = NULL;
11952 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011953 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011954 if (p->error_indicator) {
11955 D(p->level--);
11956 return NULL;
11957 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011958 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
11959 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011960 Token * _keyword;
11961 Token * _keyword_1;
11962 expr_ty a;
11963 Token * async_var;
11964 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011965 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011966 if (
11967 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
11968 &&
11969 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
11970 &&
11971 (a = star_targets_rule(p)) // star_targets
11972 &&
11973 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
11974 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011975 (_cut_var = 1)
11976 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011977 (b = disjunction_rule(p)) // disjunction
11978 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011979 (c = (asdl_expr_seq*)_loop0_104_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011980 )
11981 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011982 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 +030011983 _res = CHECK_VERSION ( comprehension_ty , 6 , "Async comprehensions are" , _Py_comprehension ( a , b , c , 1 , p -> arena ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011984 if (_res == NULL && PyErr_Occurred()) {
11985 p->error_indicator = 1;
11986 D(p->level--);
11987 return NULL;
11988 }
11989 goto done;
11990 }
11991 p->mark = _mark;
11992 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
11994 if (_cut_var) {
11995 D(p->level--);
11996 return NULL;
11997 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011998 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011999 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012000 if (p->error_indicator) {
12001 D(p->level--);
12002 return NULL;
12003 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030012004 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
12005 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012006 Token * _keyword;
12007 Token * _keyword_1;
12008 expr_ty a;
12009 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010012010 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012011 if (
12012 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
12013 &&
12014 (a = star_targets_rule(p)) // star_targets
12015 &&
12016 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
12017 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030012018 (_cut_var = 1)
12019 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012020 (b = disjunction_rule(p)) // disjunction
12021 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012022 (c = (asdl_expr_seq*)_loop0_105_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012023 )
12024 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030012025 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 +010012026 _res = _Py_comprehension ( a , b , c , 0 , p -> arena );
12027 if (_res == NULL && PyErr_Occurred()) {
12028 p->error_indicator = 1;
12029 D(p->level--);
12030 return NULL;
12031 }
12032 goto done;
12033 }
12034 p->mark = _mark;
12035 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030012036 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
12037 if (_cut_var) {
12038 D(p->level--);
12039 return NULL;
12040 }
12041 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012042 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030012043 if (p->error_indicator) {
12044 D(p->level--);
12045 return NULL;
12046 }
12047 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
12048 void *invalid_for_target_var;
12049 if (
12050 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
12051 )
12052 {
12053 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
12054 _res = invalid_for_target_var;
12055 goto done;
12056 }
12057 p->mark = _mark;
12058 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
12059 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012060 }
12061 _res = NULL;
12062 done:
12063 D(p->level--);
12064 return _res;
12065}
12066
12067// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
12068static expr_ty
12069yield_expr_rule(Parser *p)
12070{
12071 D(p->level++);
12072 if (p->error_indicator) {
12073 D(p->level--);
12074 return NULL;
12075 }
12076 expr_ty _res = NULL;
12077 int _mark = p->mark;
12078 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12079 p->error_indicator = 1;
12080 D(p->level--);
12081 return NULL;
12082 }
12083 int _start_lineno = p->tokens[_mark]->lineno;
12084 UNUSED(_start_lineno); // Only used by EXTRA macro
12085 int _start_col_offset = p->tokens[_mark]->col_offset;
12086 UNUSED(_start_col_offset); // Only used by EXTRA macro
12087 { // 'yield' 'from' expression
12088 if (p->error_indicator) {
12089 D(p->level--);
12090 return NULL;
12091 }
12092 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
12093 Token * _keyword;
12094 Token * _keyword_1;
12095 expr_ty a;
12096 if (
12097 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
12098 &&
12099 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
12100 &&
12101 (a = expression_rule(p)) // expression
12102 )
12103 {
12104 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
12105 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12106 if (_token == NULL) {
12107 D(p->level--);
12108 return NULL;
12109 }
12110 int _end_lineno = _token->end_lineno;
12111 UNUSED(_end_lineno); // Only used by EXTRA macro
12112 int _end_col_offset = _token->end_col_offset;
12113 UNUSED(_end_col_offset); // Only used by EXTRA macro
12114 _res = _Py_YieldFrom ( a , EXTRA );
12115 if (_res == NULL && PyErr_Occurred()) {
12116 p->error_indicator = 1;
12117 D(p->level--);
12118 return NULL;
12119 }
12120 goto done;
12121 }
12122 p->mark = _mark;
12123 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
12124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
12125 }
12126 { // 'yield' star_expressions?
12127 if (p->error_indicator) {
12128 D(p->level--);
12129 return NULL;
12130 }
12131 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
12132 Token * _keyword;
12133 void *a;
12134 if (
12135 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
12136 &&
12137 (a = star_expressions_rule(p), 1) // star_expressions?
12138 )
12139 {
12140 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
12141 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12142 if (_token == NULL) {
12143 D(p->level--);
12144 return NULL;
12145 }
12146 int _end_lineno = _token->end_lineno;
12147 UNUSED(_end_lineno); // Only used by EXTRA macro
12148 int _end_col_offset = _token->end_col_offset;
12149 UNUSED(_end_col_offset); // Only used by EXTRA macro
12150 _res = _Py_Yield ( a , EXTRA );
12151 if (_res == NULL && PyErr_Occurred()) {
12152 p->error_indicator = 1;
12153 D(p->level--);
12154 return NULL;
12155 }
12156 goto done;
12157 }
12158 p->mark = _mark;
12159 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
12160 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
12161 }
12162 _res = NULL;
12163 done:
12164 D(p->level--);
12165 return _res;
12166}
12167
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012168// arguments: args ','? &')' | invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012169static expr_ty
12170arguments_rule(Parser *p)
12171{
12172 D(p->level++);
12173 if (p->error_indicator) {
12174 D(p->level--);
12175 return NULL;
12176 }
12177 expr_ty _res = NULL;
12178 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
12179 D(p->level--);
12180 return _res;
12181 }
12182 int _mark = p->mark;
12183 { // args ','? &')'
12184 if (p->error_indicator) {
12185 D(p->level--);
12186 return NULL;
12187 }
12188 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
12189 void *_opt_var;
12190 UNUSED(_opt_var); // Silence compiler warnings
12191 expr_ty a;
12192 if (
12193 (a = args_rule(p)) // args
12194 &&
12195 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
12196 &&
12197 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
12198 )
12199 {
12200 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
12201 _res = a;
12202 if (_res == NULL && PyErr_Occurred()) {
12203 p->error_indicator = 1;
12204 D(p->level--);
12205 return NULL;
12206 }
12207 goto done;
12208 }
12209 p->mark = _mark;
12210 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
12211 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
12212 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012213 if (p->call_invalid_rules) { // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012214 if (p->error_indicator) {
12215 D(p->level--);
12216 return NULL;
12217 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012218 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
12219 void *invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012220 if (
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012221 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012222 )
12223 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012224 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
12225 _res = invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012226 goto done;
12227 }
12228 p->mark = _mark;
12229 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012230 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012231 }
12232 _res = NULL;
12233 done:
12234 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
12235 D(p->level--);
12236 return _res;
12237}
12238
Pablo Galindo4a97b152020-09-02 17:44:19 +010012239// args: ','.(starred_expression | named_expression !'=')+ [',' kwargs] | kwargs
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012240static expr_ty
12241args_rule(Parser *p)
12242{
12243 D(p->level++);
12244 if (p->error_indicator) {
12245 D(p->level--);
12246 return NULL;
12247 }
12248 expr_ty _res = NULL;
12249 int _mark = p->mark;
12250 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12251 p->error_indicator = 1;
12252 D(p->level--);
12253 return NULL;
12254 }
12255 int _start_lineno = p->tokens[_mark]->lineno;
12256 UNUSED(_start_lineno); // Only used by EXTRA macro
12257 int _start_col_offset = p->tokens[_mark]->col_offset;
12258 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo4a97b152020-09-02 17:44:19 +010012259 { // ','.(starred_expression | named_expression !'=')+ [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012260 if (p->error_indicator) {
12261 D(p->level--);
12262 return NULL;
12263 }
Pablo Galindo4a97b152020-09-02 17:44:19 +010012264 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 +010012265 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012266 void *b;
12267 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012268 (a = (asdl_expr_seq*)_gather_106_rule(p)) // ','.(starred_expression | named_expression !'=')+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012269 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012270 (b = _tmp_108_rule(p), 1) // [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012271 )
12272 {
Pablo Galindo4a97b152020-09-02 17:44:19 +010012273 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 +010012274 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12275 if (_token == NULL) {
12276 D(p->level--);
12277 return NULL;
12278 }
12279 int _end_lineno = _token->end_lineno;
12280 UNUSED(_end_lineno); // Only used by EXTRA macro
12281 int _end_col_offset = _token->end_col_offset;
12282 UNUSED(_end_col_offset); // Only used by EXTRA macro
12283 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012284 if (_res == NULL && PyErr_Occurred()) {
12285 p->error_indicator = 1;
12286 D(p->level--);
12287 return NULL;
12288 }
12289 goto done;
12290 }
12291 p->mark = _mark;
12292 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010012293 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012294 }
12295 { // kwargs
12296 if (p->error_indicator) {
12297 D(p->level--);
12298 return NULL;
12299 }
12300 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
12301 asdl_seq* a;
12302 if (
12303 (a = kwargs_rule(p)) // kwargs
12304 )
12305 {
12306 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
12307 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12308 if (_token == NULL) {
12309 D(p->level--);
12310 return NULL;
12311 }
12312 int _end_lineno = _token->end_lineno;
12313 UNUSED(_end_lineno); // Only used by EXTRA macro
12314 int _end_col_offset = _token->end_col_offset;
12315 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012316 _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 +010012317 if (_res == NULL && PyErr_Occurred()) {
12318 p->error_indicator = 1;
12319 D(p->level--);
12320 return NULL;
12321 }
12322 goto done;
12323 }
12324 p->mark = _mark;
12325 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
12326 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
12327 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012328 _res = NULL;
12329 done:
12330 D(p->level--);
12331 return _res;
12332}
12333
12334// kwargs:
12335// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
12336// | ','.kwarg_or_starred+
12337// | ','.kwarg_or_double_starred+
12338static asdl_seq*
12339kwargs_rule(Parser *p)
12340{
12341 D(p->level++);
12342 if (p->error_indicator) {
12343 D(p->level--);
12344 return NULL;
12345 }
12346 asdl_seq* _res = NULL;
12347 int _mark = p->mark;
12348 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
12349 if (p->error_indicator) {
12350 D(p->level--);
12351 return NULL;
12352 }
12353 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
12354 Token * _literal;
12355 asdl_seq * a;
12356 asdl_seq * b;
12357 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012358 (a = _gather_109_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012359 &&
12360 (_literal = _PyPegen_expect_token(p, 12)) // token=','
12361 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012362 (b = _gather_111_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012363 )
12364 {
12365 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
12366 _res = _PyPegen_join_sequences ( p , a , b );
12367 if (_res == NULL && PyErr_Occurred()) {
12368 p->error_indicator = 1;
12369 D(p->level--);
12370 return NULL;
12371 }
12372 goto done;
12373 }
12374 p->mark = _mark;
12375 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12376 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
12377 }
12378 { // ','.kwarg_or_starred+
12379 if (p->error_indicator) {
12380 D(p->level--);
12381 return NULL;
12382 }
12383 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012384 asdl_seq * _gather_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012385 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012386 (_gather_113_var = _gather_113_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012387 )
12388 {
12389 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 +000012390 _res = _gather_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012391 goto done;
12392 }
12393 p->mark = _mark;
12394 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12395 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
12396 }
12397 { // ','.kwarg_or_double_starred+
12398 if (p->error_indicator) {
12399 D(p->level--);
12400 return NULL;
12401 }
12402 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 +000012403 asdl_seq * _gather_115_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012404 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012405 (_gather_115_var = _gather_115_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012406 )
12407 {
12408 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 +000012409 _res = _gather_115_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012410 goto done;
12411 }
12412 p->mark = _mark;
12413 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
12415 }
12416 _res = NULL;
12417 done:
12418 D(p->level--);
12419 return _res;
12420}
12421
12422// starred_expression: '*' expression
12423static expr_ty
12424starred_expression_rule(Parser *p)
12425{
12426 D(p->level++);
12427 if (p->error_indicator) {
12428 D(p->level--);
12429 return NULL;
12430 }
12431 expr_ty _res = NULL;
12432 int _mark = p->mark;
12433 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12434 p->error_indicator = 1;
12435 D(p->level--);
12436 return NULL;
12437 }
12438 int _start_lineno = p->tokens[_mark]->lineno;
12439 UNUSED(_start_lineno); // Only used by EXTRA macro
12440 int _start_col_offset = p->tokens[_mark]->col_offset;
12441 UNUSED(_start_col_offset); // Only used by EXTRA macro
12442 { // '*' expression
12443 if (p->error_indicator) {
12444 D(p->level--);
12445 return NULL;
12446 }
12447 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
12448 Token * _literal;
12449 expr_ty a;
12450 if (
12451 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
12452 &&
12453 (a = expression_rule(p)) // expression
12454 )
12455 {
12456 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
12457 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12458 if (_token == NULL) {
12459 D(p->level--);
12460 return NULL;
12461 }
12462 int _end_lineno = _token->end_lineno;
12463 UNUSED(_end_lineno); // Only used by EXTRA macro
12464 int _end_col_offset = _token->end_col_offset;
12465 UNUSED(_end_col_offset); // Only used by EXTRA macro
12466 _res = _Py_Starred ( a , Load , EXTRA );
12467 if (_res == NULL && PyErr_Occurred()) {
12468 p->error_indicator = 1;
12469 D(p->level--);
12470 return NULL;
12471 }
12472 goto done;
12473 }
12474 p->mark = _mark;
12475 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
12476 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
12477 }
12478 _res = NULL;
12479 done:
12480 D(p->level--);
12481 return _res;
12482}
12483
12484// kwarg_or_starred: NAME '=' expression | starred_expression | invalid_kwarg
12485static KeywordOrStarred*
12486kwarg_or_starred_rule(Parser *p)
12487{
12488 D(p->level++);
12489 if (p->error_indicator) {
12490 D(p->level--);
12491 return NULL;
12492 }
12493 KeywordOrStarred* _res = NULL;
12494 int _mark = p->mark;
12495 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12496 p->error_indicator = 1;
12497 D(p->level--);
12498 return NULL;
12499 }
12500 int _start_lineno = p->tokens[_mark]->lineno;
12501 UNUSED(_start_lineno); // Only used by EXTRA macro
12502 int _start_col_offset = p->tokens[_mark]->col_offset;
12503 UNUSED(_start_col_offset); // Only used by EXTRA macro
12504 { // NAME '=' expression
12505 if (p->error_indicator) {
12506 D(p->level--);
12507 return NULL;
12508 }
12509 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
12510 Token * _literal;
12511 expr_ty a;
12512 expr_ty b;
12513 if (
12514 (a = _PyPegen_name_token(p)) // NAME
12515 &&
12516 (_literal = _PyPegen_expect_token(p, 22)) // token='='
12517 &&
12518 (b = expression_rule(p)) // expression
12519 )
12520 {
12521 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
12522 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12523 if (_token == NULL) {
12524 D(p->level--);
12525 return NULL;
12526 }
12527 int _end_lineno = _token->end_lineno;
12528 UNUSED(_end_lineno); // Only used by EXTRA macro
12529 int _end_col_offset = _token->end_col_offset;
12530 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012531 _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 +010012532 if (_res == NULL && PyErr_Occurred()) {
12533 p->error_indicator = 1;
12534 D(p->level--);
12535 return NULL;
12536 }
12537 goto done;
12538 }
12539 p->mark = _mark;
12540 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12541 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
12542 }
12543 { // starred_expression
12544 if (p->error_indicator) {
12545 D(p->level--);
12546 return NULL;
12547 }
12548 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
12549 expr_ty a;
12550 if (
12551 (a = starred_expression_rule(p)) // starred_expression
12552 )
12553 {
12554 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
12555 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
12556 if (_res == NULL && PyErr_Occurred()) {
12557 p->error_indicator = 1;
12558 D(p->level--);
12559 return NULL;
12560 }
12561 goto done;
12562 }
12563 p->mark = _mark;
12564 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12565 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
12566 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012567 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012568 if (p->error_indicator) {
12569 D(p->level--);
12570 return NULL;
12571 }
12572 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
12573 void *invalid_kwarg_var;
12574 if (
12575 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
12576 )
12577 {
12578 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
12579 _res = invalid_kwarg_var;
12580 goto done;
12581 }
12582 p->mark = _mark;
12583 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
12585 }
12586 _res = NULL;
12587 done:
12588 D(p->level--);
12589 return _res;
12590}
12591
12592// kwarg_or_double_starred: NAME '=' expression | '**' expression | invalid_kwarg
12593static KeywordOrStarred*
12594kwarg_or_double_starred_rule(Parser *p)
12595{
12596 D(p->level++);
12597 if (p->error_indicator) {
12598 D(p->level--);
12599 return NULL;
12600 }
12601 KeywordOrStarred* _res = NULL;
12602 int _mark = p->mark;
12603 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12604 p->error_indicator = 1;
12605 D(p->level--);
12606 return NULL;
12607 }
12608 int _start_lineno = p->tokens[_mark]->lineno;
12609 UNUSED(_start_lineno); // Only used by EXTRA macro
12610 int _start_col_offset = p->tokens[_mark]->col_offset;
12611 UNUSED(_start_col_offset); // Only used by EXTRA macro
12612 { // NAME '=' expression
12613 if (p->error_indicator) {
12614 D(p->level--);
12615 return NULL;
12616 }
12617 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
12618 Token * _literal;
12619 expr_ty a;
12620 expr_ty b;
12621 if (
12622 (a = _PyPegen_name_token(p)) // NAME
12623 &&
12624 (_literal = _PyPegen_expect_token(p, 22)) // token='='
12625 &&
12626 (b = expression_rule(p)) // expression
12627 )
12628 {
12629 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
12630 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12631 if (_token == NULL) {
12632 D(p->level--);
12633 return NULL;
12634 }
12635 int _end_lineno = _token->end_lineno;
12636 UNUSED(_end_lineno); // Only used by EXTRA macro
12637 int _end_col_offset = _token->end_col_offset;
12638 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012639 _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 +010012640 if (_res == NULL && PyErr_Occurred()) {
12641 p->error_indicator = 1;
12642 D(p->level--);
12643 return NULL;
12644 }
12645 goto done;
12646 }
12647 p->mark = _mark;
12648 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
12650 }
12651 { // '**' expression
12652 if (p->error_indicator) {
12653 D(p->level--);
12654 return NULL;
12655 }
12656 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
12657 Token * _literal;
12658 expr_ty a;
12659 if (
12660 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
12661 &&
12662 (a = expression_rule(p)) // expression
12663 )
12664 {
12665 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
12666 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12667 if (_token == NULL) {
12668 D(p->level--);
12669 return NULL;
12670 }
12671 int _end_lineno = _token->end_lineno;
12672 UNUSED(_end_lineno); // Only used by EXTRA macro
12673 int _end_col_offset = _token->end_col_offset;
12674 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012675 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _Py_keyword ( NULL , a , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012676 if (_res == NULL && PyErr_Occurred()) {
12677 p->error_indicator = 1;
12678 D(p->level--);
12679 return NULL;
12680 }
12681 goto done;
12682 }
12683 p->mark = _mark;
12684 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
12686 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012687 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012688 if (p->error_indicator) {
12689 D(p->level--);
12690 return NULL;
12691 }
12692 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
12693 void *invalid_kwarg_var;
12694 if (
12695 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
12696 )
12697 {
12698 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
12699 _res = invalid_kwarg_var;
12700 goto done;
12701 }
12702 p->mark = _mark;
12703 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12704 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
12705 }
12706 _res = NULL;
12707 done:
12708 D(p->level--);
12709 return _res;
12710}
12711
12712// star_targets: star_target !',' | star_target ((',' star_target))* ','?
12713static expr_ty
12714star_targets_rule(Parser *p)
12715{
12716 D(p->level++);
12717 if (p->error_indicator) {
12718 D(p->level--);
12719 return NULL;
12720 }
12721 expr_ty _res = NULL;
12722 int _mark = p->mark;
12723 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12724 p->error_indicator = 1;
12725 D(p->level--);
12726 return NULL;
12727 }
12728 int _start_lineno = p->tokens[_mark]->lineno;
12729 UNUSED(_start_lineno); // Only used by EXTRA macro
12730 int _start_col_offset = p->tokens[_mark]->col_offset;
12731 UNUSED(_start_col_offset); // Only used by EXTRA macro
12732 { // star_target !','
12733 if (p->error_indicator) {
12734 D(p->level--);
12735 return NULL;
12736 }
12737 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
12738 expr_ty a;
12739 if (
12740 (a = star_target_rule(p)) // star_target
12741 &&
12742 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
12743 )
12744 {
12745 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
12746 _res = a;
12747 if (_res == NULL && PyErr_Occurred()) {
12748 p->error_indicator = 1;
12749 D(p->level--);
12750 return NULL;
12751 }
12752 goto done;
12753 }
12754 p->mark = _mark;
12755 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
12756 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
12757 }
12758 { // star_target ((',' star_target))* ','?
12759 if (p->error_indicator) {
12760 D(p->level--);
12761 return NULL;
12762 }
12763 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
12764 void *_opt_var;
12765 UNUSED(_opt_var); // Silence compiler warnings
12766 expr_ty a;
12767 asdl_seq * b;
12768 if (
12769 (a = star_target_rule(p)) // star_target
12770 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012771 (b = _loop0_117_rule(p)) // ((',' star_target))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012772 &&
12773 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
12774 )
12775 {
12776 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
12777 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12778 if (_token == NULL) {
12779 D(p->level--);
12780 return NULL;
12781 }
12782 int _end_lineno = _token->end_lineno;
12783 UNUSED(_end_lineno); // Only used by EXTRA macro
12784 int _end_col_offset = _token->end_col_offset;
12785 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012786 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012787 if (_res == NULL && PyErr_Occurred()) {
12788 p->error_indicator = 1;
12789 D(p->level--);
12790 return NULL;
12791 }
12792 goto done;
12793 }
12794 p->mark = _mark;
12795 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
12796 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
12797 }
12798 _res = NULL;
12799 done:
12800 D(p->level--);
12801 return _res;
12802}
12803
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012804// star_targets_list_seq: ','.star_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010012805static asdl_expr_seq*
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012806star_targets_list_seq_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012807{
12808 D(p->level++);
12809 if (p->error_indicator) {
12810 D(p->level--);
12811 return NULL;
12812 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010012813 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012814 int _mark = p->mark;
12815 { // ','.star_target+ ','?
12816 if (p->error_indicator) {
12817 D(p->level--);
12818 return NULL;
12819 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012820 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 +010012821 void *_opt_var;
12822 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010012823 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012824 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012825 (a = (asdl_expr_seq*)_gather_118_rule(p)) // ','.star_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012826 &&
12827 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
12828 )
12829 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012830 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 +010012831 _res = a;
12832 if (_res == NULL && PyErr_Occurred()) {
12833 p->error_indicator = 1;
12834 D(p->level--);
12835 return NULL;
12836 }
12837 goto done;
12838 }
12839 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012840 D(fprintf(stderr, "%*c%s star_targets_list_seq[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012841 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
12842 }
12843 _res = NULL;
12844 done:
12845 D(p->level--);
12846 return _res;
12847}
12848
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012849// star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
12850static asdl_expr_seq*
12851star_targets_tuple_seq_rule(Parser *p)
12852{
12853 D(p->level++);
12854 if (p->error_indicator) {
12855 D(p->level--);
12856 return NULL;
12857 }
12858 asdl_expr_seq* _res = NULL;
12859 int _mark = p->mark;
12860 { // star_target ((',' star_target))+ ','?
12861 if (p->error_indicator) {
12862 D(p->level--);
12863 return NULL;
12864 }
12865 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
12866 void *_opt_var;
12867 UNUSED(_opt_var); // Silence compiler warnings
12868 expr_ty a;
12869 asdl_seq * b;
12870 if (
12871 (a = star_target_rule(p)) // star_target
12872 &&
12873 (b = _loop1_120_rule(p)) // ((',' star_target))+
12874 &&
12875 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
12876 )
12877 {
12878 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
12879 _res = ( asdl_expr_seq * ) _PyPegen_seq_insert_in_front ( p , a , b );
12880 if (_res == NULL && PyErr_Occurred()) {
12881 p->error_indicator = 1;
12882 D(p->level--);
12883 return NULL;
12884 }
12885 goto done;
12886 }
12887 p->mark = _mark;
12888 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
12889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))+ ','?"));
12890 }
12891 { // star_target ','
12892 if (p->error_indicator) {
12893 D(p->level--);
12894 return NULL;
12895 }
12896 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ','"));
12897 Token * _literal;
12898 expr_ty a;
12899 if (
12900 (a = star_target_rule(p)) // star_target
12901 &&
12902 (_literal = _PyPegen_expect_token(p, 12)) // token=','
12903 )
12904 {
12905 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
12906 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
12907 if (_res == NULL && PyErr_Occurred()) {
12908 p->error_indicator = 1;
12909 D(p->level--);
12910 return NULL;
12911 }
12912 goto done;
12913 }
12914 p->mark = _mark;
12915 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
12916 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ','"));
12917 }
12918 _res = NULL;
12919 done:
12920 D(p->level--);
12921 return _res;
12922}
12923
12924// star_target: '*' (!'*' star_target) | target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012925static expr_ty
12926star_target_rule(Parser *p)
12927{
12928 D(p->level++);
12929 if (p->error_indicator) {
12930 D(p->level--);
12931 return NULL;
12932 }
12933 expr_ty _res = NULL;
12934 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
12935 D(p->level--);
12936 return _res;
12937 }
12938 int _mark = p->mark;
12939 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12940 p->error_indicator = 1;
12941 D(p->level--);
12942 return NULL;
12943 }
12944 int _start_lineno = p->tokens[_mark]->lineno;
12945 UNUSED(_start_lineno); // Only used by EXTRA macro
12946 int _start_col_offset = p->tokens[_mark]->col_offset;
12947 UNUSED(_start_col_offset); // Only used by EXTRA macro
12948 { // '*' (!'*' star_target)
12949 if (p->error_indicator) {
12950 D(p->level--);
12951 return NULL;
12952 }
12953 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
12954 Token * _literal;
12955 void *a;
12956 if (
12957 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
12958 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012959 (a = _tmp_121_rule(p)) // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012960 )
12961 {
12962 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
12963 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12964 if (_token == NULL) {
12965 D(p->level--);
12966 return NULL;
12967 }
12968 int _end_lineno = _token->end_lineno;
12969 UNUSED(_end_lineno); // Only used by EXTRA macro
12970 int _end_col_offset = _token->end_col_offset;
12971 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012972 _res = _Py_Starred ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012973 if (_res == NULL && PyErr_Occurred()) {
12974 p->error_indicator = 1;
12975 D(p->level--);
12976 return NULL;
12977 }
12978 goto done;
12979 }
12980 p->mark = _mark;
12981 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12982 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
12983 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012984 { // target_with_star_atom
12985 if (p->error_indicator) {
12986 D(p->level--);
12987 return NULL;
12988 }
12989 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
12990 expr_ty target_with_star_atom_var;
12991 if (
12992 (target_with_star_atom_var = target_with_star_atom_rule(p)) // target_with_star_atom
12993 )
12994 {
12995 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
12996 _res = target_with_star_atom_var;
12997 goto done;
12998 }
12999 p->mark = _mark;
13000 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
13001 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_with_star_atom"));
13002 }
13003 _res = NULL;
13004 done:
13005 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
13006 D(p->level--);
13007 return _res;
13008}
13009
13010// target_with_star_atom:
13011// | t_primary '.' NAME !t_lookahead
13012// | t_primary '[' slices ']' !t_lookahead
13013// | star_atom
13014static expr_ty
13015target_with_star_atom_rule(Parser *p)
13016{
13017 D(p->level++);
13018 if (p->error_indicator) {
13019 D(p->level--);
13020 return NULL;
13021 }
13022 expr_ty _res = NULL;
13023 if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
13024 D(p->level--);
13025 return _res;
13026 }
13027 int _mark = p->mark;
13028 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13029 p->error_indicator = 1;
13030 D(p->level--);
13031 return NULL;
13032 }
13033 int _start_lineno = p->tokens[_mark]->lineno;
13034 UNUSED(_start_lineno); // Only used by EXTRA macro
13035 int _start_col_offset = p->tokens[_mark]->col_offset;
13036 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013037 { // t_primary '.' NAME !t_lookahead
13038 if (p->error_indicator) {
13039 D(p->level--);
13040 return NULL;
13041 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013042 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 +010013043 Token * _literal;
13044 expr_ty a;
13045 expr_ty b;
13046 if (
13047 (a = t_primary_rule(p)) // t_primary
13048 &&
13049 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13050 &&
13051 (b = _PyPegen_name_token(p)) // NAME
13052 &&
13053 _PyPegen_lookahead(0, t_lookahead_rule, p)
13054 )
13055 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013056 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 +010013057 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13058 if (_token == NULL) {
13059 D(p->level--);
13060 return NULL;
13061 }
13062 int _end_lineno = _token->end_lineno;
13063 UNUSED(_end_lineno); // Only used by EXTRA macro
13064 int _end_col_offset = _token->end_col_offset;
13065 UNUSED(_end_col_offset); // Only used by EXTRA macro
13066 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13067 if (_res == NULL && PyErr_Occurred()) {
13068 p->error_indicator = 1;
13069 D(p->level--);
13070 return NULL;
13071 }
13072 goto done;
13073 }
13074 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013075 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013076 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13077 }
13078 { // t_primary '[' slices ']' !t_lookahead
13079 if (p->error_indicator) {
13080 D(p->level--);
13081 return NULL;
13082 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013083 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 +010013084 Token * _literal;
13085 Token * _literal_1;
13086 expr_ty a;
13087 expr_ty b;
13088 if (
13089 (a = t_primary_rule(p)) // t_primary
13090 &&
13091 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13092 &&
13093 (b = slices_rule(p)) // slices
13094 &&
13095 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13096 &&
13097 _PyPegen_lookahead(0, t_lookahead_rule, p)
13098 )
13099 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013100 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 +010013101 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13102 if (_token == NULL) {
13103 D(p->level--);
13104 return NULL;
13105 }
13106 int _end_lineno = _token->end_lineno;
13107 UNUSED(_end_lineno); // Only used by EXTRA macro
13108 int _end_col_offset = _token->end_col_offset;
13109 UNUSED(_end_col_offset); // Only used by EXTRA macro
13110 _res = _Py_Subscript ( a , b , Store , EXTRA );
13111 if (_res == NULL && PyErr_Occurred()) {
13112 p->error_indicator = 1;
13113 D(p->level--);
13114 return NULL;
13115 }
13116 goto done;
13117 }
13118 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013119 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013120 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13121 }
13122 { // star_atom
13123 if (p->error_indicator) {
13124 D(p->level--);
13125 return NULL;
13126 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013127 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 +010013128 expr_ty star_atom_var;
13129 if (
13130 (star_atom_var = star_atom_rule(p)) // star_atom
13131 )
13132 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013133 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 +010013134 _res = star_atom_var;
13135 goto done;
13136 }
13137 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013138 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
13140 }
13141 _res = NULL;
13142 done:
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013143 _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013144 D(p->level--);
13145 return _res;
13146}
13147
13148// star_atom:
13149// | NAME
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013150// | '(' target_with_star_atom ')'
13151// | '(' star_targets_tuple_seq? ')'
13152// | '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013153static expr_ty
13154star_atom_rule(Parser *p)
13155{
13156 D(p->level++);
13157 if (p->error_indicator) {
13158 D(p->level--);
13159 return NULL;
13160 }
13161 expr_ty _res = NULL;
13162 int _mark = p->mark;
13163 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13164 p->error_indicator = 1;
13165 D(p->level--);
13166 return NULL;
13167 }
13168 int _start_lineno = p->tokens[_mark]->lineno;
13169 UNUSED(_start_lineno); // Only used by EXTRA macro
13170 int _start_col_offset = p->tokens[_mark]->col_offset;
13171 UNUSED(_start_col_offset); // Only used by EXTRA macro
13172 { // NAME
13173 if (p->error_indicator) {
13174 D(p->level--);
13175 return NULL;
13176 }
13177 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
13178 expr_ty a;
13179 if (
13180 (a = _PyPegen_name_token(p)) // NAME
13181 )
13182 {
13183 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
13184 _res = _PyPegen_set_expr_context ( p , a , Store );
13185 if (_res == NULL && PyErr_Occurred()) {
13186 p->error_indicator = 1;
13187 D(p->level--);
13188 return NULL;
13189 }
13190 goto done;
13191 }
13192 p->mark = _mark;
13193 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13194 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
13195 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013196 { // '(' target_with_star_atom ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013197 if (p->error_indicator) {
13198 D(p->level--);
13199 return NULL;
13200 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013201 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 +010013202 Token * _literal;
13203 Token * _literal_1;
13204 expr_ty a;
13205 if (
13206 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13207 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013208 (a = target_with_star_atom_rule(p)) // target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013209 &&
13210 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13211 )
13212 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013213 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 +010013214 _res = _PyPegen_set_expr_context ( p , a , Store );
13215 if (_res == NULL && PyErr_Occurred()) {
13216 p->error_indicator = 1;
13217 D(p->level--);
13218 return NULL;
13219 }
13220 goto done;
13221 }
13222 p->mark = _mark;
13223 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013224 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013225 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013226 { // '(' star_targets_tuple_seq? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013227 if (p->error_indicator) {
13228 D(p->level--);
13229 return NULL;
13230 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013231 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 +010013232 Token * _literal;
13233 Token * _literal_1;
13234 void *a;
13235 if (
13236 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13237 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013238 (a = star_targets_tuple_seq_rule(p), 1) // star_targets_tuple_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013239 &&
13240 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13241 )
13242 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013243 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 +010013244 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13245 if (_token == NULL) {
13246 D(p->level--);
13247 return NULL;
13248 }
13249 int _end_lineno = _token->end_lineno;
13250 UNUSED(_end_lineno); // Only used by EXTRA macro
13251 int _end_col_offset = _token->end_col_offset;
13252 UNUSED(_end_col_offset); // Only used by EXTRA macro
13253 _res = _Py_Tuple ( a , Store , EXTRA );
13254 if (_res == NULL && PyErr_Occurred()) {
13255 p->error_indicator = 1;
13256 D(p->level--);
13257 return NULL;
13258 }
13259 goto done;
13260 }
13261 p->mark = _mark;
13262 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013264 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013265 { // '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013266 if (p->error_indicator) {
13267 D(p->level--);
13268 return NULL;
13269 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013270 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 +010013271 Token * _literal;
13272 Token * _literal_1;
13273 void *a;
13274 if (
13275 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13276 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013277 (a = star_targets_list_seq_rule(p), 1) // star_targets_list_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013278 &&
13279 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13280 )
13281 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013282 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 +010013283 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13284 if (_token == NULL) {
13285 D(p->level--);
13286 return NULL;
13287 }
13288 int _end_lineno = _token->end_lineno;
13289 UNUSED(_end_lineno); // Only used by EXTRA macro
13290 int _end_col_offset = _token->end_col_offset;
13291 UNUSED(_end_col_offset); // Only used by EXTRA macro
13292 _res = _Py_List ( a , Store , EXTRA );
13293 if (_res == NULL && PyErr_Occurred()) {
13294 p->error_indicator = 1;
13295 D(p->level--);
13296 return NULL;
13297 }
13298 goto done;
13299 }
13300 p->mark = _mark;
13301 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013302 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013303 }
13304 _res = NULL;
13305 done:
13306 D(p->level--);
13307 return _res;
13308}
13309
13310// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
13311static expr_ty
13312single_target_rule(Parser *p)
13313{
13314 D(p->level++);
13315 if (p->error_indicator) {
13316 D(p->level--);
13317 return NULL;
13318 }
13319 expr_ty _res = NULL;
13320 int _mark = p->mark;
13321 { // single_subscript_attribute_target
13322 if (p->error_indicator) {
13323 D(p->level--);
13324 return NULL;
13325 }
13326 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
13327 expr_ty single_subscript_attribute_target_var;
13328 if (
13329 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
13330 )
13331 {
13332 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
13333 _res = single_subscript_attribute_target_var;
13334 goto done;
13335 }
13336 p->mark = _mark;
13337 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13338 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
13339 }
13340 { // NAME
13341 if (p->error_indicator) {
13342 D(p->level--);
13343 return NULL;
13344 }
13345 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
13346 expr_ty a;
13347 if (
13348 (a = _PyPegen_name_token(p)) // NAME
13349 )
13350 {
13351 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
13352 _res = _PyPegen_set_expr_context ( p , a , Store );
13353 if (_res == NULL && PyErr_Occurred()) {
13354 p->error_indicator = 1;
13355 D(p->level--);
13356 return NULL;
13357 }
13358 goto done;
13359 }
13360 p->mark = _mark;
13361 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
13363 }
13364 { // '(' single_target ')'
13365 if (p->error_indicator) {
13366 D(p->level--);
13367 return NULL;
13368 }
13369 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
13370 Token * _literal;
13371 Token * _literal_1;
13372 expr_ty a;
13373 if (
13374 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13375 &&
13376 (a = single_target_rule(p)) // single_target
13377 &&
13378 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13379 )
13380 {
13381 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
13382 _res = a;
13383 if (_res == NULL && PyErr_Occurred()) {
13384 p->error_indicator = 1;
13385 D(p->level--);
13386 return NULL;
13387 }
13388 goto done;
13389 }
13390 p->mark = _mark;
13391 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13392 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
13393 }
13394 _res = NULL;
13395 done:
13396 D(p->level--);
13397 return _res;
13398}
13399
13400// single_subscript_attribute_target:
13401// | t_primary '.' NAME !t_lookahead
13402// | t_primary '[' slices ']' !t_lookahead
13403static expr_ty
13404single_subscript_attribute_target_rule(Parser *p)
13405{
13406 D(p->level++);
13407 if (p->error_indicator) {
13408 D(p->level--);
13409 return NULL;
13410 }
13411 expr_ty _res = NULL;
13412 int _mark = p->mark;
13413 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13414 p->error_indicator = 1;
13415 D(p->level--);
13416 return NULL;
13417 }
13418 int _start_lineno = p->tokens[_mark]->lineno;
13419 UNUSED(_start_lineno); // Only used by EXTRA macro
13420 int _start_col_offset = p->tokens[_mark]->col_offset;
13421 UNUSED(_start_col_offset); // Only used by EXTRA macro
13422 { // t_primary '.' NAME !t_lookahead
13423 if (p->error_indicator) {
13424 D(p->level--);
13425 return NULL;
13426 }
13427 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13428 Token * _literal;
13429 expr_ty a;
13430 expr_ty b;
13431 if (
13432 (a = t_primary_rule(p)) // t_primary
13433 &&
13434 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13435 &&
13436 (b = _PyPegen_name_token(p)) // NAME
13437 &&
13438 _PyPegen_lookahead(0, t_lookahead_rule, p)
13439 )
13440 {
13441 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13442 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13443 if (_token == NULL) {
13444 D(p->level--);
13445 return NULL;
13446 }
13447 int _end_lineno = _token->end_lineno;
13448 UNUSED(_end_lineno); // Only used by EXTRA macro
13449 int _end_col_offset = _token->end_col_offset;
13450 UNUSED(_end_col_offset); // Only used by EXTRA macro
13451 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13452 if (_res == NULL && PyErr_Occurred()) {
13453 p->error_indicator = 1;
13454 D(p->level--);
13455 return NULL;
13456 }
13457 goto done;
13458 }
13459 p->mark = _mark;
13460 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
13461 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13462 }
13463 { // t_primary '[' slices ']' !t_lookahead
13464 if (p->error_indicator) {
13465 D(p->level--);
13466 return NULL;
13467 }
13468 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13469 Token * _literal;
13470 Token * _literal_1;
13471 expr_ty a;
13472 expr_ty b;
13473 if (
13474 (a = t_primary_rule(p)) // t_primary
13475 &&
13476 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13477 &&
13478 (b = slices_rule(p)) // slices
13479 &&
13480 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13481 &&
13482 _PyPegen_lookahead(0, t_lookahead_rule, p)
13483 )
13484 {
13485 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13486 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13487 if (_token == NULL) {
13488 D(p->level--);
13489 return NULL;
13490 }
13491 int _end_lineno = _token->end_lineno;
13492 UNUSED(_end_lineno); // Only used by EXTRA macro
13493 int _end_col_offset = _token->end_col_offset;
13494 UNUSED(_end_col_offset); // Only used by EXTRA macro
13495 _res = _Py_Subscript ( a , b , Store , EXTRA );
13496 if (_res == NULL && PyErr_Occurred()) {
13497 p->error_indicator = 1;
13498 D(p->level--);
13499 return NULL;
13500 }
13501 goto done;
13502 }
13503 p->mark = _mark;
13504 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
13505 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13506 }
13507 _res = NULL;
13508 done:
13509 D(p->level--);
13510 return _res;
13511}
13512
13513// del_targets: ','.del_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010013514static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013515del_targets_rule(Parser *p)
13516{
13517 D(p->level++);
13518 if (p->error_indicator) {
13519 D(p->level--);
13520 return NULL;
13521 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010013522 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013523 int _mark = p->mark;
13524 { // ','.del_target+ ','?
13525 if (p->error_indicator) {
13526 D(p->level--);
13527 return NULL;
13528 }
13529 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
13530 void *_opt_var;
13531 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010013532 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013533 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013534 (a = (asdl_expr_seq*)_gather_122_rule(p)) // ','.del_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013535 &&
13536 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
13537 )
13538 {
13539 D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
13540 _res = a;
13541 if (_res == NULL && PyErr_Occurred()) {
13542 p->error_indicator = 1;
13543 D(p->level--);
13544 return NULL;
13545 }
13546 goto done;
13547 }
13548 p->mark = _mark;
13549 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
13550 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
13551 }
13552 _res = NULL;
13553 done:
13554 D(p->level--);
13555 return _res;
13556}
13557
13558// del_target:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013559// | t_primary '.' NAME !t_lookahead
13560// | t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013561// | del_t_atom
13562static expr_ty
13563del_target_rule(Parser *p)
13564{
13565 D(p->level++);
13566 if (p->error_indicator) {
13567 D(p->level--);
13568 return NULL;
13569 }
13570 expr_ty _res = NULL;
13571 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
13572 D(p->level--);
13573 return _res;
13574 }
13575 int _mark = p->mark;
13576 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13577 p->error_indicator = 1;
13578 D(p->level--);
13579 return NULL;
13580 }
13581 int _start_lineno = p->tokens[_mark]->lineno;
13582 UNUSED(_start_lineno); // Only used by EXTRA macro
13583 int _start_col_offset = p->tokens[_mark]->col_offset;
13584 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013585 { // t_primary '.' NAME !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013586 if (p->error_indicator) {
13587 D(p->level--);
13588 return NULL;
13589 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013590 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 +010013591 Token * _literal;
13592 expr_ty a;
13593 expr_ty b;
13594 if (
13595 (a = t_primary_rule(p)) // t_primary
13596 &&
13597 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13598 &&
13599 (b = _PyPegen_name_token(p)) // NAME
13600 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013601 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013602 )
13603 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013604 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 +010013605 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13606 if (_token == NULL) {
13607 D(p->level--);
13608 return NULL;
13609 }
13610 int _end_lineno = _token->end_lineno;
13611 UNUSED(_end_lineno); // Only used by EXTRA macro
13612 int _end_col_offset = _token->end_col_offset;
13613 UNUSED(_end_col_offset); // Only used by EXTRA macro
13614 _res = _Py_Attribute ( a , b -> v . Name . id , Del , EXTRA );
13615 if (_res == NULL && PyErr_Occurred()) {
13616 p->error_indicator = 1;
13617 D(p->level--);
13618 return NULL;
13619 }
13620 goto done;
13621 }
13622 p->mark = _mark;
13623 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013625 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013626 { // t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013627 if (p->error_indicator) {
13628 D(p->level--);
13629 return NULL;
13630 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013631 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 +010013632 Token * _literal;
13633 Token * _literal_1;
13634 expr_ty a;
13635 expr_ty b;
13636 if (
13637 (a = t_primary_rule(p)) // t_primary
13638 &&
13639 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13640 &&
13641 (b = slices_rule(p)) // slices
13642 &&
13643 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13644 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013645 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013646 )
13647 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013648 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 +010013649 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13650 if (_token == NULL) {
13651 D(p->level--);
13652 return NULL;
13653 }
13654 int _end_lineno = _token->end_lineno;
13655 UNUSED(_end_lineno); // Only used by EXTRA macro
13656 int _end_col_offset = _token->end_col_offset;
13657 UNUSED(_end_col_offset); // Only used by EXTRA macro
13658 _res = _Py_Subscript ( a , b , Del , EXTRA );
13659 if (_res == NULL && PyErr_Occurred()) {
13660 p->error_indicator = 1;
13661 D(p->level--);
13662 return NULL;
13663 }
13664 goto done;
13665 }
13666 p->mark = _mark;
13667 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013668 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013669 }
13670 { // del_t_atom
13671 if (p->error_indicator) {
13672 D(p->level--);
13673 return NULL;
13674 }
13675 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
13676 expr_ty del_t_atom_var;
13677 if (
13678 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
13679 )
13680 {
13681 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
13682 _res = del_t_atom_var;
13683 goto done;
13684 }
13685 p->mark = _mark;
13686 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
13687 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
13688 }
13689 _res = NULL;
13690 done:
13691 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
13692 D(p->level--);
13693 return _res;
13694}
13695
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013696// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013697static expr_ty
13698del_t_atom_rule(Parser *p)
13699{
13700 D(p->level++);
13701 if (p->error_indicator) {
13702 D(p->level--);
13703 return NULL;
13704 }
13705 expr_ty _res = NULL;
13706 int _mark = p->mark;
13707 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13708 p->error_indicator = 1;
13709 D(p->level--);
13710 return NULL;
13711 }
13712 int _start_lineno = p->tokens[_mark]->lineno;
13713 UNUSED(_start_lineno); // Only used by EXTRA macro
13714 int _start_col_offset = p->tokens[_mark]->col_offset;
13715 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013716 { // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013717 if (p->error_indicator) {
13718 D(p->level--);
13719 return NULL;
13720 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013721 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013722 expr_ty a;
13723 if (
13724 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013725 )
13726 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013727 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 +010013728 _res = _PyPegen_set_expr_context ( p , a , Del );
13729 if (_res == NULL && PyErr_Occurred()) {
13730 p->error_indicator = 1;
13731 D(p->level--);
13732 return NULL;
13733 }
13734 goto done;
13735 }
13736 p->mark = _mark;
13737 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013739 }
13740 { // '(' del_target ')'
13741 if (p->error_indicator) {
13742 D(p->level--);
13743 return NULL;
13744 }
13745 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
13746 Token * _literal;
13747 Token * _literal_1;
13748 expr_ty a;
13749 if (
13750 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13751 &&
13752 (a = del_target_rule(p)) // del_target
13753 &&
13754 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13755 )
13756 {
13757 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
13758 _res = _PyPegen_set_expr_context ( p , a , Del );
13759 if (_res == NULL && PyErr_Occurred()) {
13760 p->error_indicator = 1;
13761 D(p->level--);
13762 return NULL;
13763 }
13764 goto done;
13765 }
13766 p->mark = _mark;
13767 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13768 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
13769 }
13770 { // '(' del_targets? ')'
13771 if (p->error_indicator) {
13772 D(p->level--);
13773 return NULL;
13774 }
13775 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
13776 Token * _literal;
13777 Token * _literal_1;
13778 void *a;
13779 if (
13780 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13781 &&
13782 (a = del_targets_rule(p), 1) // del_targets?
13783 &&
13784 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13785 )
13786 {
13787 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
13788 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13789 if (_token == NULL) {
13790 D(p->level--);
13791 return NULL;
13792 }
13793 int _end_lineno = _token->end_lineno;
13794 UNUSED(_end_lineno); // Only used by EXTRA macro
13795 int _end_col_offset = _token->end_col_offset;
13796 UNUSED(_end_col_offset); // Only used by EXTRA macro
13797 _res = _Py_Tuple ( a , Del , EXTRA );
13798 if (_res == NULL && PyErr_Occurred()) {
13799 p->error_indicator = 1;
13800 D(p->level--);
13801 return NULL;
13802 }
13803 goto done;
13804 }
13805 p->mark = _mark;
13806 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13807 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
13808 }
13809 { // '[' del_targets? ']'
13810 if (p->error_indicator) {
13811 D(p->level--);
13812 return NULL;
13813 }
13814 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
13815 Token * _literal;
13816 Token * _literal_1;
13817 void *a;
13818 if (
13819 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13820 &&
13821 (a = del_targets_rule(p), 1) // del_targets?
13822 &&
13823 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13824 )
13825 {
13826 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
13827 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13828 if (_token == NULL) {
13829 D(p->level--);
13830 return NULL;
13831 }
13832 int _end_lineno = _token->end_lineno;
13833 UNUSED(_end_lineno); // Only used by EXTRA macro
13834 int _end_col_offset = _token->end_col_offset;
13835 UNUSED(_end_col_offset); // Only used by EXTRA macro
13836 _res = _Py_List ( a , Del , EXTRA );
13837 if (_res == NULL && PyErr_Occurred()) {
13838 p->error_indicator = 1;
13839 D(p->level--);
13840 return NULL;
13841 }
13842 goto done;
13843 }
13844 p->mark = _mark;
13845 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13846 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
13847 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013848 _res = NULL;
13849 done:
13850 D(p->level--);
13851 return _res;
13852}
13853
13854// targets: ','.target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010013855static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013856targets_rule(Parser *p)
13857{
13858 D(p->level++);
13859 if (p->error_indicator) {
13860 D(p->level--);
13861 return NULL;
13862 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010013863 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013864 int _mark = p->mark;
13865 { // ','.target+ ','?
13866 if (p->error_indicator) {
13867 D(p->level--);
13868 return NULL;
13869 }
13870 D(fprintf(stderr, "%*c> targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
13871 void *_opt_var;
13872 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010013873 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013874 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013875 (a = (asdl_expr_seq*)_gather_124_rule(p)) // ','.target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013876 &&
13877 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
13878 )
13879 {
13880 D(fprintf(stderr, "%*c+ targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
13881 _res = a;
13882 if (_res == NULL && PyErr_Occurred()) {
13883 p->error_indicator = 1;
13884 D(p->level--);
13885 return NULL;
13886 }
13887 goto done;
13888 }
13889 p->mark = _mark;
13890 D(fprintf(stderr, "%*c%s targets[%d-%d]: %s failed!\n", p->level, ' ',
13891 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.target+ ','?"));
13892 }
13893 _res = NULL;
13894 done:
13895 D(p->level--);
13896 return _res;
13897}
13898
13899// target:
13900// | t_primary '.' NAME !t_lookahead
13901// | t_primary '[' slices ']' !t_lookahead
13902// | t_atom
13903static expr_ty
13904target_rule(Parser *p)
13905{
13906 D(p->level++);
13907 if (p->error_indicator) {
13908 D(p->level--);
13909 return NULL;
13910 }
13911 expr_ty _res = NULL;
13912 if (_PyPegen_is_memoized(p, target_type, &_res)) {
13913 D(p->level--);
13914 return _res;
13915 }
13916 int _mark = p->mark;
13917 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13918 p->error_indicator = 1;
13919 D(p->level--);
13920 return NULL;
13921 }
13922 int _start_lineno = p->tokens[_mark]->lineno;
13923 UNUSED(_start_lineno); // Only used by EXTRA macro
13924 int _start_col_offset = p->tokens[_mark]->col_offset;
13925 UNUSED(_start_col_offset); // Only used by EXTRA macro
13926 { // t_primary '.' NAME !t_lookahead
13927 if (p->error_indicator) {
13928 D(p->level--);
13929 return NULL;
13930 }
13931 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13932 Token * _literal;
13933 expr_ty a;
13934 expr_ty b;
13935 if (
13936 (a = t_primary_rule(p)) // t_primary
13937 &&
13938 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13939 &&
13940 (b = _PyPegen_name_token(p)) // NAME
13941 &&
13942 _PyPegen_lookahead(0, t_lookahead_rule, p)
13943 )
13944 {
13945 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13946 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13947 if (_token == NULL) {
13948 D(p->level--);
13949 return NULL;
13950 }
13951 int _end_lineno = _token->end_lineno;
13952 UNUSED(_end_lineno); // Only used by EXTRA macro
13953 int _end_col_offset = _token->end_col_offset;
13954 UNUSED(_end_col_offset); // Only used by EXTRA macro
13955 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13956 if (_res == NULL && PyErr_Occurred()) {
13957 p->error_indicator = 1;
13958 D(p->level--);
13959 return NULL;
13960 }
13961 goto done;
13962 }
13963 p->mark = _mark;
13964 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13966 }
13967 { // t_primary '[' slices ']' !t_lookahead
13968 if (p->error_indicator) {
13969 D(p->level--);
13970 return NULL;
13971 }
13972 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13973 Token * _literal;
13974 Token * _literal_1;
13975 expr_ty a;
13976 expr_ty b;
13977 if (
13978 (a = t_primary_rule(p)) // t_primary
13979 &&
13980 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13981 &&
13982 (b = slices_rule(p)) // slices
13983 &&
13984 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13985 &&
13986 _PyPegen_lookahead(0, t_lookahead_rule, p)
13987 )
13988 {
13989 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13990 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13991 if (_token == NULL) {
13992 D(p->level--);
13993 return NULL;
13994 }
13995 int _end_lineno = _token->end_lineno;
13996 UNUSED(_end_lineno); // Only used by EXTRA macro
13997 int _end_col_offset = _token->end_col_offset;
13998 UNUSED(_end_col_offset); // Only used by EXTRA macro
13999 _res = _Py_Subscript ( a , b , Store , EXTRA );
14000 if (_res == NULL && PyErr_Occurred()) {
14001 p->error_indicator = 1;
14002 D(p->level--);
14003 return NULL;
14004 }
14005 goto done;
14006 }
14007 p->mark = _mark;
14008 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
14009 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
14010 }
14011 { // t_atom
14012 if (p->error_indicator) {
14013 D(p->level--);
14014 return NULL;
14015 }
14016 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_atom"));
14017 expr_ty t_atom_var;
14018 if (
14019 (t_atom_var = t_atom_rule(p)) // t_atom
14020 )
14021 {
14022 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_atom"));
14023 _res = t_atom_var;
14024 goto done;
14025 }
14026 p->mark = _mark;
14027 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
14028 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_atom"));
14029 }
14030 _res = NULL;
14031 done:
14032 _PyPegen_insert_memo(p, _mark, target_type, _res);
14033 D(p->level--);
14034 return _res;
14035}
14036
14037// Left-recursive
14038// t_primary:
14039// | t_primary '.' NAME &t_lookahead
14040// | t_primary '[' slices ']' &t_lookahead
14041// | t_primary genexp &t_lookahead
14042// | t_primary '(' arguments? ')' &t_lookahead
14043// | atom &t_lookahead
14044static expr_ty t_primary_raw(Parser *);
14045static expr_ty
14046t_primary_rule(Parser *p)
14047{
14048 D(p->level++);
14049 expr_ty _res = NULL;
14050 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
14051 D(p->level--);
14052 return _res;
14053 }
14054 int _mark = p->mark;
14055 int _resmark = p->mark;
14056 while (1) {
14057 int tmpvar_8 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
14058 if (tmpvar_8) {
14059 D(p->level--);
14060 return _res;
14061 }
14062 p->mark = _mark;
14063 void *_raw = t_primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020014064 if (p->error_indicator)
14065 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014066 if (_raw == NULL || p->mark <= _resmark)
14067 break;
14068 _resmark = p->mark;
14069 _res = _raw;
14070 }
14071 p->mark = _resmark;
14072 D(p->level--);
14073 return _res;
14074}
14075static expr_ty
14076t_primary_raw(Parser *p)
14077{
14078 D(p->level++);
14079 if (p->error_indicator) {
14080 D(p->level--);
14081 return NULL;
14082 }
14083 expr_ty _res = NULL;
14084 int _mark = p->mark;
14085 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14086 p->error_indicator = 1;
14087 D(p->level--);
14088 return NULL;
14089 }
14090 int _start_lineno = p->tokens[_mark]->lineno;
14091 UNUSED(_start_lineno); // Only used by EXTRA macro
14092 int _start_col_offset = p->tokens[_mark]->col_offset;
14093 UNUSED(_start_col_offset); // Only used by EXTRA macro
14094 { // t_primary '.' NAME &t_lookahead
14095 if (p->error_indicator) {
14096 D(p->level--);
14097 return NULL;
14098 }
14099 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
14100 Token * _literal;
14101 expr_ty a;
14102 expr_ty b;
14103 if (
14104 (a = t_primary_rule(p)) // t_primary
14105 &&
14106 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
14107 &&
14108 (b = _PyPegen_name_token(p)) // NAME
14109 &&
14110 _PyPegen_lookahead(1, t_lookahead_rule, p)
14111 )
14112 {
14113 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
14114 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14115 if (_token == NULL) {
14116 D(p->level--);
14117 return NULL;
14118 }
14119 int _end_lineno = _token->end_lineno;
14120 UNUSED(_end_lineno); // Only used by EXTRA macro
14121 int _end_col_offset = _token->end_col_offset;
14122 UNUSED(_end_col_offset); // Only used by EXTRA macro
14123 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
14124 if (_res == NULL && PyErr_Occurred()) {
14125 p->error_indicator = 1;
14126 D(p->level--);
14127 return NULL;
14128 }
14129 goto done;
14130 }
14131 p->mark = _mark;
14132 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
14134 }
14135 { // t_primary '[' slices ']' &t_lookahead
14136 if (p->error_indicator) {
14137 D(p->level--);
14138 return NULL;
14139 }
14140 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
14141 Token * _literal;
14142 Token * _literal_1;
14143 expr_ty a;
14144 expr_ty b;
14145 if (
14146 (a = t_primary_rule(p)) // t_primary
14147 &&
14148 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14149 &&
14150 (b = slices_rule(p)) // slices
14151 &&
14152 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14153 &&
14154 _PyPegen_lookahead(1, t_lookahead_rule, p)
14155 )
14156 {
14157 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
14158 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14159 if (_token == NULL) {
14160 D(p->level--);
14161 return NULL;
14162 }
14163 int _end_lineno = _token->end_lineno;
14164 UNUSED(_end_lineno); // Only used by EXTRA macro
14165 int _end_col_offset = _token->end_col_offset;
14166 UNUSED(_end_col_offset); // Only used by EXTRA macro
14167 _res = _Py_Subscript ( a , b , Load , EXTRA );
14168 if (_res == NULL && PyErr_Occurred()) {
14169 p->error_indicator = 1;
14170 D(p->level--);
14171 return NULL;
14172 }
14173 goto done;
14174 }
14175 p->mark = _mark;
14176 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14177 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
14178 }
14179 { // t_primary genexp &t_lookahead
14180 if (p->error_indicator) {
14181 D(p->level--);
14182 return NULL;
14183 }
14184 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
14185 expr_ty a;
14186 expr_ty b;
14187 if (
14188 (a = t_primary_rule(p)) // t_primary
14189 &&
14190 (b = genexp_rule(p)) // genexp
14191 &&
14192 _PyPegen_lookahead(1, t_lookahead_rule, p)
14193 )
14194 {
14195 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
14196 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14197 if (_token == NULL) {
14198 D(p->level--);
14199 return NULL;
14200 }
14201 int _end_lineno = _token->end_lineno;
14202 UNUSED(_end_lineno); // Only used by EXTRA macro
14203 int _end_col_offset = _token->end_col_offset;
14204 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030014205 _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 +010014206 if (_res == NULL && PyErr_Occurred()) {
14207 p->error_indicator = 1;
14208 D(p->level--);
14209 return NULL;
14210 }
14211 goto done;
14212 }
14213 p->mark = _mark;
14214 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14215 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
14216 }
14217 { // t_primary '(' arguments? ')' &t_lookahead
14218 if (p->error_indicator) {
14219 D(p->level--);
14220 return NULL;
14221 }
14222 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
14223 Token * _literal;
14224 Token * _literal_1;
14225 expr_ty a;
14226 void *b;
14227 if (
14228 (a = t_primary_rule(p)) // t_primary
14229 &&
14230 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14231 &&
14232 (b = arguments_rule(p), 1) // arguments?
14233 &&
14234 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14235 &&
14236 _PyPegen_lookahead(1, t_lookahead_rule, p)
14237 )
14238 {
14239 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
14240 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14241 if (_token == NULL) {
14242 D(p->level--);
14243 return NULL;
14244 }
14245 int _end_lineno = _token->end_lineno;
14246 UNUSED(_end_lineno); // Only used by EXTRA macro
14247 int _end_col_offset = _token->end_col_offset;
14248 UNUSED(_end_col_offset); // Only used by EXTRA macro
14249 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
14250 if (_res == NULL && PyErr_Occurred()) {
14251 p->error_indicator = 1;
14252 D(p->level--);
14253 return NULL;
14254 }
14255 goto done;
14256 }
14257 p->mark = _mark;
14258 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14259 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
14260 }
14261 { // atom &t_lookahead
14262 if (p->error_indicator) {
14263 D(p->level--);
14264 return NULL;
14265 }
14266 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
14267 expr_ty a;
14268 if (
14269 (a = atom_rule(p)) // atom
14270 &&
14271 _PyPegen_lookahead(1, t_lookahead_rule, p)
14272 )
14273 {
14274 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
14275 _res = a;
14276 if (_res == NULL && PyErr_Occurred()) {
14277 p->error_indicator = 1;
14278 D(p->level--);
14279 return NULL;
14280 }
14281 goto done;
14282 }
14283 p->mark = _mark;
14284 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14285 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
14286 }
14287 _res = NULL;
14288 done:
14289 D(p->level--);
14290 return _res;
14291}
14292
14293// t_lookahead: '(' | '[' | '.'
14294static void *
14295t_lookahead_rule(Parser *p)
14296{
14297 D(p->level++);
14298 if (p->error_indicator) {
14299 D(p->level--);
14300 return NULL;
14301 }
14302 void * _res = NULL;
14303 int _mark = p->mark;
14304 { // '('
14305 if (p->error_indicator) {
14306 D(p->level--);
14307 return NULL;
14308 }
14309 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
14310 Token * _literal;
14311 if (
14312 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14313 )
14314 {
14315 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
14316 _res = _literal;
14317 goto done;
14318 }
14319 p->mark = _mark;
14320 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14321 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
14322 }
14323 { // '['
14324 if (p->error_indicator) {
14325 D(p->level--);
14326 return NULL;
14327 }
14328 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
14329 Token * _literal;
14330 if (
14331 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14332 )
14333 {
14334 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
14335 _res = _literal;
14336 goto done;
14337 }
14338 p->mark = _mark;
14339 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14340 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
14341 }
14342 { // '.'
14343 if (p->error_indicator) {
14344 D(p->level--);
14345 return NULL;
14346 }
14347 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
14348 Token * _literal;
14349 if (
14350 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
14351 )
14352 {
14353 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
14354 _res = _literal;
14355 goto done;
14356 }
14357 p->mark = _mark;
14358 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14359 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
14360 }
14361 _res = NULL;
14362 done:
14363 D(p->level--);
14364 return _res;
14365}
14366
14367// t_atom: NAME | '(' target ')' | '(' targets? ')' | '[' targets? ']'
14368static expr_ty
14369t_atom_rule(Parser *p)
14370{
14371 D(p->level++);
14372 if (p->error_indicator) {
14373 D(p->level--);
14374 return NULL;
14375 }
14376 expr_ty _res = NULL;
14377 int _mark = p->mark;
14378 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14379 p->error_indicator = 1;
14380 D(p->level--);
14381 return NULL;
14382 }
14383 int _start_lineno = p->tokens[_mark]->lineno;
14384 UNUSED(_start_lineno); // Only used by EXTRA macro
14385 int _start_col_offset = p->tokens[_mark]->col_offset;
14386 UNUSED(_start_col_offset); // Only used by EXTRA macro
14387 { // NAME
14388 if (p->error_indicator) {
14389 D(p->level--);
14390 return NULL;
14391 }
14392 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
14393 expr_ty a;
14394 if (
14395 (a = _PyPegen_name_token(p)) // NAME
14396 )
14397 {
14398 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
14399 _res = _PyPegen_set_expr_context ( p , a , Store );
14400 if (_res == NULL && PyErr_Occurred()) {
14401 p->error_indicator = 1;
14402 D(p->level--);
14403 return NULL;
14404 }
14405 goto done;
14406 }
14407 p->mark = _mark;
14408 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14409 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
14410 }
14411 { // '(' target ')'
14412 if (p->error_indicator) {
14413 D(p->level--);
14414 return NULL;
14415 }
14416 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
14417 Token * _literal;
14418 Token * _literal_1;
14419 expr_ty a;
14420 if (
14421 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14422 &&
14423 (a = target_rule(p)) // target
14424 &&
14425 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14426 )
14427 {
14428 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
14429 _res = _PyPegen_set_expr_context ( p , a , Store );
14430 if (_res == NULL && PyErr_Occurred()) {
14431 p->error_indicator = 1;
14432 D(p->level--);
14433 return NULL;
14434 }
14435 goto done;
14436 }
14437 p->mark = _mark;
14438 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target ')'"));
14440 }
14441 { // '(' targets? ')'
14442 if (p->error_indicator) {
14443 D(p->level--);
14444 return NULL;
14445 }
14446 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
14447 Token * _literal;
14448 Token * _literal_1;
14449 void *b;
14450 if (
14451 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14452 &&
14453 (b = targets_rule(p), 1) // targets?
14454 &&
14455 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14456 )
14457 {
14458 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
14459 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14460 if (_token == NULL) {
14461 D(p->level--);
14462 return NULL;
14463 }
14464 int _end_lineno = _token->end_lineno;
14465 UNUSED(_end_lineno); // Only used by EXTRA macro
14466 int _end_col_offset = _token->end_col_offset;
14467 UNUSED(_end_col_offset); // Only used by EXTRA macro
14468 _res = _Py_Tuple ( b , Store , EXTRA );
14469 if (_res == NULL && PyErr_Occurred()) {
14470 p->error_indicator = 1;
14471 D(p->level--);
14472 return NULL;
14473 }
14474 goto done;
14475 }
14476 p->mark = _mark;
14477 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' targets? ')'"));
14479 }
14480 { // '[' targets? ']'
14481 if (p->error_indicator) {
14482 D(p->level--);
14483 return NULL;
14484 }
14485 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
14486 Token * _literal;
14487 Token * _literal_1;
14488 void *b;
14489 if (
14490 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14491 &&
14492 (b = targets_rule(p), 1) // targets?
14493 &&
14494 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14495 )
14496 {
14497 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
14498 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14499 if (_token == NULL) {
14500 D(p->level--);
14501 return NULL;
14502 }
14503 int _end_lineno = _token->end_lineno;
14504 UNUSED(_end_lineno); // Only used by EXTRA macro
14505 int _end_col_offset = _token->end_col_offset;
14506 UNUSED(_end_col_offset); // Only used by EXTRA macro
14507 _res = _Py_List ( b , Store , EXTRA );
14508 if (_res == NULL && PyErr_Occurred()) {
14509 p->error_indicator = 1;
14510 D(p->level--);
14511 return NULL;
14512 }
14513 goto done;
14514 }
14515 p->mark = _mark;
14516 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14517 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' targets? ']'"));
14518 }
14519 _res = NULL;
14520 done:
14521 D(p->level--);
14522 return _res;
14523}
14524
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014525// invalid_arguments:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014526// | args ',' '*'
14527// | expression for_if_clauses ',' [args | expression for_if_clauses]
14528// | args for_if_clauses
14529// | args ',' expression for_if_clauses
14530// | args ',' args
14531static void *
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014532invalid_arguments_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014533{
14534 D(p->level++);
14535 if (p->error_indicator) {
14536 D(p->level--);
14537 return NULL;
14538 }
14539 void * _res = NULL;
14540 int _mark = p->mark;
14541 { // args ',' '*'
14542 if (p->error_indicator) {
14543 D(p->level--);
14544 return NULL;
14545 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014546 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014547 Token * _literal;
14548 Token * _literal_1;
14549 expr_ty args_var;
14550 if (
14551 (args_var = args_rule(p)) // args
14552 &&
14553 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14554 &&
14555 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
14556 )
14557 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014558 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014559 _res = RAISE_SYNTAX_ERROR ( "iterable argument unpacking follows keyword argument unpacking" );
14560 if (_res == NULL && PyErr_Occurred()) {
14561 p->error_indicator = 1;
14562 D(p->level--);
14563 return NULL;
14564 }
14565 goto done;
14566 }
14567 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014568 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014569 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
14570 }
14571 { // expression for_if_clauses ',' [args | expression for_if_clauses]
14572 if (p->error_indicator) {
14573 D(p->level--);
14574 return NULL;
14575 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014576 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 +010014577 Token * _literal;
14578 void *_opt_var;
14579 UNUSED(_opt_var); // Silence compiler warnings
14580 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014581 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014582 if (
14583 (a = expression_rule(p)) // expression
14584 &&
14585 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14586 &&
14587 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14588 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014589 (_opt_var = _tmp_126_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014590 )
14591 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014592 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 +010014593 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
14594 if (_res == NULL && PyErr_Occurred()) {
14595 p->error_indicator = 1;
14596 D(p->level--);
14597 return NULL;
14598 }
14599 goto done;
14600 }
14601 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014602 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
14604 }
14605 { // args for_if_clauses
14606 if (p->error_indicator) {
14607 D(p->level--);
14608 return NULL;
14609 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014610 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 +010014611 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014612 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014613 if (
14614 (a = args_rule(p)) // args
14615 &&
14616 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14617 )
14618 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014619 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 +010014620 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
14621 if (_res == NULL && PyErr_Occurred()) {
14622 p->error_indicator = 1;
14623 D(p->level--);
14624 return NULL;
14625 }
14626 goto done;
14627 }
14628 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014629 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014630 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
14631 }
14632 { // args ',' expression for_if_clauses
14633 if (p->error_indicator) {
14634 D(p->level--);
14635 return NULL;
14636 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014637 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 +010014638 Token * _literal;
14639 expr_ty a;
14640 expr_ty args_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014641 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014642 if (
14643 (args_var = args_rule(p)) // args
14644 &&
14645 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14646 &&
14647 (a = expression_rule(p)) // expression
14648 &&
14649 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14650 )
14651 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014652 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 +010014653 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
14654 if (_res == NULL && PyErr_Occurred()) {
14655 p->error_indicator = 1;
14656 D(p->level--);
14657 return NULL;
14658 }
14659 goto done;
14660 }
14661 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014662 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014663 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
14664 }
14665 { // args ',' args
14666 if (p->error_indicator) {
14667 D(p->level--);
14668 return NULL;
14669 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014670 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014671 Token * _literal;
14672 expr_ty a;
14673 expr_ty args_var;
14674 if (
14675 (a = args_rule(p)) // args
14676 &&
14677 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14678 &&
14679 (args_var = args_rule(p)) // args
14680 )
14681 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014682 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 +010014683 _res = _PyPegen_arguments_parsing_error ( p , a );
14684 if (_res == NULL && PyErr_Occurred()) {
14685 p->error_indicator = 1;
14686 D(p->level--);
14687 return NULL;
14688 }
14689 goto done;
14690 }
14691 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014692 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014693 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
14694 }
14695 _res = NULL;
14696 done:
14697 D(p->level--);
14698 return _res;
14699}
14700
14701// invalid_kwarg: expression '='
14702static void *
14703invalid_kwarg_rule(Parser *p)
14704{
14705 D(p->level++);
14706 if (p->error_indicator) {
14707 D(p->level--);
14708 return NULL;
14709 }
14710 void * _res = NULL;
14711 int _mark = p->mark;
14712 { // expression '='
14713 if (p->error_indicator) {
14714 D(p->level--);
14715 return NULL;
14716 }
14717 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression '='"));
Pablo Galindo43c4fb62020-12-13 16:46:48 +000014718 Token * a;
14719 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014720 if (
Pablo Galindo43c4fb62020-12-13 16:46:48 +000014721 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014722 &&
Pablo Galindo43c4fb62020-12-13 16:46:48 +000014723 (a = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014724 )
14725 {
14726 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression '='"));
14727 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression cannot contain assignment, perhaps you meant \"==\"?" );
14728 if (_res == NULL && PyErr_Occurred()) {
14729 p->error_indicator = 1;
14730 D(p->level--);
14731 return NULL;
14732 }
14733 goto done;
14734 }
14735 p->mark = _mark;
14736 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
14737 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression '='"));
14738 }
14739 _res = NULL;
14740 done:
14741 D(p->level--);
14742 return _res;
14743}
14744
14745// invalid_named_expression: expression ':=' expression
14746static void *
14747invalid_named_expression_rule(Parser *p)
14748{
14749 D(p->level++);
14750 if (p->error_indicator) {
14751 D(p->level--);
14752 return NULL;
14753 }
14754 void * _res = NULL;
14755 int _mark = p->mark;
14756 { // expression ':=' expression
14757 if (p->error_indicator) {
14758 D(p->level--);
14759 return NULL;
14760 }
14761 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
14762 Token * _literal;
14763 expr_ty a;
14764 expr_ty expression_var;
14765 if (
14766 (a = expression_rule(p)) // expression
14767 &&
14768 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
14769 &&
14770 (expression_var = expression_rule(p)) // expression
14771 )
14772 {
14773 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
14774 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
14775 if (_res == NULL && PyErr_Occurred()) {
14776 p->error_indicator = 1;
14777 D(p->level--);
14778 return NULL;
14779 }
14780 goto done;
14781 }
14782 p->mark = _mark;
14783 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
14784 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
14785 }
14786 _res = NULL;
14787 done:
14788 D(p->level--);
14789 return _res;
14790}
14791
14792// invalid_assignment:
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014793// | invalid_ann_assign_target ':' expression
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014794// | star_named_expression ',' star_named_expressions* ':' expression
14795// | expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014796// | ((star_targets '='))* star_expressions '='
14797// | ((star_targets '='))* yield_expr '='
14798// | star_expressions augassign (yield_expr | star_expressions)
14799static void *
14800invalid_assignment_rule(Parser *p)
14801{
14802 D(p->level++);
14803 if (p->error_indicator) {
14804 D(p->level--);
14805 return NULL;
14806 }
14807 void * _res = NULL;
14808 int _mark = p->mark;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014809 { // invalid_ann_assign_target ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014810 if (p->error_indicator) {
14811 D(p->level--);
14812 return NULL;
14813 }
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014814 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 +010014815 Token * _literal;
14816 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014817 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014818 if (
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014819 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014820 &&
14821 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014822 &&
14823 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014824 )
14825 {
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014826 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
14827 _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 +010014828 if (_res == NULL && PyErr_Occurred()) {
14829 p->error_indicator = 1;
14830 D(p->level--);
14831 return NULL;
14832 }
14833 goto done;
14834 }
14835 p->mark = _mark;
14836 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014837 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014838 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014839 { // star_named_expression ',' star_named_expressions* ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014840 if (p->error_indicator) {
14841 D(p->level--);
14842 return NULL;
14843 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014844 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 +010014845 Token * _literal;
14846 Token * _literal_1;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014847 asdl_seq * _loop0_127_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014848 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014849 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014850 if (
14851 (a = star_named_expression_rule(p)) // star_named_expression
14852 &&
14853 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14854 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014855 (_loop0_127_var = _loop0_127_rule(p)) // star_named_expressions*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014856 &&
14857 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014858 &&
14859 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014860 )
14861 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014862 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 +010014863 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
14864 if (_res == NULL && PyErr_Occurred()) {
14865 p->error_indicator = 1;
14866 D(p->level--);
14867 return NULL;
14868 }
14869 goto done;
14870 }
14871 p->mark = _mark;
14872 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014874 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014875 { // expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014876 if (p->error_indicator) {
14877 D(p->level--);
14878 return NULL;
14879 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014880 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014881 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014882 expr_ty a;
14883 expr_ty expression_var;
14884 if (
14885 (a = expression_rule(p)) // expression
14886 &&
14887 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
14888 &&
14889 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014890 )
14891 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014892 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 +010014893 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
14894 if (_res == NULL && PyErr_Occurred()) {
14895 p->error_indicator = 1;
14896 D(p->level--);
14897 return NULL;
14898 }
14899 goto done;
14900 }
14901 p->mark = _mark;
14902 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014903 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014904 }
14905 { // ((star_targets '='))* star_expressions '='
14906 if (p->error_indicator) {
14907 D(p->level--);
14908 return NULL;
14909 }
14910 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
14911 Token * _literal;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014912 asdl_seq * _loop0_128_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014913 expr_ty a;
14914 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014915 (_loop0_128_var = _loop0_128_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014916 &&
14917 (a = star_expressions_rule(p)) // star_expressions
14918 &&
14919 (_literal = _PyPegen_expect_token(p, 22)) // token='='
14920 )
14921 {
14922 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 +030014923 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014924 if (_res == NULL && PyErr_Occurred()) {
14925 p->error_indicator = 1;
14926 D(p->level--);
14927 return NULL;
14928 }
14929 goto done;
14930 }
14931 p->mark = _mark;
14932 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
14934 }
14935 { // ((star_targets '='))* yield_expr '='
14936 if (p->error_indicator) {
14937 D(p->level--);
14938 return NULL;
14939 }
14940 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14941 Token * _literal;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014942 asdl_seq * _loop0_129_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014943 expr_ty a;
14944 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014945 (_loop0_129_var = _loop0_129_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014946 &&
14947 (a = yield_expr_rule(p)) // yield_expr
14948 &&
14949 (_literal = _PyPegen_expect_token(p, 22)) // token='='
14950 )
14951 {
14952 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14953 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
14954 if (_res == NULL && PyErr_Occurred()) {
14955 p->error_indicator = 1;
14956 D(p->level--);
14957 return NULL;
14958 }
14959 goto done;
14960 }
14961 p->mark = _mark;
14962 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14963 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14964 }
14965 { // star_expressions augassign (yield_expr | star_expressions)
14966 if (p->error_indicator) {
14967 D(p->level--);
14968 return NULL;
14969 }
14970 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 +020014971 void *_tmp_130_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014972 expr_ty a;
14973 AugOperator* augassign_var;
14974 if (
14975 (a = star_expressions_rule(p)) // star_expressions
14976 &&
14977 (augassign_var = augassign_rule(p)) // augassign
14978 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014979 (_tmp_130_var = _tmp_130_rule(p)) // yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014980 )
14981 {
14982 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
14983 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
14984 if (_res == NULL && PyErr_Occurred()) {
14985 p->error_indicator = 1;
14986 D(p->level--);
14987 return NULL;
14988 }
14989 goto done;
14990 }
14991 p->mark = _mark;
14992 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
14994 }
14995 _res = NULL;
14996 done:
14997 D(p->level--);
14998 return _res;
14999}
15000
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030015001// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
15002static expr_ty
15003invalid_ann_assign_target_rule(Parser *p)
15004{
15005 D(p->level++);
15006 if (p->error_indicator) {
15007 D(p->level--);
15008 return NULL;
15009 }
15010 expr_ty _res = NULL;
15011 int _mark = p->mark;
15012 { // list
15013 if (p->error_indicator) {
15014 D(p->level--);
15015 return NULL;
15016 }
15017 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
15018 expr_ty list_var;
15019 if (
15020 (list_var = list_rule(p)) // list
15021 )
15022 {
15023 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
15024 _res = list_var;
15025 goto done;
15026 }
15027 p->mark = _mark;
15028 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
15029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
15030 }
15031 { // tuple
15032 if (p->error_indicator) {
15033 D(p->level--);
15034 return NULL;
15035 }
15036 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
15037 expr_ty tuple_var;
15038 if (
15039 (tuple_var = tuple_rule(p)) // tuple
15040 )
15041 {
15042 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
15043 _res = tuple_var;
15044 goto done;
15045 }
15046 p->mark = _mark;
15047 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
15048 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
15049 }
15050 { // '(' invalid_ann_assign_target ')'
15051 if (p->error_indicator) {
15052 D(p->level--);
15053 return NULL;
15054 }
15055 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
15056 Token * _literal;
15057 Token * _literal_1;
15058 expr_ty a;
15059 if (
15060 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15061 &&
15062 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
15063 &&
15064 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15065 )
15066 {
15067 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
15068 _res = a;
15069 if (_res == NULL && PyErr_Occurred()) {
15070 p->error_indicator = 1;
15071 D(p->level--);
15072 return NULL;
15073 }
15074 goto done;
15075 }
15076 p->mark = _mark;
15077 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
15078 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
15079 }
15080 _res = NULL;
15081 done:
15082 D(p->level--);
15083 return _res;
15084}
15085
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015086// invalid_del_stmt: 'del' star_expressions
15087static void *
15088invalid_del_stmt_rule(Parser *p)
15089{
15090 D(p->level++);
15091 if (p->error_indicator) {
15092 D(p->level--);
15093 return NULL;
15094 }
15095 void * _res = NULL;
15096 int _mark = p->mark;
15097 { // 'del' star_expressions
15098 if (p->error_indicator) {
15099 D(p->level--);
15100 return NULL;
15101 }
15102 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
15103 Token * _keyword;
15104 expr_ty a;
15105 if (
15106 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
15107 &&
15108 (a = star_expressions_rule(p)) // star_expressions
15109 )
15110 {
15111 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 +030015112 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015113 if (_res == NULL && PyErr_Occurred()) {
15114 p->error_indicator = 1;
15115 D(p->level--);
15116 return NULL;
15117 }
15118 goto done;
15119 }
15120 p->mark = _mark;
15121 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
15122 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
15123 }
15124 _res = NULL;
15125 done:
15126 D(p->level--);
15127 return _res;
15128}
15129
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015130// invalid_block: NEWLINE !INDENT
15131static void *
15132invalid_block_rule(Parser *p)
15133{
15134 D(p->level++);
15135 if (p->error_indicator) {
15136 D(p->level--);
15137 return NULL;
15138 }
15139 void * _res = NULL;
15140 int _mark = p->mark;
15141 { // NEWLINE !INDENT
15142 if (p->error_indicator) {
15143 D(p->level--);
15144 return NULL;
15145 }
15146 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
15147 Token * newline_var;
15148 if (
15149 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
15150 &&
15151 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
15152 )
15153 {
15154 D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
15155 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
15156 if (_res == NULL && PyErr_Occurred()) {
15157 p->error_indicator = 1;
15158 D(p->level--);
15159 return NULL;
15160 }
15161 goto done;
15162 }
15163 p->mark = _mark;
15164 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
15165 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
15166 }
15167 _res = NULL;
15168 done:
15169 D(p->level--);
15170 return _res;
15171}
15172
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020015173// Left-recursive
15174// invalid_primary: primary '{'
15175static void *
15176invalid_primary_rule(Parser *p)
15177{
15178 D(p->level++);
15179 if (p->error_indicator) {
15180 D(p->level--);
15181 return NULL;
15182 }
15183 void * _res = NULL;
15184 int _mark = p->mark;
15185 { // primary '{'
15186 if (p->error_indicator) {
15187 D(p->level--);
15188 return NULL;
15189 }
15190 D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
15191 Token * a;
15192 expr_ty primary_var;
15193 if (
15194 (primary_var = primary_rule(p)) // primary
15195 &&
15196 (a = _PyPegen_expect_token(p, 25)) // token='{'
15197 )
15198 {
15199 D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
15200 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
15201 if (_res == NULL && PyErr_Occurred()) {
15202 p->error_indicator = 1;
15203 D(p->level--);
15204 return NULL;
15205 }
15206 goto done;
15207 }
15208 p->mark = _mark;
15209 D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
15210 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
15211 }
15212 _res = NULL;
15213 done:
15214 D(p->level--);
15215 return _res;
15216}
15217
Pablo Galindo835f14f2021-01-31 22:52:56 +000015218// invalid_comprehension:
15219// | ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindod4e6ed72021-02-03 23:29:26 +000015220// | ('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015221static void *
15222invalid_comprehension_rule(Parser *p)
15223{
15224 D(p->level++);
15225 if (p->error_indicator) {
15226 D(p->level--);
15227 return NULL;
15228 }
15229 void * _res = NULL;
15230 int _mark = p->mark;
15231 { // ('[' | '(' | '{') starred_expression for_if_clauses
15232 if (p->error_indicator) {
15233 D(p->level--);
15234 return NULL;
15235 }
15236 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 +020015237 void *_tmp_131_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015238 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015239 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015240 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015241 (_tmp_131_var = _tmp_131_rule(p)) // '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015242 &&
15243 (a = starred_expression_rule(p)) // starred_expression
15244 &&
15245 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
15246 )
15247 {
15248 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
15249 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
15250 if (_res == NULL && PyErr_Occurred()) {
15251 p->error_indicator = 1;
15252 D(p->level--);
15253 return NULL;
15254 }
15255 goto done;
15256 }
15257 p->mark = _mark;
15258 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
15259 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
15260 }
Pablo Galindod4e6ed72021-02-03 23:29:26 +000015261 { // ('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000015262 if (p->error_indicator) {
15263 D(p->level--);
15264 return NULL;
15265 }
Pablo Galindod4e6ed72021-02-03 23:29:26 +000015266 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 +000015267 Token * _literal;
15268 void *_opt_var;
15269 UNUSED(_opt_var); // Silence compiler warnings
15270 void *_tmp_132_var;
15271 expr_ty a;
Pablo Galindod4e6ed72021-02-03 23:29:26 +000015272 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000015273 if (
15274 (_tmp_132_var = _tmp_132_rule(p)) // '[' | '{'
15275 &&
15276 (a = star_named_expression_rule(p)) // star_named_expression
15277 &&
15278 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15279 &&
15280 (_opt_var = star_named_expressions_rule(p), 1) // star_named_expressions?
Pablo Galindod4e6ed72021-02-03 23:29:26 +000015281 &&
15282 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000015283 )
15284 {
Pablo Galindod4e6ed72021-02-03 23:29:26 +000015285 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 +000015286 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "did you forget parentheses around the comprehension target?" );
15287 if (_res == NULL && PyErr_Occurred()) {
15288 p->error_indicator = 1;
15289 D(p->level--);
15290 return NULL;
15291 }
15292 goto done;
15293 }
15294 p->mark = _mark;
15295 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod4e6ed72021-02-03 23:29:26 +000015296 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions? for_if_clauses"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000015297 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015298 _res = NULL;
15299 done:
15300 D(p->level--);
15301 return _res;
15302}
15303
15304// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
15305static void *
15306invalid_dict_comprehension_rule(Parser *p)
15307{
15308 D(p->level++);
15309 if (p->error_indicator) {
15310 D(p->level--);
15311 return NULL;
15312 }
15313 void * _res = NULL;
15314 int _mark = p->mark;
15315 { // '{' '**' bitwise_or for_if_clauses '}'
15316 if (p->error_indicator) {
15317 D(p->level--);
15318 return NULL;
15319 }
15320 D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
15321 Token * _literal;
15322 Token * _literal_1;
15323 Token * a;
15324 expr_ty bitwise_or_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015325 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015326 if (
15327 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15328 &&
15329 (a = _PyPegen_expect_token(p, 35)) // token='**'
15330 &&
15331 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
15332 &&
15333 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
15334 &&
15335 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15336 )
15337 {
15338 D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
15339 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
15340 if (_res == NULL && PyErr_Occurred()) {
15341 p->error_indicator = 1;
15342 D(p->level--);
15343 return NULL;
15344 }
15345 goto done;
15346 }
15347 p->mark = _mark;
15348 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
15349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
15350 }
15351 _res = NULL;
15352 done:
15353 D(p->level--);
15354 return _res;
15355}
15356
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015357// invalid_parameters: param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015358static void *
15359invalid_parameters_rule(Parser *p)
15360{
15361 D(p->level++);
15362 if (p->error_indicator) {
15363 D(p->level--);
15364 return NULL;
15365 }
15366 void * _res = NULL;
15367 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015368 { // param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015369 if (p->error_indicator) {
15370 D(p->level--);
15371 return NULL;
15372 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015373 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 +000015374 asdl_seq * _loop0_133_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015375 void *invalid_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015376 arg_ty param_no_default_var;
15377 if (
Pablo Galindo835f14f2021-01-31 22:52:56 +000015378 (_loop0_133_var = _loop0_133_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015379 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015380 (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015381 &&
15382 (param_no_default_var = param_no_default_rule(p)) // param_no_default
15383 )
15384 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015385 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 +010015386 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
15387 if (_res == NULL && PyErr_Occurred()) {
15388 p->error_indicator = 1;
15389 D(p->level--);
15390 return NULL;
15391 }
15392 goto done;
15393 }
15394 p->mark = _mark;
15395 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
15397 }
15398 _res = NULL;
15399 done:
15400 D(p->level--);
15401 return _res;
15402}
15403
15404// invalid_parameters_helper: slash_with_default | param_with_default+
15405static void *
15406invalid_parameters_helper_rule(Parser *p)
15407{
15408 D(p->level++);
15409 if (p->error_indicator) {
15410 D(p->level--);
15411 return NULL;
15412 }
15413 void * _res = NULL;
15414 int _mark = p->mark;
15415 { // slash_with_default
15416 if (p->error_indicator) {
15417 D(p->level--);
15418 return NULL;
15419 }
15420 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
15421 SlashWithDefault* a;
15422 if (
15423 (a = slash_with_default_rule(p)) // slash_with_default
15424 )
15425 {
15426 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
15427 _res = _PyPegen_singleton_seq ( p , a );
15428 if (_res == NULL && PyErr_Occurred()) {
15429 p->error_indicator = 1;
15430 D(p->level--);
15431 return NULL;
15432 }
15433 goto done;
15434 }
15435 p->mark = _mark;
15436 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
15437 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
15438 }
15439 { // param_with_default+
15440 if (p->error_indicator) {
15441 D(p->level--);
15442 return NULL;
15443 }
15444 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 +000015445 asdl_seq * _loop1_134_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015446 if (
Pablo Galindo835f14f2021-01-31 22:52:56 +000015447 (_loop1_134_var = _loop1_134_rule(p)) // param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015448 )
15449 {
15450 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 +000015451 _res = _loop1_134_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015452 goto done;
15453 }
15454 p->mark = _mark;
15455 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
15456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015457 }
15458 _res = NULL;
15459 done:
15460 D(p->level--);
15461 return _res;
15462}
15463
15464// invalid_lambda_parameters:
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015465// | lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015466static void *
15467invalid_lambda_parameters_rule(Parser *p)
15468{
15469 D(p->level++);
15470 if (p->error_indicator) {
15471 D(p->level--);
15472 return NULL;
15473 }
15474 void * _res = NULL;
15475 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015476 { // lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015477 if (p->error_indicator) {
15478 D(p->level--);
15479 return NULL;
15480 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015481 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 +000015482 asdl_seq * _loop0_135_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015483 void *invalid_lambda_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015484 arg_ty lambda_param_no_default_var;
15485 if (
Pablo Galindo835f14f2021-01-31 22:52:56 +000015486 (_loop0_135_var = _loop0_135_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015487 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015488 (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015489 &&
15490 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
15491 )
15492 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015493 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 +010015494 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
15495 if (_res == NULL && PyErr_Occurred()) {
15496 p->error_indicator = 1;
15497 D(p->level--);
15498 return NULL;
15499 }
15500 goto done;
15501 }
15502 p->mark = _mark;
15503 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015504 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
15505 }
15506 _res = NULL;
15507 done:
15508 D(p->level--);
15509 return _res;
15510}
15511
15512// invalid_lambda_parameters_helper:
15513// | lambda_slash_with_default
15514// | lambda_param_with_default+
15515static void *
15516invalid_lambda_parameters_helper_rule(Parser *p)
15517{
15518 D(p->level++);
15519 if (p->error_indicator) {
15520 D(p->level--);
15521 return NULL;
15522 }
15523 void * _res = NULL;
15524 int _mark = p->mark;
15525 { // lambda_slash_with_default
15526 if (p->error_indicator) {
15527 D(p->level--);
15528 return NULL;
15529 }
15530 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
15531 SlashWithDefault* a;
15532 if (
15533 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
15534 )
15535 {
15536 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
15537 _res = _PyPegen_singleton_seq ( p , a );
15538 if (_res == NULL && PyErr_Occurred()) {
15539 p->error_indicator = 1;
15540 D(p->level--);
15541 return NULL;
15542 }
15543 goto done;
15544 }
15545 p->mark = _mark;
15546 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
15547 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
15548 }
15549 { // lambda_param_with_default+
15550 if (p->error_indicator) {
15551 D(p->level--);
15552 return NULL;
15553 }
15554 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 +000015555 asdl_seq * _loop1_136_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015556 if (
Pablo Galindo835f14f2021-01-31 22:52:56 +000015557 (_loop1_136_var = _loop1_136_rule(p)) // lambda_param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015558 )
15559 {
15560 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 +000015561 _res = _loop1_136_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015562 goto done;
15563 }
15564 p->mark = _mark;
15565 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
15566 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015567 }
15568 _res = NULL;
15569 done:
15570 D(p->level--);
15571 return _res;
15572}
15573
15574// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
15575static void *
15576invalid_star_etc_rule(Parser *p)
15577{
15578 D(p->level++);
15579 if (p->error_indicator) {
15580 D(p->level--);
15581 return NULL;
15582 }
15583 void * _res = NULL;
15584 int _mark = p->mark;
15585 { // '*' (')' | ',' (')' | '**'))
15586 if (p->error_indicator) {
15587 D(p->level--);
15588 return NULL;
15589 }
15590 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
15591 Token * _literal;
Pablo Galindo835f14f2021-01-31 22:52:56 +000015592 void *_tmp_137_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015593 if (
15594 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15595 &&
Pablo Galindo835f14f2021-01-31 22:52:56 +000015596 (_tmp_137_var = _tmp_137_rule(p)) // ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015597 )
15598 {
15599 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
15600 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15601 if (_res == NULL && PyErr_Occurred()) {
15602 p->error_indicator = 1;
15603 D(p->level--);
15604 return NULL;
15605 }
15606 goto done;
15607 }
15608 p->mark = _mark;
15609 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15610 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
15611 }
15612 { // '*' ',' TYPE_COMMENT
15613 if (p->error_indicator) {
15614 D(p->level--);
15615 return NULL;
15616 }
15617 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
15618 Token * _literal;
15619 Token * _literal_1;
15620 Token * type_comment_var;
15621 if (
15622 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15623 &&
15624 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
15625 &&
15626 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
15627 )
15628 {
15629 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
15630 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
15631 if (_res == NULL && PyErr_Occurred()) {
15632 p->error_indicator = 1;
15633 D(p->level--);
15634 return NULL;
15635 }
15636 goto done;
15637 }
15638 p->mark = _mark;
15639 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15640 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
15641 }
15642 _res = NULL;
15643 done:
15644 D(p->level--);
15645 return _res;
15646}
15647
15648// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
15649static void *
15650invalid_lambda_star_etc_rule(Parser *p)
15651{
15652 D(p->level++);
15653 if (p->error_indicator) {
15654 D(p->level--);
15655 return NULL;
15656 }
15657 void * _res = NULL;
15658 int _mark = p->mark;
15659 { // '*' (':' | ',' (':' | '**'))
15660 if (p->error_indicator) {
15661 D(p->level--);
15662 return NULL;
15663 }
15664 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
15665 Token * _literal;
Pablo Galindo835f14f2021-01-31 22:52:56 +000015666 void *_tmp_138_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015667 if (
15668 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15669 &&
Pablo Galindo835f14f2021-01-31 22:52:56 +000015670 (_tmp_138_var = _tmp_138_rule(p)) // ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015671 )
15672 {
15673 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
15674 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15675 if (_res == NULL && PyErr_Occurred()) {
15676 p->error_indicator = 1;
15677 D(p->level--);
15678 return NULL;
15679 }
15680 goto done;
15681 }
15682 p->mark = _mark;
15683 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15684 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
15685 }
15686 _res = NULL;
15687 done:
15688 D(p->level--);
15689 return _res;
15690}
15691
15692// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
15693static void *
15694invalid_double_type_comments_rule(Parser *p)
15695{
15696 D(p->level++);
15697 if (p->error_indicator) {
15698 D(p->level--);
15699 return NULL;
15700 }
15701 void * _res = NULL;
15702 int _mark = p->mark;
15703 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
15704 if (p->error_indicator) {
15705 D(p->level--);
15706 return NULL;
15707 }
15708 D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
15709 Token * indent_var;
15710 Token * newline_var;
15711 Token * newline_var_1;
15712 Token * type_comment_var;
15713 Token * type_comment_var_1;
15714 if (
15715 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
15716 &&
15717 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
15718 &&
15719 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
15720 &&
15721 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
15722 &&
15723 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
15724 )
15725 {
15726 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"));
15727 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
15728 if (_res == NULL && PyErr_Occurred()) {
15729 p->error_indicator = 1;
15730 D(p->level--);
15731 return NULL;
15732 }
15733 goto done;
15734 }
15735 p->mark = _mark;
15736 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
15737 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
15738 }
15739 _res = NULL;
15740 done:
15741 D(p->level--);
15742 return _res;
15743}
15744
Pablo Galindo58fb1562021-02-02 19:54:22 +000015745// invalid_with_item: expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015746static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015747invalid_with_item_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015748{
15749 D(p->level++);
15750 if (p->error_indicator) {
15751 D(p->level--);
15752 return NULL;
15753 }
15754 void * _res = NULL;
15755 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000015756 { // expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015757 if (p->error_indicator) {
15758 D(p->level--);
15759 return NULL;
15760 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000015761 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 +030015762 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015763 expr_ty a;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015764 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015765 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015766 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015767 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015768 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
15769 &&
15770 (a = expression_rule(p)) // expression
Pablo Galindo58fb1562021-02-02 19:54:22 +000015771 &&
15772 _PyPegen_lookahead(1, _tmp_139_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015773 )
15774 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000015775 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 +030015776 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015777 if (_res == NULL && PyErr_Occurred()) {
15778 p->error_indicator = 1;
15779 D(p->level--);
15780 return NULL;
15781 }
15782 goto done;
15783 }
15784 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015785 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000015786 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015787 }
15788 _res = NULL;
15789 done:
15790 D(p->level--);
15791 return _res;
15792}
15793
15794// invalid_for_target: ASYNC? 'for' star_expressions
15795static void *
15796invalid_for_target_rule(Parser *p)
15797{
15798 D(p->level++);
15799 if (p->error_indicator) {
15800 D(p->level--);
15801 return NULL;
15802 }
15803 void * _res = NULL;
15804 int _mark = p->mark;
15805 { // ASYNC? 'for' star_expressions
15806 if (p->error_indicator) {
15807 D(p->level--);
15808 return NULL;
15809 }
15810 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
15811 Token * _keyword;
15812 void *_opt_var;
15813 UNUSED(_opt_var); // Silence compiler warnings
15814 expr_ty a;
15815 if (
15816 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
15817 &&
15818 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15819 &&
15820 (a = star_expressions_rule(p)) // star_expressions
15821 )
15822 {
15823 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 +030015824 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015825 if (_res == NULL && PyErr_Occurred()) {
15826 p->error_indicator = 1;
15827 D(p->level--);
15828 return NULL;
15829 }
15830 goto done;
15831 }
15832 p->mark = _mark;
15833 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
15834 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
15835 }
15836 _res = NULL;
15837 done:
15838 D(p->level--);
15839 return _res;
15840}
15841
15842// invalid_group: '(' starred_expression ')'
15843static void *
15844invalid_group_rule(Parser *p)
15845{
15846 D(p->level++);
15847 if (p->error_indicator) {
15848 D(p->level--);
15849 return NULL;
15850 }
15851 void * _res = NULL;
15852 int _mark = p->mark;
15853 { // '(' starred_expression ')'
15854 if (p->error_indicator) {
15855 D(p->level--);
15856 return NULL;
15857 }
15858 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
15859 Token * _literal;
15860 Token * _literal_1;
15861 expr_ty a;
15862 if (
15863 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15864 &&
15865 (a = starred_expression_rule(p)) // starred_expression
15866 &&
15867 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15868 )
15869 {
15870 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
15871 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "can't use starred expression here" );
15872 if (_res == NULL && PyErr_Occurred()) {
15873 p->error_indicator = 1;
15874 D(p->level--);
15875 return NULL;
15876 }
15877 goto done;
15878 }
15879 p->mark = _mark;
15880 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
15881 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015882 }
15883 _res = NULL;
15884 done:
15885 D(p->level--);
15886 return _res;
15887}
15888
15889// invalid_import_from_targets: import_from_as_names ','
15890static void *
15891invalid_import_from_targets_rule(Parser *p)
15892{
15893 D(p->level++);
15894 if (p->error_indicator) {
15895 D(p->level--);
15896 return NULL;
15897 }
15898 void * _res = NULL;
15899 int _mark = p->mark;
15900 { // import_from_as_names ','
15901 if (p->error_indicator) {
15902 D(p->level--);
15903 return NULL;
15904 }
15905 D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
15906 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015907 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015908 if (
15909 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
15910 &&
15911 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15912 )
15913 {
15914 D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
15915 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
15916 if (_res == NULL && PyErr_Occurred()) {
15917 p->error_indicator = 1;
15918 D(p->level--);
15919 return NULL;
15920 }
15921 goto done;
15922 }
15923 p->mark = _mark;
15924 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
15925 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
15926 }
15927 _res = NULL;
15928 done:
15929 D(p->level--);
15930 return _res;
15931}
15932
Pablo Galindo58fb1562021-02-02 19:54:22 +000015933// invalid_with_stmt:
15934// | ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
15935// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
15936static void *
15937invalid_with_stmt_rule(Parser *p)
15938{
15939 D(p->level++);
15940 if (p->error_indicator) {
15941 D(p->level--);
15942 return NULL;
15943 }
15944 void * _res = NULL;
15945 int _mark = p->mark;
15946 { // ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
15947 if (p->error_indicator) {
15948 D(p->level--);
15949 return NULL;
15950 }
15951 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
15952 asdl_seq * _gather_140_var;
15953 Token * _keyword;
15954 Token * _literal;
15955 void *_opt_var;
15956 UNUSED(_opt_var); // Silence compiler warnings
15957 if (
15958 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
15959 &&
15960 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
15961 &&
15962 (_gather_140_var = _gather_140_rule(p)) // ','.(expression ['as' star_target])+
15963 &&
15964 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
15965 )
15966 {
15967 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
15968 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_140_var, _literal);
15969 goto done;
15970 }
15971 p->mark = _mark;
15972 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
15973 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
15974 }
15975 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
15976 if (p->error_indicator) {
15977 D(p->level--);
15978 return NULL;
15979 }
15980 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
15981 asdl_seq * _gather_142_var;
15982 Token * _keyword;
15983 Token * _literal;
15984 Token * _literal_1;
15985 Token * _literal_2;
15986 void *_opt_var;
15987 UNUSED(_opt_var); // Silence compiler warnings
15988 void *_opt_var_1;
15989 UNUSED(_opt_var_1); // Silence compiler warnings
15990 if (
15991 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
15992 &&
15993 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
15994 &&
15995 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15996 &&
15997 (_gather_142_var = _gather_142_rule(p)) // ','.(expressions ['as' star_target])+
15998 &&
15999 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
16000 &&
16001 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16002 &&
16003 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
16004 )
16005 {
16006 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
16007 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _literal, _gather_142_var, _opt_var_1, _literal_1, _literal_2);
16008 goto done;
16009 }
16010 p->mark = _mark;
16011 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
16012 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
16013 }
16014 _res = NULL;
16015 done:
16016 D(p->level--);
16017 return _res;
16018}
16019
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016020// _loop0_1: NEWLINE
16021static asdl_seq *
16022_loop0_1_rule(Parser *p)
16023{
16024 D(p->level++);
16025 if (p->error_indicator) {
16026 D(p->level--);
16027 return NULL;
16028 }
16029 void *_res = NULL;
16030 int _mark = p->mark;
16031 int _start_mark = p->mark;
16032 void **_children = PyMem_Malloc(sizeof(void *));
16033 if (!_children) {
16034 p->error_indicator = 1;
16035 PyErr_NoMemory();
16036 D(p->level--);
16037 return NULL;
16038 }
16039 ssize_t _children_capacity = 1;
16040 ssize_t _n = 0;
16041 { // NEWLINE
16042 if (p->error_indicator) {
16043 D(p->level--);
16044 return NULL;
16045 }
16046 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
16047 Token * newline_var;
16048 while (
16049 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
16050 )
16051 {
16052 _res = newline_var;
16053 if (_n == _children_capacity) {
16054 _children_capacity *= 2;
16055 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16056 if (!_new_children) {
16057 p->error_indicator = 1;
16058 PyErr_NoMemory();
16059 D(p->level--);
16060 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016061 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016062 _children = _new_children;
16063 }
16064 _children[_n++] = _res;
16065 _mark = p->mark;
16066 }
16067 p->mark = _mark;
16068 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
16069 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
16070 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016071 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016072 if (!_seq) {
16073 PyMem_Free(_children);
16074 p->error_indicator = 1;
16075 PyErr_NoMemory();
16076 D(p->level--);
16077 return NULL;
16078 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016079 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016080 PyMem_Free(_children);
16081 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
16082 D(p->level--);
16083 return _seq;
16084}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016085
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016086// _loop0_2: NEWLINE
16087static asdl_seq *
16088_loop0_2_rule(Parser *p)
16089{
16090 D(p->level++);
16091 if (p->error_indicator) {
16092 D(p->level--);
16093 return NULL;
16094 }
16095 void *_res = NULL;
16096 int _mark = p->mark;
16097 int _start_mark = p->mark;
16098 void **_children = PyMem_Malloc(sizeof(void *));
16099 if (!_children) {
16100 p->error_indicator = 1;
16101 PyErr_NoMemory();
16102 D(p->level--);
16103 return NULL;
16104 }
16105 ssize_t _children_capacity = 1;
16106 ssize_t _n = 0;
16107 { // NEWLINE
16108 if (p->error_indicator) {
16109 D(p->level--);
16110 return NULL;
16111 }
16112 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
16113 Token * newline_var;
16114 while (
16115 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
16116 )
16117 {
16118 _res = newline_var;
16119 if (_n == _children_capacity) {
16120 _children_capacity *= 2;
16121 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16122 if (!_new_children) {
16123 p->error_indicator = 1;
16124 PyErr_NoMemory();
16125 D(p->level--);
16126 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016127 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016128 _children = _new_children;
16129 }
16130 _children[_n++] = _res;
16131 _mark = p->mark;
16132 }
16133 p->mark = _mark;
16134 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
16135 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
16136 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016137 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016138 if (!_seq) {
16139 PyMem_Free(_children);
16140 p->error_indicator = 1;
16141 PyErr_NoMemory();
16142 D(p->level--);
16143 return NULL;
16144 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016145 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016146 PyMem_Free(_children);
16147 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
16148 D(p->level--);
16149 return _seq;
16150}
16151
16152// _loop0_4: ',' expression
16153static asdl_seq *
16154_loop0_4_rule(Parser *p)
16155{
16156 D(p->level++);
16157 if (p->error_indicator) {
16158 D(p->level--);
16159 return NULL;
16160 }
16161 void *_res = NULL;
16162 int _mark = p->mark;
16163 int _start_mark = p->mark;
16164 void **_children = PyMem_Malloc(sizeof(void *));
16165 if (!_children) {
16166 p->error_indicator = 1;
16167 PyErr_NoMemory();
16168 D(p->level--);
16169 return NULL;
16170 }
16171 ssize_t _children_capacity = 1;
16172 ssize_t _n = 0;
16173 { // ',' expression
16174 if (p->error_indicator) {
16175 D(p->level--);
16176 return NULL;
16177 }
16178 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
16179 Token * _literal;
16180 expr_ty elem;
16181 while (
16182 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16183 &&
16184 (elem = expression_rule(p)) // expression
16185 )
16186 {
16187 _res = elem;
16188 if (_res == NULL && PyErr_Occurred()) {
16189 p->error_indicator = 1;
16190 PyMem_Free(_children);
16191 D(p->level--);
16192 return NULL;
16193 }
16194 if (_n == _children_capacity) {
16195 _children_capacity *= 2;
16196 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16197 if (!_new_children) {
16198 p->error_indicator = 1;
16199 PyErr_NoMemory();
16200 D(p->level--);
16201 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016202 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016203 _children = _new_children;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016204 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016205 _children[_n++] = _res;
16206 _mark = p->mark;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016207 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016208 p->mark = _mark;
16209 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
16210 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016211 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016212 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016213 if (!_seq) {
16214 PyMem_Free(_children);
16215 p->error_indicator = 1;
16216 PyErr_NoMemory();
16217 D(p->level--);
16218 return NULL;
16219 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016220 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016221 PyMem_Free(_children);
16222 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
16223 D(p->level--);
16224 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016225}
16226
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016227// _gather_3: expression _loop0_4
16228static asdl_seq *
16229_gather_3_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016230{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016231 D(p->level++);
16232 if (p->error_indicator) {
16233 D(p->level--);
16234 return NULL;
16235 }
16236 asdl_seq * _res = NULL;
16237 int _mark = p->mark;
16238 { // expression _loop0_4
16239 if (p->error_indicator) {
16240 D(p->level--);
16241 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016242 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016243 D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
16244 expr_ty elem;
16245 asdl_seq * seq;
16246 if (
16247 (elem = expression_rule(p)) // expression
16248 &&
16249 (seq = _loop0_4_rule(p)) // _loop0_4
16250 )
16251 {
16252 D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
16253 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16254 goto done;
16255 }
16256 p->mark = _mark;
16257 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
16258 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016259 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016260 _res = NULL;
16261 done:
16262 D(p->level--);
16263 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016264}
16265
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016266// _loop0_6: ',' expression
16267static asdl_seq *
16268_loop0_6_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016269{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016270 D(p->level++);
16271 if (p->error_indicator) {
16272 D(p->level--);
16273 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016274 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016275 void *_res = NULL;
16276 int _mark = p->mark;
16277 int _start_mark = p->mark;
16278 void **_children = PyMem_Malloc(sizeof(void *));
16279 if (!_children) {
16280 p->error_indicator = 1;
16281 PyErr_NoMemory();
16282 D(p->level--);
16283 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016284 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016285 ssize_t _children_capacity = 1;
16286 ssize_t _n = 0;
16287 { // ',' expression
16288 if (p->error_indicator) {
16289 D(p->level--);
16290 return NULL;
16291 }
16292 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
16293 Token * _literal;
16294 expr_ty elem;
16295 while (
16296 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16297 &&
16298 (elem = expression_rule(p)) // expression
16299 )
16300 {
16301 _res = elem;
16302 if (_res == NULL && PyErr_Occurred()) {
16303 p->error_indicator = 1;
16304 PyMem_Free(_children);
16305 D(p->level--);
16306 return NULL;
16307 }
16308 if (_n == _children_capacity) {
16309 _children_capacity *= 2;
16310 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16311 if (!_new_children) {
16312 p->error_indicator = 1;
16313 PyErr_NoMemory();
16314 D(p->level--);
16315 return NULL;
16316 }
16317 _children = _new_children;
16318 }
16319 _children[_n++] = _res;
16320 _mark = p->mark;
16321 }
16322 p->mark = _mark;
16323 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
16324 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
16325 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016326 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016327 if (!_seq) {
16328 PyMem_Free(_children);
16329 p->error_indicator = 1;
16330 PyErr_NoMemory();
16331 D(p->level--);
16332 return NULL;
16333 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016334 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016335 PyMem_Free(_children);
16336 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
16337 D(p->level--);
16338 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016339}
16340
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016341// _gather_5: expression _loop0_6
16342static asdl_seq *
16343_gather_5_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016344{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016345 D(p->level++);
16346 if (p->error_indicator) {
16347 D(p->level--);
16348 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016349 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016350 asdl_seq * _res = NULL;
16351 int _mark = p->mark;
16352 { // expression _loop0_6
16353 if (p->error_indicator) {
16354 D(p->level--);
16355 return NULL;
16356 }
16357 D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
16358 expr_ty elem;
16359 asdl_seq * seq;
16360 if (
16361 (elem = expression_rule(p)) // expression
16362 &&
16363 (seq = _loop0_6_rule(p)) // _loop0_6
16364 )
16365 {
16366 D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
16367 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16368 goto done;
16369 }
16370 p->mark = _mark;
16371 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
16372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
16373 }
16374 _res = NULL;
16375 done:
16376 D(p->level--);
16377 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016378}
16379
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016380// _loop0_8: ',' expression
16381static asdl_seq *
16382_loop0_8_rule(Parser *p)
16383{
16384 D(p->level++);
16385 if (p->error_indicator) {
16386 D(p->level--);
16387 return NULL;
16388 }
16389 void *_res = NULL;
16390 int _mark = p->mark;
16391 int _start_mark = p->mark;
16392 void **_children = PyMem_Malloc(sizeof(void *));
16393 if (!_children) {
16394 p->error_indicator = 1;
16395 PyErr_NoMemory();
16396 D(p->level--);
16397 return NULL;
16398 }
16399 ssize_t _children_capacity = 1;
16400 ssize_t _n = 0;
16401 { // ',' expression
16402 if (p->error_indicator) {
16403 D(p->level--);
16404 return NULL;
16405 }
16406 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
16407 Token * _literal;
16408 expr_ty elem;
16409 while (
16410 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16411 &&
16412 (elem = expression_rule(p)) // expression
16413 )
16414 {
16415 _res = elem;
16416 if (_res == NULL && PyErr_Occurred()) {
16417 p->error_indicator = 1;
16418 PyMem_Free(_children);
16419 D(p->level--);
16420 return NULL;
16421 }
16422 if (_n == _children_capacity) {
16423 _children_capacity *= 2;
16424 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16425 if (!_new_children) {
16426 p->error_indicator = 1;
16427 PyErr_NoMemory();
16428 D(p->level--);
16429 return NULL;
16430 }
16431 _children = _new_children;
16432 }
16433 _children[_n++] = _res;
16434 _mark = p->mark;
16435 }
16436 p->mark = _mark;
16437 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
16438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
16439 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016440 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016441 if (!_seq) {
16442 PyMem_Free(_children);
16443 p->error_indicator = 1;
16444 PyErr_NoMemory();
16445 D(p->level--);
16446 return NULL;
16447 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016448 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016449 PyMem_Free(_children);
16450 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
16451 D(p->level--);
16452 return _seq;
16453}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016454
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016455// _gather_7: expression _loop0_8
16456static asdl_seq *
16457_gather_7_rule(Parser *p)
16458{
16459 D(p->level++);
16460 if (p->error_indicator) {
16461 D(p->level--);
16462 return NULL;
16463 }
16464 asdl_seq * _res = NULL;
16465 int _mark = p->mark;
16466 { // expression _loop0_8
16467 if (p->error_indicator) {
16468 D(p->level--);
16469 return NULL;
16470 }
16471 D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
16472 expr_ty elem;
16473 asdl_seq * seq;
16474 if (
16475 (elem = expression_rule(p)) // expression
16476 &&
16477 (seq = _loop0_8_rule(p)) // _loop0_8
16478 )
16479 {
16480 D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
16481 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16482 goto done;
16483 }
16484 p->mark = _mark;
16485 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
16486 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
16487 }
16488 _res = NULL;
16489 done:
16490 D(p->level--);
16491 return _res;
16492}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016493
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016494// _loop0_10: ',' expression
16495static asdl_seq *
16496_loop0_10_rule(Parser *p)
16497{
16498 D(p->level++);
16499 if (p->error_indicator) {
16500 D(p->level--);
16501 return NULL;
16502 }
16503 void *_res = NULL;
16504 int _mark = p->mark;
16505 int _start_mark = p->mark;
16506 void **_children = PyMem_Malloc(sizeof(void *));
16507 if (!_children) {
16508 p->error_indicator = 1;
16509 PyErr_NoMemory();
16510 D(p->level--);
16511 return NULL;
16512 }
16513 ssize_t _children_capacity = 1;
16514 ssize_t _n = 0;
16515 { // ',' expression
16516 if (p->error_indicator) {
16517 D(p->level--);
16518 return NULL;
16519 }
16520 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
16521 Token * _literal;
16522 expr_ty elem;
16523 while (
16524 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16525 &&
16526 (elem = expression_rule(p)) // expression
16527 )
16528 {
16529 _res = elem;
16530 if (_res == NULL && PyErr_Occurred()) {
16531 p->error_indicator = 1;
16532 PyMem_Free(_children);
16533 D(p->level--);
16534 return NULL;
16535 }
16536 if (_n == _children_capacity) {
16537 _children_capacity *= 2;
16538 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16539 if (!_new_children) {
16540 p->error_indicator = 1;
16541 PyErr_NoMemory();
16542 D(p->level--);
16543 return NULL;
16544 }
16545 _children = _new_children;
16546 }
16547 _children[_n++] = _res;
16548 _mark = p->mark;
16549 }
16550 p->mark = _mark;
16551 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
16552 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
16553 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016554 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016555 if (!_seq) {
16556 PyMem_Free(_children);
16557 p->error_indicator = 1;
16558 PyErr_NoMemory();
16559 D(p->level--);
16560 return NULL;
16561 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016562 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016563 PyMem_Free(_children);
16564 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
16565 D(p->level--);
16566 return _seq;
16567}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016568
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016569// _gather_9: expression _loop0_10
16570static asdl_seq *
16571_gather_9_rule(Parser *p)
16572{
16573 D(p->level++);
16574 if (p->error_indicator) {
16575 D(p->level--);
16576 return NULL;
16577 }
16578 asdl_seq * _res = NULL;
16579 int _mark = p->mark;
16580 { // expression _loop0_10
16581 if (p->error_indicator) {
16582 D(p->level--);
16583 return NULL;
16584 }
16585 D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
16586 expr_ty elem;
16587 asdl_seq * seq;
16588 if (
16589 (elem = expression_rule(p)) // expression
16590 &&
16591 (seq = _loop0_10_rule(p)) // _loop0_10
16592 )
16593 {
16594 D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
16595 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16596 goto done;
16597 }
16598 p->mark = _mark;
16599 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
16600 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
16601 }
16602 _res = NULL;
16603 done:
16604 D(p->level--);
16605 return _res;
16606}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016607
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016608// _loop1_11: statement
16609static asdl_seq *
16610_loop1_11_rule(Parser *p)
16611{
16612 D(p->level++);
16613 if (p->error_indicator) {
16614 D(p->level--);
16615 return NULL;
16616 }
16617 void *_res = NULL;
16618 int _mark = p->mark;
16619 int _start_mark = p->mark;
16620 void **_children = PyMem_Malloc(sizeof(void *));
16621 if (!_children) {
16622 p->error_indicator = 1;
16623 PyErr_NoMemory();
16624 D(p->level--);
16625 return NULL;
16626 }
16627 ssize_t _children_capacity = 1;
16628 ssize_t _n = 0;
16629 { // statement
16630 if (p->error_indicator) {
16631 D(p->level--);
16632 return NULL;
16633 }
16634 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010016635 asdl_stmt_seq* statement_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016636 while (
16637 (statement_var = statement_rule(p)) // statement
16638 )
16639 {
16640 _res = statement_var;
16641 if (_n == _children_capacity) {
16642 _children_capacity *= 2;
16643 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16644 if (!_new_children) {
16645 p->error_indicator = 1;
16646 PyErr_NoMemory();
16647 D(p->level--);
16648 return NULL;
16649 }
16650 _children = _new_children;
16651 }
16652 _children[_n++] = _res;
16653 _mark = p->mark;
16654 }
16655 p->mark = _mark;
16656 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
16657 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
16658 }
16659 if (_n == 0 || p->error_indicator) {
16660 PyMem_Free(_children);
16661 D(p->level--);
16662 return NULL;
16663 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016664 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016665 if (!_seq) {
16666 PyMem_Free(_children);
16667 p->error_indicator = 1;
16668 PyErr_NoMemory();
16669 D(p->level--);
16670 return NULL;
16671 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016672 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016673 PyMem_Free(_children);
16674 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
16675 D(p->level--);
16676 return _seq;
16677}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016678
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016679// _loop0_13: ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016680static asdl_seq *
16681_loop0_13_rule(Parser *p)
16682{
16683 D(p->level++);
16684 if (p->error_indicator) {
16685 D(p->level--);
16686 return NULL;
16687 }
16688 void *_res = NULL;
16689 int _mark = p->mark;
16690 int _start_mark = p->mark;
16691 void **_children = PyMem_Malloc(sizeof(void *));
16692 if (!_children) {
16693 p->error_indicator = 1;
16694 PyErr_NoMemory();
16695 D(p->level--);
16696 return NULL;
16697 }
16698 ssize_t _children_capacity = 1;
16699 ssize_t _n = 0;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016700 { // ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016701 if (p->error_indicator) {
16702 D(p->level--);
16703 return NULL;
16704 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016705 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016706 Token * _literal;
16707 stmt_ty elem;
16708 while (
16709 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
16710 &&
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016711 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016712 )
16713 {
16714 _res = elem;
16715 if (_res == NULL && PyErr_Occurred()) {
16716 p->error_indicator = 1;
16717 PyMem_Free(_children);
16718 D(p->level--);
16719 return NULL;
16720 }
16721 if (_n == _children_capacity) {
16722 _children_capacity *= 2;
16723 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16724 if (!_new_children) {
16725 p->error_indicator = 1;
16726 PyErr_NoMemory();
16727 D(p->level--);
16728 return NULL;
16729 }
16730 _children = _new_children;
16731 }
16732 _children[_n++] = _res;
16733 _mark = p->mark;
16734 }
16735 p->mark = _mark;
16736 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016737 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016738 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016739 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016740 if (!_seq) {
16741 PyMem_Free(_children);
16742 p->error_indicator = 1;
16743 PyErr_NoMemory();
16744 D(p->level--);
16745 return NULL;
16746 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016747 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016748 PyMem_Free(_children);
16749 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
16750 D(p->level--);
16751 return _seq;
16752}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016753
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016754// _gather_12: simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016755static asdl_seq *
16756_gather_12_rule(Parser *p)
16757{
16758 D(p->level++);
16759 if (p->error_indicator) {
16760 D(p->level--);
16761 return NULL;
16762 }
16763 asdl_seq * _res = NULL;
16764 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016765 { // simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016766 if (p->error_indicator) {
16767 D(p->level--);
16768 return NULL;
16769 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016770 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 +010016771 stmt_ty elem;
16772 asdl_seq * seq;
16773 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016774 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016775 &&
16776 (seq = _loop0_13_rule(p)) // _loop0_13
16777 )
16778 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016779 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 +010016780 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16781 goto done;
16782 }
16783 p->mark = _mark;
16784 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016785 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016786 }
16787 _res = NULL;
16788 done:
16789 D(p->level--);
16790 return _res;
16791}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016792
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016793// _tmp_14: 'import' | 'from'
16794static void *
16795_tmp_14_rule(Parser *p)
16796{
16797 D(p->level++);
16798 if (p->error_indicator) {
16799 D(p->level--);
16800 return NULL;
16801 }
16802 void * _res = NULL;
16803 int _mark = p->mark;
16804 { // 'import'
16805 if (p->error_indicator) {
16806 D(p->level--);
16807 return NULL;
16808 }
16809 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
16810 Token * _keyword;
16811 if (
16812 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
16813 )
16814 {
16815 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
16816 _res = _keyword;
16817 goto done;
16818 }
16819 p->mark = _mark;
16820 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
16822 }
16823 { // 'from'
16824 if (p->error_indicator) {
16825 D(p->level--);
16826 return NULL;
16827 }
16828 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
16829 Token * _keyword;
16830 if (
16831 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
16832 )
16833 {
16834 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
16835 _res = _keyword;
16836 goto done;
16837 }
16838 p->mark = _mark;
16839 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
16841 }
16842 _res = NULL;
16843 done:
16844 D(p->level--);
16845 return _res;
16846}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016847
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016848// _tmp_15: 'def' | '@' | ASYNC
16849static void *
16850_tmp_15_rule(Parser *p)
16851{
16852 D(p->level++);
16853 if (p->error_indicator) {
16854 D(p->level--);
16855 return NULL;
16856 }
16857 void * _res = NULL;
16858 int _mark = p->mark;
16859 { // 'def'
16860 if (p->error_indicator) {
16861 D(p->level--);
16862 return NULL;
16863 }
16864 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
16865 Token * _keyword;
16866 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016867 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016868 )
16869 {
16870 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
16871 _res = _keyword;
16872 goto done;
16873 }
16874 p->mark = _mark;
16875 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16876 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
16877 }
16878 { // '@'
16879 if (p->error_indicator) {
16880 D(p->level--);
16881 return NULL;
16882 }
16883 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
16884 Token * _literal;
16885 if (
16886 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
16887 )
16888 {
16889 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
16890 _res = _literal;
16891 goto done;
16892 }
16893 p->mark = _mark;
16894 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
16896 }
16897 { // ASYNC
16898 if (p->error_indicator) {
16899 D(p->level--);
16900 return NULL;
16901 }
16902 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
16903 Token * async_var;
16904 if (
16905 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
16906 )
16907 {
16908 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
16909 _res = async_var;
16910 goto done;
16911 }
16912 p->mark = _mark;
16913 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16914 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
16915 }
16916 _res = NULL;
16917 done:
16918 D(p->level--);
16919 return _res;
16920}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016921
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016922// _tmp_16: 'class' | '@'
16923static void *
16924_tmp_16_rule(Parser *p)
16925{
16926 D(p->level++);
16927 if (p->error_indicator) {
16928 D(p->level--);
16929 return NULL;
16930 }
16931 void * _res = NULL;
16932 int _mark = p->mark;
16933 { // 'class'
16934 if (p->error_indicator) {
16935 D(p->level--);
16936 return NULL;
16937 }
16938 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
16939 Token * _keyword;
16940 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016941 (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016942 )
16943 {
16944 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
16945 _res = _keyword;
16946 goto done;
16947 }
16948 p->mark = _mark;
16949 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
16950 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
16951 }
16952 { // '@'
16953 if (p->error_indicator) {
16954 D(p->level--);
16955 return NULL;
16956 }
16957 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
16958 Token * _literal;
16959 if (
16960 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
16961 )
16962 {
16963 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
16964 _res = _literal;
16965 goto done;
16966 }
16967 p->mark = _mark;
16968 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
16969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
16970 }
16971 _res = NULL;
16972 done:
16973 D(p->level--);
16974 return _res;
16975}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016976
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016977// _tmp_17: 'with' | ASYNC
16978static void *
16979_tmp_17_rule(Parser *p)
16980{
16981 D(p->level++);
16982 if (p->error_indicator) {
16983 D(p->level--);
16984 return NULL;
16985 }
16986 void * _res = NULL;
16987 int _mark = p->mark;
16988 { // 'with'
16989 if (p->error_indicator) {
16990 D(p->level--);
16991 return NULL;
16992 }
16993 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
16994 Token * _keyword;
16995 if (
16996 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
16997 )
16998 {
16999 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
17000 _res = _keyword;
17001 goto done;
17002 }
17003 p->mark = _mark;
17004 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
17005 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
17006 }
17007 { // ASYNC
17008 if (p->error_indicator) {
17009 D(p->level--);
17010 return NULL;
17011 }
17012 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
17013 Token * async_var;
17014 if (
17015 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
17016 )
17017 {
17018 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
17019 _res = async_var;
17020 goto done;
17021 }
17022 p->mark = _mark;
17023 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
17024 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
17025 }
17026 _res = NULL;
17027 done:
17028 D(p->level--);
17029 return _res;
17030}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000017031
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017032// _tmp_18: 'for' | ASYNC
17033static void *
17034_tmp_18_rule(Parser *p)
17035{
17036 D(p->level++);
17037 if (p->error_indicator) {
17038 D(p->level--);
17039 return NULL;
17040 }
17041 void * _res = NULL;
17042 int _mark = p->mark;
17043 { // 'for'
17044 if (p->error_indicator) {
17045 D(p->level--);
17046 return NULL;
17047 }
17048 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
17049 Token * _keyword;
17050 if (
17051 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
17052 )
17053 {
17054 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
17055 _res = _keyword;
17056 goto done;
17057 }
17058 p->mark = _mark;
17059 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
17060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
17061 }
17062 { // ASYNC
17063 if (p->error_indicator) {
17064 D(p->level--);
17065 return NULL;
17066 }
17067 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
17068 Token * async_var;
17069 if (
17070 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
17071 )
17072 {
17073 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
17074 _res = async_var;
17075 goto done;
17076 }
17077 p->mark = _mark;
17078 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
17079 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
17080 }
17081 _res = NULL;
17082 done:
17083 D(p->level--);
17084 return _res;
17085}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000017086
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017087// _tmp_19: '=' annotated_rhs
17088static void *
17089_tmp_19_rule(Parser *p)
17090{
17091 D(p->level++);
17092 if (p->error_indicator) {
17093 D(p->level--);
17094 return NULL;
17095 }
17096 void * _res = NULL;
17097 int _mark = p->mark;
17098 { // '=' annotated_rhs
17099 if (p->error_indicator) {
17100 D(p->level--);
17101 return NULL;
17102 }
17103 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
17104 Token * _literal;
17105 expr_ty d;
17106 if (
17107 (_literal = _PyPegen_expect_token(p, 22)) // token='='
17108 &&
17109 (d = annotated_rhs_rule(p)) // annotated_rhs
17110 )
17111 {
17112 D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
17113 _res = d;
17114 if (_res == NULL && PyErr_Occurred()) {
17115 p->error_indicator = 1;
17116 D(p->level--);
17117 return NULL;
17118 }
17119 goto done;
17120 }
17121 p->mark = _mark;
17122 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
17123 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
17124 }
17125 _res = NULL;
17126 done:
17127 D(p->level--);
17128 return _res;
17129}
17130
17131// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
17132static void *
17133_tmp_20_rule(Parser *p)
17134{
17135 D(p->level++);
17136 if (p->error_indicator) {
17137 D(p->level--);
17138 return NULL;
17139 }
17140 void * _res = NULL;
17141 int _mark = p->mark;
17142 { // '(' single_target ')'
17143 if (p->error_indicator) {
17144 D(p->level--);
17145 return NULL;
17146 }
17147 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
17148 Token * _literal;
17149 Token * _literal_1;
17150 expr_ty b;
17151 if (
17152 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17153 &&
17154 (b = single_target_rule(p)) // single_target
17155 &&
17156 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17157 )
17158 {
17159 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
17160 _res = b;
17161 if (_res == NULL && PyErr_Occurred()) {
17162 p->error_indicator = 1;
17163 D(p->level--);
17164 return NULL;
17165 }
17166 goto done;
17167 }
17168 p->mark = _mark;
17169 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
17170 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
17171 }
17172 { // single_subscript_attribute_target
17173 if (p->error_indicator) {
17174 D(p->level--);
17175 return NULL;
17176 }
17177 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
17178 expr_ty single_subscript_attribute_target_var;
17179 if (
17180 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
17181 )
17182 {
17183 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
17184 _res = single_subscript_attribute_target_var;
17185 goto done;
17186 }
17187 p->mark = _mark;
17188 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
17189 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
17190 }
17191 _res = NULL;
17192 done:
17193 D(p->level--);
17194 return _res;
17195}
17196
17197// _tmp_21: '=' annotated_rhs
17198static void *
17199_tmp_21_rule(Parser *p)
17200{
17201 D(p->level++);
17202 if (p->error_indicator) {
17203 D(p->level--);
17204 return NULL;
17205 }
17206 void * _res = NULL;
17207 int _mark = p->mark;
17208 { // '=' annotated_rhs
17209 if (p->error_indicator) {
17210 D(p->level--);
17211 return NULL;
17212 }
17213 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
17214 Token * _literal;
17215 expr_ty d;
17216 if (
17217 (_literal = _PyPegen_expect_token(p, 22)) // token='='
17218 &&
17219 (d = annotated_rhs_rule(p)) // annotated_rhs
17220 )
17221 {
17222 D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
17223 _res = d;
17224 if (_res == NULL && PyErr_Occurred()) {
17225 p->error_indicator = 1;
17226 D(p->level--);
17227 return NULL;
17228 }
17229 goto done;
17230 }
17231 p->mark = _mark;
17232 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
17233 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
17234 }
17235 _res = NULL;
17236 done:
17237 D(p->level--);
17238 return _res;
17239}
17240
17241// _loop1_22: (star_targets '=')
17242static asdl_seq *
17243_loop1_22_rule(Parser *p)
17244{
17245 D(p->level++);
17246 if (p->error_indicator) {
17247 D(p->level--);
17248 return NULL;
17249 }
17250 void *_res = NULL;
17251 int _mark = p->mark;
17252 int _start_mark = p->mark;
17253 void **_children = PyMem_Malloc(sizeof(void *));
17254 if (!_children) {
17255 p->error_indicator = 1;
17256 PyErr_NoMemory();
17257 D(p->level--);
17258 return NULL;
17259 }
17260 ssize_t _children_capacity = 1;
17261 ssize_t _n = 0;
17262 { // (star_targets '=')
17263 if (p->error_indicator) {
17264 D(p->level--);
17265 return NULL;
17266 }
17267 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000017268 void *_tmp_144_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017269 while (
Pablo Galindo58fb1562021-02-02 19:54:22 +000017270 (_tmp_144_var = _tmp_144_rule(p)) // star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017271 )
17272 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000017273 _res = _tmp_144_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017274 if (_n == _children_capacity) {
17275 _children_capacity *= 2;
17276 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17277 if (!_new_children) {
17278 p->error_indicator = 1;
17279 PyErr_NoMemory();
17280 D(p->level--);
17281 return NULL;
17282 }
17283 _children = _new_children;
17284 }
17285 _children[_n++] = _res;
17286 _mark = p->mark;
17287 }
17288 p->mark = _mark;
17289 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
17290 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
17291 }
17292 if (_n == 0 || p->error_indicator) {
17293 PyMem_Free(_children);
17294 D(p->level--);
17295 return NULL;
17296 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017297 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017298 if (!_seq) {
17299 PyMem_Free(_children);
17300 p->error_indicator = 1;
17301 PyErr_NoMemory();
17302 D(p->level--);
17303 return NULL;
17304 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017305 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017306 PyMem_Free(_children);
17307 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
17308 D(p->level--);
17309 return _seq;
17310}
17311
17312// _tmp_23: yield_expr | star_expressions
17313static void *
17314_tmp_23_rule(Parser *p)
17315{
17316 D(p->level++);
17317 if (p->error_indicator) {
17318 D(p->level--);
17319 return NULL;
17320 }
17321 void * _res = NULL;
17322 int _mark = p->mark;
17323 { // yield_expr
17324 if (p->error_indicator) {
17325 D(p->level--);
17326 return NULL;
17327 }
17328 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
17329 expr_ty yield_expr_var;
17330 if (
17331 (yield_expr_var = yield_expr_rule(p)) // yield_expr
17332 )
17333 {
17334 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
17335 _res = yield_expr_var;
17336 goto done;
17337 }
17338 p->mark = _mark;
17339 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
17340 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
17341 }
17342 { // star_expressions
17343 if (p->error_indicator) {
17344 D(p->level--);
17345 return NULL;
17346 }
17347 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
17348 expr_ty star_expressions_var;
17349 if (
17350 (star_expressions_var = star_expressions_rule(p)) // star_expressions
17351 )
17352 {
17353 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
17354 _res = star_expressions_var;
17355 goto done;
17356 }
17357 p->mark = _mark;
17358 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
17359 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
17360 }
17361 _res = NULL;
17362 done:
17363 D(p->level--);
17364 return _res;
17365}
17366
17367// _tmp_24: yield_expr | star_expressions
17368static void *
17369_tmp_24_rule(Parser *p)
17370{
17371 D(p->level++);
17372 if (p->error_indicator) {
17373 D(p->level--);
17374 return NULL;
17375 }
17376 void * _res = NULL;
17377 int _mark = p->mark;
17378 { // yield_expr
17379 if (p->error_indicator) {
17380 D(p->level--);
17381 return NULL;
17382 }
17383 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
17384 expr_ty yield_expr_var;
17385 if (
17386 (yield_expr_var = yield_expr_rule(p)) // yield_expr
17387 )
17388 {
17389 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
17390 _res = yield_expr_var;
17391 goto done;
17392 }
17393 p->mark = _mark;
17394 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
17395 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
17396 }
17397 { // star_expressions
17398 if (p->error_indicator) {
17399 D(p->level--);
17400 return NULL;
17401 }
17402 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
17403 expr_ty star_expressions_var;
17404 if (
17405 (star_expressions_var = star_expressions_rule(p)) // star_expressions
17406 )
17407 {
17408 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
17409 _res = star_expressions_var;
17410 goto done;
17411 }
17412 p->mark = _mark;
17413 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
17414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
17415 }
17416 _res = NULL;
17417 done:
17418 D(p->level--);
17419 return _res;
17420}
17421
17422// _loop0_26: ',' NAME
17423static asdl_seq *
17424_loop0_26_rule(Parser *p)
17425{
17426 D(p->level++);
17427 if (p->error_indicator) {
17428 D(p->level--);
17429 return NULL;
17430 }
17431 void *_res = NULL;
17432 int _mark = p->mark;
17433 int _start_mark = p->mark;
17434 void **_children = PyMem_Malloc(sizeof(void *));
17435 if (!_children) {
17436 p->error_indicator = 1;
17437 PyErr_NoMemory();
17438 D(p->level--);
17439 return NULL;
17440 }
17441 ssize_t _children_capacity = 1;
17442 ssize_t _n = 0;
17443 { // ',' NAME
17444 if (p->error_indicator) {
17445 D(p->level--);
17446 return NULL;
17447 }
17448 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
17449 Token * _literal;
17450 expr_ty elem;
17451 while (
17452 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17453 &&
17454 (elem = _PyPegen_name_token(p)) // NAME
17455 )
17456 {
17457 _res = elem;
17458 if (_res == NULL && PyErr_Occurred()) {
17459 p->error_indicator = 1;
17460 PyMem_Free(_children);
17461 D(p->level--);
17462 return NULL;
17463 }
17464 if (_n == _children_capacity) {
17465 _children_capacity *= 2;
17466 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17467 if (!_new_children) {
17468 p->error_indicator = 1;
17469 PyErr_NoMemory();
17470 D(p->level--);
17471 return NULL;
17472 }
17473 _children = _new_children;
17474 }
17475 _children[_n++] = _res;
17476 _mark = p->mark;
17477 }
17478 p->mark = _mark;
17479 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
17480 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
17481 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017482 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017483 if (!_seq) {
17484 PyMem_Free(_children);
17485 p->error_indicator = 1;
17486 PyErr_NoMemory();
17487 D(p->level--);
17488 return NULL;
17489 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017490 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017491 PyMem_Free(_children);
17492 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
17493 D(p->level--);
17494 return _seq;
17495}
17496
17497// _gather_25: NAME _loop0_26
17498static asdl_seq *
17499_gather_25_rule(Parser *p)
17500{
17501 D(p->level++);
17502 if (p->error_indicator) {
17503 D(p->level--);
17504 return NULL;
17505 }
17506 asdl_seq * _res = NULL;
17507 int _mark = p->mark;
17508 { // NAME _loop0_26
17509 if (p->error_indicator) {
17510 D(p->level--);
17511 return NULL;
17512 }
17513 D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
17514 expr_ty elem;
17515 asdl_seq * seq;
17516 if (
17517 (elem = _PyPegen_name_token(p)) // NAME
17518 &&
17519 (seq = _loop0_26_rule(p)) // _loop0_26
17520 )
17521 {
17522 D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
17523 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
17524 goto done;
17525 }
17526 p->mark = _mark;
17527 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
17528 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
17529 }
17530 _res = NULL;
17531 done:
17532 D(p->level--);
17533 return _res;
17534}
17535
17536// _loop0_28: ',' NAME
17537static asdl_seq *
17538_loop0_28_rule(Parser *p)
17539{
17540 D(p->level++);
17541 if (p->error_indicator) {
17542 D(p->level--);
17543 return NULL;
17544 }
17545 void *_res = NULL;
17546 int _mark = p->mark;
17547 int _start_mark = p->mark;
17548 void **_children = PyMem_Malloc(sizeof(void *));
17549 if (!_children) {
17550 p->error_indicator = 1;
17551 PyErr_NoMemory();
17552 D(p->level--);
17553 return NULL;
17554 }
17555 ssize_t _children_capacity = 1;
17556 ssize_t _n = 0;
17557 { // ',' NAME
17558 if (p->error_indicator) {
17559 D(p->level--);
17560 return NULL;
17561 }
17562 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
17563 Token * _literal;
17564 expr_ty elem;
17565 while (
17566 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17567 &&
17568 (elem = _PyPegen_name_token(p)) // NAME
17569 )
17570 {
17571 _res = elem;
17572 if (_res == NULL && PyErr_Occurred()) {
17573 p->error_indicator = 1;
17574 PyMem_Free(_children);
17575 D(p->level--);
17576 return NULL;
17577 }
17578 if (_n == _children_capacity) {
17579 _children_capacity *= 2;
17580 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17581 if (!_new_children) {
17582 p->error_indicator = 1;
17583 PyErr_NoMemory();
17584 D(p->level--);
17585 return NULL;
17586 }
17587 _children = _new_children;
17588 }
17589 _children[_n++] = _res;
17590 _mark = p->mark;
17591 }
17592 p->mark = _mark;
17593 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
17594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
17595 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017596 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017597 if (!_seq) {
17598 PyMem_Free(_children);
17599 p->error_indicator = 1;
17600 PyErr_NoMemory();
17601 D(p->level--);
17602 return NULL;
17603 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017604 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017605 PyMem_Free(_children);
17606 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
17607 D(p->level--);
17608 return _seq;
17609}
17610
17611// _gather_27: NAME _loop0_28
17612static asdl_seq *
17613_gather_27_rule(Parser *p)
17614{
17615 D(p->level++);
17616 if (p->error_indicator) {
17617 D(p->level--);
17618 return NULL;
17619 }
17620 asdl_seq * _res = NULL;
17621 int _mark = p->mark;
17622 { // NAME _loop0_28
17623 if (p->error_indicator) {
17624 D(p->level--);
17625 return NULL;
17626 }
17627 D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
17628 expr_ty elem;
17629 asdl_seq * seq;
17630 if (
17631 (elem = _PyPegen_name_token(p)) // NAME
17632 &&
17633 (seq = _loop0_28_rule(p)) // _loop0_28
17634 )
17635 {
17636 D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
17637 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
17638 goto done;
17639 }
17640 p->mark = _mark;
17641 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
17642 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
17643 }
17644 _res = NULL;
17645 done:
17646 D(p->level--);
17647 return _res;
17648}
17649
17650// _tmp_29: ',' expression
17651static void *
17652_tmp_29_rule(Parser *p)
17653{
17654 D(p->level++);
17655 if (p->error_indicator) {
17656 D(p->level--);
17657 return NULL;
17658 }
17659 void * _res = NULL;
17660 int _mark = p->mark;
17661 { // ',' expression
17662 if (p->error_indicator) {
17663 D(p->level--);
17664 return NULL;
17665 }
17666 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
17667 Token * _literal;
17668 expr_ty z;
17669 if (
17670 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17671 &&
17672 (z = expression_rule(p)) // expression
17673 )
17674 {
17675 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
17676 _res = z;
17677 if (_res == NULL && PyErr_Occurred()) {
17678 p->error_indicator = 1;
17679 D(p->level--);
17680 return NULL;
17681 }
17682 goto done;
17683 }
17684 p->mark = _mark;
17685 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
17686 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
17687 }
17688 _res = NULL;
17689 done:
17690 D(p->level--);
17691 return _res;
17692}
17693
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017694// _tmp_30: ';' | NEWLINE
17695static void *
17696_tmp_30_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017697{
17698 D(p->level++);
17699 if (p->error_indicator) {
17700 D(p->level--);
17701 return NULL;
17702 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017703 void * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017704 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017705 { // ';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017706 if (p->error_indicator) {
17707 D(p->level--);
17708 return NULL;
17709 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017710 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
17711 Token * _literal;
17712 if (
17713 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017714 )
17715 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017716 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
17717 _res = _literal;
17718 goto done;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017719 }
17720 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017721 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
17722 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017723 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017724 { // NEWLINE
17725 if (p->error_indicator) {
17726 D(p->level--);
17727 return NULL;
17728 }
17729 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
17730 Token * newline_var;
17731 if (
17732 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
17733 )
17734 {
17735 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
17736 _res = newline_var;
17737 goto done;
17738 }
17739 p->mark = _mark;
17740 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
17741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017742 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017743 _res = NULL;
17744 done:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017745 D(p->level--);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017746 return _res;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017747}
17748
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017749// _loop0_31: ('.' | '...')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017750static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017751_loop0_31_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017752{
17753 D(p->level++);
17754 if (p->error_indicator) {
17755 D(p->level--);
17756 return NULL;
17757 }
17758 void *_res = NULL;
17759 int _mark = p->mark;
17760 int _start_mark = p->mark;
17761 void **_children = PyMem_Malloc(sizeof(void *));
17762 if (!_children) {
17763 p->error_indicator = 1;
17764 PyErr_NoMemory();
17765 D(p->level--);
17766 return NULL;
17767 }
17768 ssize_t _children_capacity = 1;
17769 ssize_t _n = 0;
17770 { // ('.' | '...')
17771 if (p->error_indicator) {
17772 D(p->level--);
17773 return NULL;
17774 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017775 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000017776 void *_tmp_145_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017777 while (
Pablo Galindo58fb1562021-02-02 19:54:22 +000017778 (_tmp_145_var = _tmp_145_rule(p)) // '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017779 )
17780 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000017781 _res = _tmp_145_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017782 if (_n == _children_capacity) {
17783 _children_capacity *= 2;
17784 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17785 if (!_new_children) {
17786 p->error_indicator = 1;
17787 PyErr_NoMemory();
17788 D(p->level--);
17789 return NULL;
17790 }
17791 _children = _new_children;
17792 }
17793 _children[_n++] = _res;
17794 _mark = p->mark;
17795 }
17796 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017797 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
17798 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
17799 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017800 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017801 if (!_seq) {
17802 PyMem_Free(_children);
17803 p->error_indicator = 1;
17804 PyErr_NoMemory();
17805 D(p->level--);
17806 return NULL;
17807 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017808 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017809 PyMem_Free(_children);
17810 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
17811 D(p->level--);
17812 return _seq;
17813}
17814
17815// _loop1_32: ('.' | '...')
17816static asdl_seq *
17817_loop1_32_rule(Parser *p)
17818{
17819 D(p->level++);
17820 if (p->error_indicator) {
17821 D(p->level--);
17822 return NULL;
17823 }
17824 void *_res = NULL;
17825 int _mark = p->mark;
17826 int _start_mark = p->mark;
17827 void **_children = PyMem_Malloc(sizeof(void *));
17828 if (!_children) {
17829 p->error_indicator = 1;
17830 PyErr_NoMemory();
17831 D(p->level--);
17832 return NULL;
17833 }
17834 ssize_t _children_capacity = 1;
17835 ssize_t _n = 0;
17836 { // ('.' | '...')
17837 if (p->error_indicator) {
17838 D(p->level--);
17839 return NULL;
17840 }
17841 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000017842 void *_tmp_146_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017843 while (
Pablo Galindo58fb1562021-02-02 19:54:22 +000017844 (_tmp_146_var = _tmp_146_rule(p)) // '.' | '...'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017845 )
17846 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000017847 _res = _tmp_146_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017848 if (_n == _children_capacity) {
17849 _children_capacity *= 2;
17850 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17851 if (!_new_children) {
17852 p->error_indicator = 1;
17853 PyErr_NoMemory();
17854 D(p->level--);
17855 return NULL;
17856 }
17857 _children = _new_children;
17858 }
17859 _children[_n++] = _res;
17860 _mark = p->mark;
17861 }
17862 p->mark = _mark;
17863 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017864 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
17865 }
17866 if (_n == 0 || p->error_indicator) {
17867 PyMem_Free(_children);
17868 D(p->level--);
17869 return NULL;
17870 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017871 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017872 if (!_seq) {
17873 PyMem_Free(_children);
17874 p->error_indicator = 1;
17875 PyErr_NoMemory();
17876 D(p->level--);
17877 return NULL;
17878 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017879 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017880 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017881 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017882 D(p->level--);
17883 return _seq;
17884}
17885
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017886// _loop0_34: ',' import_from_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017887static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017888_loop0_34_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017889{
17890 D(p->level++);
17891 if (p->error_indicator) {
17892 D(p->level--);
17893 return NULL;
17894 }
17895 void *_res = NULL;
17896 int _mark = p->mark;
17897 int _start_mark = p->mark;
17898 void **_children = PyMem_Malloc(sizeof(void *));
17899 if (!_children) {
17900 p->error_indicator = 1;
17901 PyErr_NoMemory();
17902 D(p->level--);
17903 return NULL;
17904 }
17905 ssize_t _children_capacity = 1;
17906 ssize_t _n = 0;
17907 { // ',' import_from_as_name
17908 if (p->error_indicator) {
17909 D(p->level--);
17910 return NULL;
17911 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017912 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 +010017913 Token * _literal;
17914 alias_ty elem;
17915 while (
17916 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17917 &&
17918 (elem = import_from_as_name_rule(p)) // import_from_as_name
17919 )
17920 {
17921 _res = elem;
17922 if (_res == NULL && PyErr_Occurred()) {
17923 p->error_indicator = 1;
17924 PyMem_Free(_children);
17925 D(p->level--);
17926 return NULL;
17927 }
17928 if (_n == _children_capacity) {
17929 _children_capacity *= 2;
17930 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17931 if (!_new_children) {
17932 p->error_indicator = 1;
17933 PyErr_NoMemory();
17934 D(p->level--);
17935 return NULL;
17936 }
17937 _children = _new_children;
17938 }
17939 _children[_n++] = _res;
17940 _mark = p->mark;
17941 }
17942 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017943 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017944 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
17945 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017946 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017947 if (!_seq) {
17948 PyMem_Free(_children);
17949 p->error_indicator = 1;
17950 PyErr_NoMemory();
17951 D(p->level--);
17952 return NULL;
17953 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017954 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017955 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017956 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017957 D(p->level--);
17958 return _seq;
17959}
17960
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017961// _gather_33: import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017962static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017963_gather_33_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017964{
17965 D(p->level++);
17966 if (p->error_indicator) {
17967 D(p->level--);
17968 return NULL;
17969 }
17970 asdl_seq * _res = NULL;
17971 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017972 { // import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017973 if (p->error_indicator) {
17974 D(p->level--);
17975 return NULL;
17976 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017977 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 +010017978 alias_ty elem;
17979 asdl_seq * seq;
17980 if (
17981 (elem = import_from_as_name_rule(p)) // import_from_as_name
17982 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017983 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017984 )
17985 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017986 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 +010017987 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
17988 goto done;
17989 }
17990 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017991 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
17992 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017993 }
17994 _res = NULL;
17995 done:
17996 D(p->level--);
17997 return _res;
17998}
17999
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018000// _tmp_35: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018001static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018002_tmp_35_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018003{
18004 D(p->level++);
18005 if (p->error_indicator) {
18006 D(p->level--);
18007 return NULL;
18008 }
18009 void * _res = NULL;
18010 int _mark = p->mark;
18011 { // 'as' NAME
18012 if (p->error_indicator) {
18013 D(p->level--);
18014 return NULL;
18015 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018016 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018017 Token * _keyword;
18018 expr_ty z;
18019 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018020 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018021 &&
18022 (z = _PyPegen_name_token(p)) // NAME
18023 )
18024 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018025 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 +010018026 _res = z;
18027 if (_res == NULL && PyErr_Occurred()) {
18028 p->error_indicator = 1;
18029 D(p->level--);
18030 return NULL;
18031 }
18032 goto done;
18033 }
18034 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018035 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018036 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
18037 }
18038 _res = NULL;
18039 done:
18040 D(p->level--);
18041 return _res;
18042}
18043
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018044// _loop0_37: ',' dotted_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018045static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018046_loop0_37_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018047{
18048 D(p->level++);
18049 if (p->error_indicator) {
18050 D(p->level--);
18051 return NULL;
18052 }
18053 void *_res = NULL;
18054 int _mark = p->mark;
18055 int _start_mark = p->mark;
18056 void **_children = PyMem_Malloc(sizeof(void *));
18057 if (!_children) {
18058 p->error_indicator = 1;
18059 PyErr_NoMemory();
18060 D(p->level--);
18061 return NULL;
18062 }
18063 ssize_t _children_capacity = 1;
18064 ssize_t _n = 0;
18065 { // ',' dotted_as_name
18066 if (p->error_indicator) {
18067 D(p->level--);
18068 return NULL;
18069 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018070 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 +010018071 Token * _literal;
18072 alias_ty elem;
18073 while (
18074 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18075 &&
18076 (elem = dotted_as_name_rule(p)) // dotted_as_name
18077 )
18078 {
18079 _res = elem;
18080 if (_res == NULL && PyErr_Occurred()) {
18081 p->error_indicator = 1;
18082 PyMem_Free(_children);
18083 D(p->level--);
18084 return NULL;
18085 }
18086 if (_n == _children_capacity) {
18087 _children_capacity *= 2;
18088 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18089 if (!_new_children) {
18090 p->error_indicator = 1;
18091 PyErr_NoMemory();
18092 D(p->level--);
18093 return NULL;
18094 }
18095 _children = _new_children;
18096 }
18097 _children[_n++] = _res;
18098 _mark = p->mark;
18099 }
18100 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018101 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018102 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
18103 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018104 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018105 if (!_seq) {
18106 PyMem_Free(_children);
18107 p->error_indicator = 1;
18108 PyErr_NoMemory();
18109 D(p->level--);
18110 return NULL;
18111 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018112 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018113 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018114 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018115 D(p->level--);
18116 return _seq;
18117}
18118
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018119// _gather_36: dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018120static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018121_gather_36_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018122{
18123 D(p->level++);
18124 if (p->error_indicator) {
18125 D(p->level--);
18126 return NULL;
18127 }
18128 asdl_seq * _res = NULL;
18129 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018130 { // dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018131 if (p->error_indicator) {
18132 D(p->level--);
18133 return NULL;
18134 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018135 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 +010018136 alias_ty elem;
18137 asdl_seq * seq;
18138 if (
18139 (elem = dotted_as_name_rule(p)) // dotted_as_name
18140 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018141 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018142 )
18143 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018144 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 +010018145 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18146 goto done;
18147 }
18148 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018149 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
18150 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018151 }
18152 _res = NULL;
18153 done:
18154 D(p->level--);
18155 return _res;
18156}
18157
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018158// _tmp_38: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018159static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018160_tmp_38_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018161{
18162 D(p->level++);
18163 if (p->error_indicator) {
18164 D(p->level--);
18165 return NULL;
18166 }
18167 void * _res = NULL;
18168 int _mark = p->mark;
18169 { // 'as' NAME
18170 if (p->error_indicator) {
18171 D(p->level--);
18172 return NULL;
18173 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018174 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018175 Token * _keyword;
18176 expr_ty z;
18177 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018178 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018179 &&
18180 (z = _PyPegen_name_token(p)) // NAME
18181 )
18182 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018183 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 +010018184 _res = z;
18185 if (_res == NULL && PyErr_Occurred()) {
18186 p->error_indicator = 1;
18187 D(p->level--);
18188 return NULL;
18189 }
18190 goto done;
18191 }
18192 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018193 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018194 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
18195 }
18196 _res = NULL;
18197 done:
18198 D(p->level--);
18199 return _res;
18200}
18201
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018202// _loop0_40: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018203static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018204_loop0_40_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018205{
18206 D(p->level++);
18207 if (p->error_indicator) {
18208 D(p->level--);
18209 return NULL;
18210 }
18211 void *_res = NULL;
18212 int _mark = p->mark;
18213 int _start_mark = p->mark;
18214 void **_children = PyMem_Malloc(sizeof(void *));
18215 if (!_children) {
18216 p->error_indicator = 1;
18217 PyErr_NoMemory();
18218 D(p->level--);
18219 return NULL;
18220 }
18221 ssize_t _children_capacity = 1;
18222 ssize_t _n = 0;
18223 { // ',' with_item
18224 if (p->error_indicator) {
18225 D(p->level--);
18226 return NULL;
18227 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018228 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018229 Token * _literal;
18230 withitem_ty elem;
18231 while (
18232 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18233 &&
18234 (elem = with_item_rule(p)) // with_item
18235 )
18236 {
18237 _res = elem;
18238 if (_res == NULL && PyErr_Occurred()) {
18239 p->error_indicator = 1;
18240 PyMem_Free(_children);
18241 D(p->level--);
18242 return NULL;
18243 }
18244 if (_n == _children_capacity) {
18245 _children_capacity *= 2;
18246 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18247 if (!_new_children) {
18248 p->error_indicator = 1;
18249 PyErr_NoMemory();
18250 D(p->level--);
18251 return NULL;
18252 }
18253 _children = _new_children;
18254 }
18255 _children[_n++] = _res;
18256 _mark = p->mark;
18257 }
18258 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018259 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018260 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
18261 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018262 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018263 if (!_seq) {
18264 PyMem_Free(_children);
18265 p->error_indicator = 1;
18266 PyErr_NoMemory();
18267 D(p->level--);
18268 return NULL;
18269 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018270 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018271 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018272 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018273 D(p->level--);
18274 return _seq;
18275}
18276
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018277// _gather_39: with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018278static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018279_gather_39_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018280{
18281 D(p->level++);
18282 if (p->error_indicator) {
18283 D(p->level--);
18284 return NULL;
18285 }
18286 asdl_seq * _res = NULL;
18287 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018288 { // with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018289 if (p->error_indicator) {
18290 D(p->level--);
18291 return NULL;
18292 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018293 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 +010018294 withitem_ty elem;
18295 asdl_seq * seq;
18296 if (
18297 (elem = with_item_rule(p)) // with_item
18298 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018299 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018300 )
18301 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018302 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 +010018303 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18304 goto done;
18305 }
18306 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018307 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
18308 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018309 }
18310 _res = NULL;
18311 done:
18312 D(p->level--);
18313 return _res;
18314}
18315
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018316// _loop0_42: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018317static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018318_loop0_42_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018319{
18320 D(p->level++);
18321 if (p->error_indicator) {
18322 D(p->level--);
18323 return NULL;
18324 }
18325 void *_res = NULL;
18326 int _mark = p->mark;
18327 int _start_mark = p->mark;
18328 void **_children = PyMem_Malloc(sizeof(void *));
18329 if (!_children) {
18330 p->error_indicator = 1;
18331 PyErr_NoMemory();
18332 D(p->level--);
18333 return NULL;
18334 }
18335 ssize_t _children_capacity = 1;
18336 ssize_t _n = 0;
18337 { // ',' with_item
18338 if (p->error_indicator) {
18339 D(p->level--);
18340 return NULL;
18341 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018342 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018343 Token * _literal;
18344 withitem_ty elem;
18345 while (
18346 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18347 &&
18348 (elem = with_item_rule(p)) // with_item
18349 )
18350 {
18351 _res = elem;
18352 if (_res == NULL && PyErr_Occurred()) {
18353 p->error_indicator = 1;
18354 PyMem_Free(_children);
18355 D(p->level--);
18356 return NULL;
18357 }
18358 if (_n == _children_capacity) {
18359 _children_capacity *= 2;
18360 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18361 if (!_new_children) {
18362 p->error_indicator = 1;
18363 PyErr_NoMemory();
18364 D(p->level--);
18365 return NULL;
18366 }
18367 _children = _new_children;
18368 }
18369 _children[_n++] = _res;
18370 _mark = p->mark;
18371 }
18372 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018373 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018374 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
18375 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018376 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018377 if (!_seq) {
18378 PyMem_Free(_children);
18379 p->error_indicator = 1;
18380 PyErr_NoMemory();
18381 D(p->level--);
18382 return NULL;
18383 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018384 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018385 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018386 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018387 D(p->level--);
18388 return _seq;
18389}
18390
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018391// _gather_41: with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018392static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018393_gather_41_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018394{
18395 D(p->level++);
18396 if (p->error_indicator) {
18397 D(p->level--);
18398 return NULL;
18399 }
18400 asdl_seq * _res = NULL;
18401 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018402 { // with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018403 if (p->error_indicator) {
18404 D(p->level--);
18405 return NULL;
18406 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018407 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 +010018408 withitem_ty elem;
18409 asdl_seq * seq;
18410 if (
18411 (elem = with_item_rule(p)) // with_item
18412 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018413 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018414 )
18415 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018416 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 +010018417 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18418 goto done;
18419 }
18420 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018421 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
18422 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018423 }
18424 _res = NULL;
18425 done:
18426 D(p->level--);
18427 return _res;
18428}
18429
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018430// _loop0_44: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018431static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018432_loop0_44_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018433{
18434 D(p->level++);
18435 if (p->error_indicator) {
18436 D(p->level--);
18437 return NULL;
18438 }
18439 void *_res = NULL;
18440 int _mark = p->mark;
18441 int _start_mark = p->mark;
18442 void **_children = PyMem_Malloc(sizeof(void *));
18443 if (!_children) {
18444 p->error_indicator = 1;
18445 PyErr_NoMemory();
18446 D(p->level--);
18447 return NULL;
18448 }
18449 ssize_t _children_capacity = 1;
18450 ssize_t _n = 0;
18451 { // ',' with_item
18452 if (p->error_indicator) {
18453 D(p->level--);
18454 return NULL;
18455 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018456 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018457 Token * _literal;
18458 withitem_ty elem;
18459 while (
18460 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18461 &&
18462 (elem = with_item_rule(p)) // with_item
18463 )
18464 {
18465 _res = elem;
18466 if (_res == NULL && PyErr_Occurred()) {
18467 p->error_indicator = 1;
18468 PyMem_Free(_children);
18469 D(p->level--);
18470 return NULL;
18471 }
18472 if (_n == _children_capacity) {
18473 _children_capacity *= 2;
18474 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18475 if (!_new_children) {
18476 p->error_indicator = 1;
18477 PyErr_NoMemory();
18478 D(p->level--);
18479 return NULL;
18480 }
18481 _children = _new_children;
18482 }
18483 _children[_n++] = _res;
18484 _mark = p->mark;
18485 }
18486 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018487 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018488 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
18489 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018490 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018491 if (!_seq) {
18492 PyMem_Free(_children);
18493 p->error_indicator = 1;
18494 PyErr_NoMemory();
18495 D(p->level--);
18496 return NULL;
18497 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018498 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018499 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018500 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018501 D(p->level--);
18502 return _seq;
18503}
18504
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018505// _gather_43: with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018506static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018507_gather_43_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018508{
18509 D(p->level++);
18510 if (p->error_indicator) {
18511 D(p->level--);
18512 return NULL;
18513 }
18514 asdl_seq * _res = NULL;
18515 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018516 { // with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018517 if (p->error_indicator) {
18518 D(p->level--);
18519 return NULL;
18520 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018521 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 +010018522 withitem_ty elem;
18523 asdl_seq * seq;
18524 if (
18525 (elem = with_item_rule(p)) // with_item
18526 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018527 (seq = _loop0_44_rule(p)) // _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018528 )
18529 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018530 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 +010018531 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18532 goto done;
18533 }
18534 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018535 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
18536 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018537 }
18538 _res = NULL;
18539 done:
18540 D(p->level--);
18541 return _res;
18542}
18543
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018544// _loop0_46: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018545static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018546_loop0_46_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018547{
18548 D(p->level++);
18549 if (p->error_indicator) {
18550 D(p->level--);
18551 return NULL;
18552 }
18553 void *_res = NULL;
18554 int _mark = p->mark;
18555 int _start_mark = p->mark;
18556 void **_children = PyMem_Malloc(sizeof(void *));
18557 if (!_children) {
18558 p->error_indicator = 1;
18559 PyErr_NoMemory();
18560 D(p->level--);
18561 return NULL;
18562 }
18563 ssize_t _children_capacity = 1;
18564 ssize_t _n = 0;
18565 { // ',' with_item
18566 if (p->error_indicator) {
18567 D(p->level--);
18568 return NULL;
18569 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018570 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018571 Token * _literal;
18572 withitem_ty elem;
18573 while (
18574 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18575 &&
18576 (elem = with_item_rule(p)) // with_item
18577 )
18578 {
18579 _res = elem;
18580 if (_res == NULL && PyErr_Occurred()) {
18581 p->error_indicator = 1;
18582 PyMem_Free(_children);
18583 D(p->level--);
18584 return NULL;
18585 }
18586 if (_n == _children_capacity) {
18587 _children_capacity *= 2;
18588 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18589 if (!_new_children) {
18590 p->error_indicator = 1;
18591 PyErr_NoMemory();
18592 D(p->level--);
18593 return NULL;
18594 }
18595 _children = _new_children;
18596 }
18597 _children[_n++] = _res;
18598 _mark = p->mark;
18599 }
18600 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018601 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018602 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
18603 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018604 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018605 if (!_seq) {
18606 PyMem_Free(_children);
18607 p->error_indicator = 1;
18608 PyErr_NoMemory();
18609 D(p->level--);
18610 return NULL;
18611 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018612 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018613 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018614 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018615 D(p->level--);
18616 return _seq;
18617}
18618
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018619// _gather_45: with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018620static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018621_gather_45_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018622{
18623 D(p->level++);
18624 if (p->error_indicator) {
18625 D(p->level--);
18626 return NULL;
18627 }
18628 asdl_seq * _res = NULL;
18629 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018630 { // with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018631 if (p->error_indicator) {
18632 D(p->level--);
18633 return NULL;
18634 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018635 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 +010018636 withitem_ty elem;
18637 asdl_seq * seq;
18638 if (
18639 (elem = with_item_rule(p)) // with_item
18640 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018641 (seq = _loop0_46_rule(p)) // _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018642 )
18643 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018644 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 +010018645 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18646 goto done;
18647 }
18648 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018649 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
18650 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018651 }
18652 _res = NULL;
18653 done:
18654 D(p->level--);
18655 return _res;
18656}
18657
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018658// _tmp_47: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018659static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018660_tmp_47_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018661{
18662 D(p->level++);
18663 if (p->error_indicator) {
18664 D(p->level--);
18665 return NULL;
18666 }
18667 void * _res = NULL;
18668 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018669 { // ','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018670 if (p->error_indicator) {
18671 D(p->level--);
18672 return NULL;
18673 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018674 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
18675 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018676 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018677 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018678 )
18679 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018680 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
18681 _res = _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018682 goto done;
18683 }
18684 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018685 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18686 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
18687 }
18688 { // ')'
18689 if (p->error_indicator) {
18690 D(p->level--);
18691 return NULL;
18692 }
18693 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
18694 Token * _literal;
18695 if (
18696 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
18697 )
18698 {
18699 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
18700 _res = _literal;
18701 goto done;
18702 }
18703 p->mark = _mark;
18704 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18705 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
18706 }
18707 { // ':'
18708 if (p->error_indicator) {
18709 D(p->level--);
18710 return NULL;
18711 }
18712 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
18713 Token * _literal;
18714 if (
18715 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
18716 )
18717 {
18718 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
18719 _res = _literal;
18720 goto done;
18721 }
18722 p->mark = _mark;
18723 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18724 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018725 }
18726 _res = NULL;
18727 done:
18728 D(p->level--);
18729 return _res;
18730}
18731
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018732// _loop1_48: except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018733static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018734_loop1_48_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018735{
18736 D(p->level++);
18737 if (p->error_indicator) {
18738 D(p->level--);
18739 return NULL;
18740 }
18741 void *_res = NULL;
18742 int _mark = p->mark;
18743 int _start_mark = p->mark;
18744 void **_children = PyMem_Malloc(sizeof(void *));
18745 if (!_children) {
18746 p->error_indicator = 1;
18747 PyErr_NoMemory();
18748 D(p->level--);
18749 return NULL;
18750 }
18751 ssize_t _children_capacity = 1;
18752 ssize_t _n = 0;
18753 { // except_block
18754 if (p->error_indicator) {
18755 D(p->level--);
18756 return NULL;
18757 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018758 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018759 excepthandler_ty except_block_var;
18760 while (
18761 (except_block_var = except_block_rule(p)) // except_block
18762 )
18763 {
18764 _res = except_block_var;
18765 if (_n == _children_capacity) {
18766 _children_capacity *= 2;
18767 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18768 if (!_new_children) {
18769 p->error_indicator = 1;
18770 PyErr_NoMemory();
18771 D(p->level--);
18772 return NULL;
18773 }
18774 _children = _new_children;
18775 }
18776 _children[_n++] = _res;
18777 _mark = p->mark;
18778 }
18779 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018780 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018781 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
18782 }
18783 if (_n == 0 || p->error_indicator) {
18784 PyMem_Free(_children);
18785 D(p->level--);
18786 return NULL;
18787 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018788 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018789 if (!_seq) {
18790 PyMem_Free(_children);
18791 p->error_indicator = 1;
18792 PyErr_NoMemory();
18793 D(p->level--);
18794 return NULL;
18795 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018796 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018797 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018798 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018799 D(p->level--);
18800 return _seq;
18801}
18802
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018803// _tmp_49: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018804static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018805_tmp_49_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018806{
18807 D(p->level++);
18808 if (p->error_indicator) {
18809 D(p->level--);
18810 return NULL;
18811 }
18812 void * _res = NULL;
18813 int _mark = p->mark;
18814 { // 'as' NAME
18815 if (p->error_indicator) {
18816 D(p->level--);
18817 return NULL;
18818 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018819 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018820 Token * _keyword;
18821 expr_ty z;
18822 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018823 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018824 &&
18825 (z = _PyPegen_name_token(p)) // NAME
18826 )
18827 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018828 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 +010018829 _res = z;
18830 if (_res == NULL && PyErr_Occurred()) {
18831 p->error_indicator = 1;
18832 D(p->level--);
18833 return NULL;
18834 }
18835 goto done;
18836 }
18837 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018838 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018839 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
18840 }
18841 _res = NULL;
18842 done:
18843 D(p->level--);
18844 return _res;
18845}
18846
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018847// _tmp_50: 'from' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018848static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018849_tmp_50_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018850{
18851 D(p->level++);
18852 if (p->error_indicator) {
18853 D(p->level--);
18854 return NULL;
18855 }
18856 void * _res = NULL;
18857 int _mark = p->mark;
18858 { // 'from' expression
18859 if (p->error_indicator) {
18860 D(p->level--);
18861 return NULL;
18862 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018863 D(fprintf(stderr, "%*c> _tmp_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018864 Token * _keyword;
18865 expr_ty z;
18866 if (
18867 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
18868 &&
18869 (z = expression_rule(p)) // expression
18870 )
18871 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018872 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 +010018873 _res = z;
18874 if (_res == NULL && PyErr_Occurred()) {
18875 p->error_indicator = 1;
18876 D(p->level--);
18877 return NULL;
18878 }
18879 goto done;
18880 }
18881 p->mark = _mark;
18882 D(fprintf(stderr, "%*c%s _tmp_50[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018883 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018884 }
18885 _res = NULL;
18886 done:
18887 D(p->level--);
18888 return _res;
18889}
18890
18891// _tmp_51: '->' expression
18892static void *
18893_tmp_51_rule(Parser *p)
18894{
18895 D(p->level++);
18896 if (p->error_indicator) {
18897 D(p->level--);
18898 return NULL;
18899 }
18900 void * _res = NULL;
18901 int _mark = p->mark;
18902 { // '->' expression
18903 if (p->error_indicator) {
18904 D(p->level--);
18905 return NULL;
18906 }
18907 D(fprintf(stderr, "%*c> _tmp_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18908 Token * _literal;
18909 expr_ty z;
18910 if (
18911 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
18912 &&
18913 (z = expression_rule(p)) // expression
18914 )
18915 {
18916 D(fprintf(stderr, "%*c+ _tmp_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18917 _res = z;
18918 if (_res == NULL && PyErr_Occurred()) {
18919 p->error_indicator = 1;
18920 D(p->level--);
18921 return NULL;
18922 }
18923 goto done;
18924 }
18925 p->mark = _mark;
18926 D(fprintf(stderr, "%*c%s _tmp_51[%d-%d]: %s failed!\n", p->level, ' ',
18927 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
18928 }
18929 _res = NULL;
18930 done:
18931 D(p->level--);
18932 return _res;
18933}
18934
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018935// _tmp_52: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018936static void *
18937_tmp_52_rule(Parser *p)
18938{
18939 D(p->level++);
18940 if (p->error_indicator) {
18941 D(p->level--);
18942 return NULL;
18943 }
18944 void * _res = NULL;
18945 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018946 { // '->' expression
18947 if (p->error_indicator) {
18948 D(p->level--);
18949 return NULL;
18950 }
18951 D(fprintf(stderr, "%*c> _tmp_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18952 Token * _literal;
18953 expr_ty z;
18954 if (
18955 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
18956 &&
18957 (z = expression_rule(p)) // expression
18958 )
18959 {
18960 D(fprintf(stderr, "%*c+ _tmp_52[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18961 _res = z;
18962 if (_res == NULL && PyErr_Occurred()) {
18963 p->error_indicator = 1;
18964 D(p->level--);
18965 return NULL;
18966 }
18967 goto done;
18968 }
18969 p->mark = _mark;
18970 D(fprintf(stderr, "%*c%s _tmp_52[%d-%d]: %s failed!\n", p->level, ' ',
18971 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
18972 }
18973 _res = NULL;
18974 done:
18975 D(p->level--);
18976 return _res;
18977}
18978
18979// _tmp_53: NEWLINE INDENT
18980static void *
18981_tmp_53_rule(Parser *p)
18982{
18983 D(p->level++);
18984 if (p->error_indicator) {
18985 D(p->level--);
18986 return NULL;
18987 }
18988 void * _res = NULL;
18989 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018990 { // NEWLINE INDENT
18991 if (p->error_indicator) {
18992 D(p->level--);
18993 return NULL;
18994 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018995 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018996 Token * indent_var;
18997 Token * newline_var;
18998 if (
18999 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19000 &&
19001 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
19002 )
19003 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019004 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 +010019005 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
19006 goto done;
19007 }
19008 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019009 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019010 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
19011 }
19012 _res = NULL;
19013 done:
19014 D(p->level--);
19015 return _res;
19016}
19017
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019018// _loop0_54: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019019static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019020_loop0_54_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019021{
19022 D(p->level++);
19023 if (p->error_indicator) {
19024 D(p->level--);
19025 return NULL;
19026 }
19027 void *_res = NULL;
19028 int _mark = p->mark;
19029 int _start_mark = p->mark;
19030 void **_children = PyMem_Malloc(sizeof(void *));
19031 if (!_children) {
19032 p->error_indicator = 1;
19033 PyErr_NoMemory();
19034 D(p->level--);
19035 return NULL;
19036 }
19037 ssize_t _children_capacity = 1;
19038 ssize_t _n = 0;
19039 { // param_no_default
19040 if (p->error_indicator) {
19041 D(p->level--);
19042 return NULL;
19043 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019044 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 +010019045 arg_ty param_no_default_var;
19046 while (
19047 (param_no_default_var = param_no_default_rule(p)) // param_no_default
19048 )
19049 {
19050 _res = param_no_default_var;
19051 if (_n == _children_capacity) {
19052 _children_capacity *= 2;
19053 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19054 if (!_new_children) {
19055 p->error_indicator = 1;
19056 PyErr_NoMemory();
19057 D(p->level--);
19058 return NULL;
19059 }
19060 _children = _new_children;
19061 }
19062 _children[_n++] = _res;
19063 _mark = p->mark;
19064 }
19065 p->mark = _mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019066 D(fprintf(stderr, "%*c%s _loop0_54[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019067 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019068 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019069 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019070 if (!_seq) {
19071 PyMem_Free(_children);
19072 p->error_indicator = 1;
19073 PyErr_NoMemory();
19074 D(p->level--);
19075 return NULL;
19076 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019077 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019078 PyMem_Free(_children);
19079 _PyPegen_insert_memo(p, _start_mark, _loop0_54_type, _seq);
19080 D(p->level--);
19081 return _seq;
19082}
19083
19084// _loop0_55: param_with_default
19085static asdl_seq *
19086_loop0_55_rule(Parser *p)
19087{
19088 D(p->level++);
19089 if (p->error_indicator) {
19090 D(p->level--);
19091 return NULL;
19092 }
19093 void *_res = NULL;
19094 int _mark = p->mark;
19095 int _start_mark = p->mark;
19096 void **_children = PyMem_Malloc(sizeof(void *));
19097 if (!_children) {
19098 p->error_indicator = 1;
19099 PyErr_NoMemory();
19100 D(p->level--);
19101 return NULL;
19102 }
19103 ssize_t _children_capacity = 1;
19104 ssize_t _n = 0;
19105 { // param_with_default
19106 if (p->error_indicator) {
19107 D(p->level--);
19108 return NULL;
19109 }
19110 D(fprintf(stderr, "%*c> _loop0_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
19111 NameDefaultPair* param_with_default_var;
19112 while (
19113 (param_with_default_var = param_with_default_rule(p)) // param_with_default
19114 )
19115 {
19116 _res = param_with_default_var;
19117 if (_n == _children_capacity) {
19118 _children_capacity *= 2;
19119 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19120 if (!_new_children) {
19121 p->error_indicator = 1;
19122 PyErr_NoMemory();
19123 D(p->level--);
19124 return NULL;
19125 }
19126 _children = _new_children;
19127 }
19128 _children[_n++] = _res;
19129 _mark = p->mark;
19130 }
19131 p->mark = _mark;
19132 D(fprintf(stderr, "%*c%s _loop0_55[%d-%d]: %s failed!\n", p->level, ' ',
19133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
19134 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019135 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019136 if (!_seq) {
19137 PyMem_Free(_children);
19138 p->error_indicator = 1;
19139 PyErr_NoMemory();
19140 D(p->level--);
19141 return NULL;
19142 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019143 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019144 PyMem_Free(_children);
19145 _PyPegen_insert_memo(p, _start_mark, _loop0_55_type, _seq);
19146 D(p->level--);
19147 return _seq;
19148}
19149
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019150// _loop0_56: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019151static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019152_loop0_56_rule(Parser *p)
19153{
19154 D(p->level++);
19155 if (p->error_indicator) {
19156 D(p->level--);
19157 return NULL;
19158 }
19159 void *_res = NULL;
19160 int _mark = p->mark;
19161 int _start_mark = p->mark;
19162 void **_children = PyMem_Malloc(sizeof(void *));
19163 if (!_children) {
19164 p->error_indicator = 1;
19165 PyErr_NoMemory();
19166 D(p->level--);
19167 return NULL;
19168 }
19169 ssize_t _children_capacity = 1;
19170 ssize_t _n = 0;
19171 { // param_with_default
19172 if (p->error_indicator) {
19173 D(p->level--);
19174 return NULL;
19175 }
19176 D(fprintf(stderr, "%*c> _loop0_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
19177 NameDefaultPair* param_with_default_var;
19178 while (
19179 (param_with_default_var = param_with_default_rule(p)) // param_with_default
19180 )
19181 {
19182 _res = param_with_default_var;
19183 if (_n == _children_capacity) {
19184 _children_capacity *= 2;
19185 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19186 if (!_new_children) {
19187 p->error_indicator = 1;
19188 PyErr_NoMemory();
19189 D(p->level--);
19190 return NULL;
19191 }
19192 _children = _new_children;
19193 }
19194 _children[_n++] = _res;
19195 _mark = p->mark;
19196 }
19197 p->mark = _mark;
19198 D(fprintf(stderr, "%*c%s _loop0_56[%d-%d]: %s failed!\n", p->level, ' ',
19199 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
19200 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019201 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019202 if (!_seq) {
19203 PyMem_Free(_children);
19204 p->error_indicator = 1;
19205 PyErr_NoMemory();
19206 D(p->level--);
19207 return NULL;
19208 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019209 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019210 PyMem_Free(_children);
19211 _PyPegen_insert_memo(p, _start_mark, _loop0_56_type, _seq);
19212 D(p->level--);
19213 return _seq;
19214}
19215
19216// _loop1_57: param_no_default
19217static asdl_seq *
19218_loop1_57_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019219{
19220 D(p->level++);
19221 if (p->error_indicator) {
19222 D(p->level--);
19223 return NULL;
19224 }
19225 void *_res = NULL;
19226 int _mark = p->mark;
19227 int _start_mark = p->mark;
19228 void **_children = PyMem_Malloc(sizeof(void *));
19229 if (!_children) {
19230 p->error_indicator = 1;
19231 PyErr_NoMemory();
19232 D(p->level--);
19233 return NULL;
19234 }
19235 ssize_t _children_capacity = 1;
19236 ssize_t _n = 0;
19237 { // param_no_default
19238 if (p->error_indicator) {
19239 D(p->level--);
19240 return NULL;
19241 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019242 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 +010019243 arg_ty param_no_default_var;
19244 while (
19245 (param_no_default_var = param_no_default_rule(p)) // param_no_default
19246 )
19247 {
19248 _res = param_no_default_var;
19249 if (_n == _children_capacity) {
19250 _children_capacity *= 2;
19251 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19252 if (!_new_children) {
19253 p->error_indicator = 1;
19254 PyErr_NoMemory();
19255 D(p->level--);
19256 return NULL;
19257 }
19258 _children = _new_children;
19259 }
19260 _children[_n++] = _res;
19261 _mark = p->mark;
19262 }
19263 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019264 D(fprintf(stderr, "%*c%s _loop1_57[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019265 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
19266 }
19267 if (_n == 0 || p->error_indicator) {
19268 PyMem_Free(_children);
19269 D(p->level--);
19270 return NULL;
19271 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019272 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019273 if (!_seq) {
19274 PyMem_Free(_children);
19275 p->error_indicator = 1;
19276 PyErr_NoMemory();
19277 D(p->level--);
19278 return NULL;
19279 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019280 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019281 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019282 _PyPegen_insert_memo(p, _start_mark, _loop1_57_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019283 D(p->level--);
19284 return _seq;
19285}
19286
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019287// _loop0_58: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019288static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019289_loop0_58_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019290{
19291 D(p->level++);
19292 if (p->error_indicator) {
19293 D(p->level--);
19294 return NULL;
19295 }
19296 void *_res = NULL;
19297 int _mark = p->mark;
19298 int _start_mark = p->mark;
19299 void **_children = PyMem_Malloc(sizeof(void *));
19300 if (!_children) {
19301 p->error_indicator = 1;
19302 PyErr_NoMemory();
19303 D(p->level--);
19304 return NULL;
19305 }
19306 ssize_t _children_capacity = 1;
19307 ssize_t _n = 0;
19308 { // param_with_default
19309 if (p->error_indicator) {
19310 D(p->level--);
19311 return NULL;
19312 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019313 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 +010019314 NameDefaultPair* param_with_default_var;
19315 while (
19316 (param_with_default_var = param_with_default_rule(p)) // param_with_default
19317 )
19318 {
19319 _res = param_with_default_var;
19320 if (_n == _children_capacity) {
19321 _children_capacity *= 2;
19322 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19323 if (!_new_children) {
19324 p->error_indicator = 1;
19325 PyErr_NoMemory();
19326 D(p->level--);
19327 return NULL;
19328 }
19329 _children = _new_children;
19330 }
19331 _children[_n++] = _res;
19332 _mark = p->mark;
19333 }
19334 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019335 D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
19337 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019338 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019339 if (!_seq) {
19340 PyMem_Free(_children);
19341 p->error_indicator = 1;
19342 PyErr_NoMemory();
19343 D(p->level--);
19344 return NULL;
19345 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019346 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019347 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019348 _PyPegen_insert_memo(p, _start_mark, _loop0_58_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019349 D(p->level--);
19350 return _seq;
19351}
19352
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019353// _loop1_59: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019354static asdl_seq *
19355_loop1_59_rule(Parser *p)
19356{
19357 D(p->level++);
19358 if (p->error_indicator) {
19359 D(p->level--);
19360 return NULL;
19361 }
19362 void *_res = NULL;
19363 int _mark = p->mark;
19364 int _start_mark = p->mark;
19365 void **_children = PyMem_Malloc(sizeof(void *));
19366 if (!_children) {
19367 p->error_indicator = 1;
19368 PyErr_NoMemory();
19369 D(p->level--);
19370 return NULL;
19371 }
19372 ssize_t _children_capacity = 1;
19373 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019374 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019375 if (p->error_indicator) {
19376 D(p->level--);
19377 return NULL;
19378 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019379 D(fprintf(stderr, "%*c> _loop1_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
19380 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019381 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019382 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019383 )
19384 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019385 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019386 if (_n == _children_capacity) {
19387 _children_capacity *= 2;
19388 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19389 if (!_new_children) {
19390 p->error_indicator = 1;
19391 PyErr_NoMemory();
19392 D(p->level--);
19393 return NULL;
19394 }
19395 _children = _new_children;
19396 }
19397 _children[_n++] = _res;
19398 _mark = p->mark;
19399 }
19400 p->mark = _mark;
19401 D(fprintf(stderr, "%*c%s _loop1_59[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019402 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019403 }
19404 if (_n == 0 || p->error_indicator) {
19405 PyMem_Free(_children);
19406 D(p->level--);
19407 return NULL;
19408 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019409 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019410 if (!_seq) {
19411 PyMem_Free(_children);
19412 p->error_indicator = 1;
19413 PyErr_NoMemory();
19414 D(p->level--);
19415 return NULL;
19416 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019417 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019418 PyMem_Free(_children);
19419 _PyPegen_insert_memo(p, _start_mark, _loop1_59_type, _seq);
19420 D(p->level--);
19421 return _seq;
19422}
19423
19424// _loop1_60: param_no_default
19425static asdl_seq *
19426_loop1_60_rule(Parser *p)
19427{
19428 D(p->level++);
19429 if (p->error_indicator) {
19430 D(p->level--);
19431 return NULL;
19432 }
19433 void *_res = NULL;
19434 int _mark = p->mark;
19435 int _start_mark = p->mark;
19436 void **_children = PyMem_Malloc(sizeof(void *));
19437 if (!_children) {
19438 p->error_indicator = 1;
19439 PyErr_NoMemory();
19440 D(p->level--);
19441 return NULL;
19442 }
19443 ssize_t _children_capacity = 1;
19444 ssize_t _n = 0;
19445 { // param_no_default
19446 if (p->error_indicator) {
19447 D(p->level--);
19448 return NULL;
19449 }
19450 D(fprintf(stderr, "%*c> _loop1_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
19451 arg_ty param_no_default_var;
19452 while (
19453 (param_no_default_var = param_no_default_rule(p)) // param_no_default
19454 )
19455 {
19456 _res = param_no_default_var;
19457 if (_n == _children_capacity) {
19458 _children_capacity *= 2;
19459 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19460 if (!_new_children) {
19461 p->error_indicator = 1;
19462 PyErr_NoMemory();
19463 D(p->level--);
19464 return NULL;
19465 }
19466 _children = _new_children;
19467 }
19468 _children[_n++] = _res;
19469 _mark = p->mark;
19470 }
19471 p->mark = _mark;
19472 D(fprintf(stderr, "%*c%s _loop1_60[%d-%d]: %s failed!\n", p->level, ' ',
19473 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
19474 }
19475 if (_n == 0 || p->error_indicator) {
19476 PyMem_Free(_children);
19477 D(p->level--);
19478 return NULL;
19479 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019480 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019481 if (!_seq) {
19482 PyMem_Free(_children);
19483 p->error_indicator = 1;
19484 PyErr_NoMemory();
19485 D(p->level--);
19486 return NULL;
19487 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019488 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019489 PyMem_Free(_children);
19490 _PyPegen_insert_memo(p, _start_mark, _loop1_60_type, _seq);
19491 D(p->level--);
19492 return _seq;
19493}
19494
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019495// _loop1_61: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019496static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019497_loop1_61_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019498{
19499 D(p->level++);
19500 if (p->error_indicator) {
19501 D(p->level--);
19502 return NULL;
19503 }
19504 void *_res = NULL;
19505 int _mark = p->mark;
19506 int _start_mark = p->mark;
19507 void **_children = PyMem_Malloc(sizeof(void *));
19508 if (!_children) {
19509 p->error_indicator = 1;
19510 PyErr_NoMemory();
19511 D(p->level--);
19512 return NULL;
19513 }
19514 ssize_t _children_capacity = 1;
19515 ssize_t _n = 0;
19516 { // param_no_default
19517 if (p->error_indicator) {
19518 D(p->level--);
19519 return NULL;
19520 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019521 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 +010019522 arg_ty param_no_default_var;
19523 while (
19524 (param_no_default_var = param_no_default_rule(p)) // param_no_default
19525 )
19526 {
19527 _res = param_no_default_var;
19528 if (_n == _children_capacity) {
19529 _children_capacity *= 2;
19530 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19531 if (!_new_children) {
19532 p->error_indicator = 1;
19533 PyErr_NoMemory();
19534 D(p->level--);
19535 return NULL;
19536 }
19537 _children = _new_children;
19538 }
19539 _children[_n++] = _res;
19540 _mark = p->mark;
19541 }
19542 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019543 D(fprintf(stderr, "%*c%s _loop1_61[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
19545 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019546 if (_n == 0 || p->error_indicator) {
19547 PyMem_Free(_children);
19548 D(p->level--);
19549 return NULL;
19550 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019551 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019552 if (!_seq) {
19553 PyMem_Free(_children);
19554 p->error_indicator = 1;
19555 PyErr_NoMemory();
19556 D(p->level--);
19557 return NULL;
19558 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019559 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019560 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019561 _PyPegen_insert_memo(p, _start_mark, _loop1_61_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019562 D(p->level--);
19563 return _seq;
19564}
19565
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019566// _loop0_62: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019567static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019568_loop0_62_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019569{
19570 D(p->level++);
19571 if (p->error_indicator) {
19572 D(p->level--);
19573 return NULL;
19574 }
19575 void *_res = NULL;
19576 int _mark = p->mark;
19577 int _start_mark = p->mark;
19578 void **_children = PyMem_Malloc(sizeof(void *));
19579 if (!_children) {
19580 p->error_indicator = 1;
19581 PyErr_NoMemory();
19582 D(p->level--);
19583 return NULL;
19584 }
19585 ssize_t _children_capacity = 1;
19586 ssize_t _n = 0;
19587 { // param_no_default
19588 if (p->error_indicator) {
19589 D(p->level--);
19590 return NULL;
19591 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019592 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 +010019593 arg_ty param_no_default_var;
19594 while (
19595 (param_no_default_var = param_no_default_rule(p)) // param_no_default
19596 )
19597 {
19598 _res = param_no_default_var;
19599 if (_n == _children_capacity) {
19600 _children_capacity *= 2;
19601 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19602 if (!_new_children) {
19603 p->error_indicator = 1;
19604 PyErr_NoMemory();
19605 D(p->level--);
19606 return NULL;
19607 }
19608 _children = _new_children;
19609 }
19610 _children[_n++] = _res;
19611 _mark = p->mark;
19612 }
19613 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019614 D(fprintf(stderr, "%*c%s _loop0_62[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019615 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
19616 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019617 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019618 if (!_seq) {
19619 PyMem_Free(_children);
19620 p->error_indicator = 1;
19621 PyErr_NoMemory();
19622 D(p->level--);
19623 return NULL;
19624 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019625 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019626 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019627 _PyPegen_insert_memo(p, _start_mark, _loop0_62_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019628 D(p->level--);
19629 return _seq;
19630}
19631
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019632// _loop1_63: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019633static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019634_loop1_63_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019635{
19636 D(p->level++);
19637 if (p->error_indicator) {
19638 D(p->level--);
19639 return NULL;
19640 }
19641 void *_res = NULL;
19642 int _mark = p->mark;
19643 int _start_mark = p->mark;
19644 void **_children = PyMem_Malloc(sizeof(void *));
19645 if (!_children) {
19646 p->error_indicator = 1;
19647 PyErr_NoMemory();
19648 D(p->level--);
19649 return NULL;
19650 }
19651 ssize_t _children_capacity = 1;
19652 ssize_t _n = 0;
19653 { // param_with_default
19654 if (p->error_indicator) {
19655 D(p->level--);
19656 return NULL;
19657 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019658 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 +010019659 NameDefaultPair* param_with_default_var;
19660 while (
19661 (param_with_default_var = param_with_default_rule(p)) // param_with_default
19662 )
19663 {
19664 _res = param_with_default_var;
19665 if (_n == _children_capacity) {
19666 _children_capacity *= 2;
19667 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19668 if (!_new_children) {
19669 p->error_indicator = 1;
19670 PyErr_NoMemory();
19671 D(p->level--);
19672 return NULL;
19673 }
19674 _children = _new_children;
19675 }
19676 _children[_n++] = _res;
19677 _mark = p->mark;
19678 }
19679 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019680 D(fprintf(stderr, "%*c%s _loop1_63[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019681 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
19682 }
19683 if (_n == 0 || p->error_indicator) {
19684 PyMem_Free(_children);
19685 D(p->level--);
19686 return NULL;
19687 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019688 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019689 if (!_seq) {
19690 PyMem_Free(_children);
19691 p->error_indicator = 1;
19692 PyErr_NoMemory();
19693 D(p->level--);
19694 return NULL;
19695 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019696 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019697 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019698 _PyPegen_insert_memo(p, _start_mark, _loop1_63_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019699 D(p->level--);
19700 return _seq;
19701}
19702
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019703// _loop0_64: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019704static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019705_loop0_64_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019706{
19707 D(p->level++);
19708 if (p->error_indicator) {
19709 D(p->level--);
19710 return NULL;
19711 }
19712 void *_res = NULL;
19713 int _mark = p->mark;
19714 int _start_mark = p->mark;
19715 void **_children = PyMem_Malloc(sizeof(void *));
19716 if (!_children) {
19717 p->error_indicator = 1;
19718 PyErr_NoMemory();
19719 D(p->level--);
19720 return NULL;
19721 }
19722 ssize_t _children_capacity = 1;
19723 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019724 { // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019725 if (p->error_indicator) {
19726 D(p->level--);
19727 return NULL;
19728 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019729 D(fprintf(stderr, "%*c> _loop0_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
19730 arg_ty param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019731 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019732 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019733 )
19734 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019735 _res = param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019736 if (_n == _children_capacity) {
19737 _children_capacity *= 2;
19738 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19739 if (!_new_children) {
19740 p->error_indicator = 1;
19741 PyErr_NoMemory();
19742 D(p->level--);
19743 return NULL;
19744 }
19745 _children = _new_children;
19746 }
19747 _children[_n++] = _res;
19748 _mark = p->mark;
19749 }
19750 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019751 D(fprintf(stderr, "%*c%s _loop0_64[%d-%d]: %s failed!\n", p->level, ' ',
19752 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019753 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019754 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019755 if (!_seq) {
19756 PyMem_Free(_children);
19757 p->error_indicator = 1;
19758 PyErr_NoMemory();
19759 D(p->level--);
19760 return NULL;
19761 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019762 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019763 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019764 _PyPegen_insert_memo(p, _start_mark, _loop0_64_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019765 D(p->level--);
19766 return _seq;
19767}
19768
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019769// _loop1_65: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019770static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019771_loop1_65_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019772{
19773 D(p->level++);
19774 if (p->error_indicator) {
19775 D(p->level--);
19776 return NULL;
19777 }
19778 void *_res = NULL;
19779 int _mark = p->mark;
19780 int _start_mark = p->mark;
19781 void **_children = PyMem_Malloc(sizeof(void *));
19782 if (!_children) {
19783 p->error_indicator = 1;
19784 PyErr_NoMemory();
19785 D(p->level--);
19786 return NULL;
19787 }
19788 ssize_t _children_capacity = 1;
19789 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019790 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019791 if (p->error_indicator) {
19792 D(p->level--);
19793 return NULL;
19794 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019795 D(fprintf(stderr, "%*c> _loop1_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
19796 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019797 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019798 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019799 )
19800 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019801 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019802 if (_n == _children_capacity) {
19803 _children_capacity *= 2;
19804 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19805 if (!_new_children) {
19806 p->error_indicator = 1;
19807 PyErr_NoMemory();
19808 D(p->level--);
19809 return NULL;
19810 }
19811 _children = _new_children;
19812 }
19813 _children[_n++] = _res;
19814 _mark = p->mark;
19815 }
19816 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019817 D(fprintf(stderr, "%*c%s _loop1_65[%d-%d]: %s failed!\n", p->level, ' ',
19818 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019819 }
19820 if (_n == 0 || p->error_indicator) {
19821 PyMem_Free(_children);
19822 D(p->level--);
19823 return NULL;
19824 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019825 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019826 if (!_seq) {
19827 PyMem_Free(_children);
19828 p->error_indicator = 1;
19829 PyErr_NoMemory();
19830 D(p->level--);
19831 return NULL;
19832 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019833 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019834 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019835 _PyPegen_insert_memo(p, _start_mark, _loop1_65_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019836 D(p->level--);
19837 return _seq;
19838}
19839
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019840// _loop0_66: param_maybe_default
19841static asdl_seq *
19842_loop0_66_rule(Parser *p)
19843{
19844 D(p->level++);
19845 if (p->error_indicator) {
19846 D(p->level--);
19847 return NULL;
19848 }
19849 void *_res = NULL;
19850 int _mark = p->mark;
19851 int _start_mark = p->mark;
19852 void **_children = PyMem_Malloc(sizeof(void *));
19853 if (!_children) {
19854 p->error_indicator = 1;
19855 PyErr_NoMemory();
19856 D(p->level--);
19857 return NULL;
19858 }
19859 ssize_t _children_capacity = 1;
19860 ssize_t _n = 0;
19861 { // param_maybe_default
19862 if (p->error_indicator) {
19863 D(p->level--);
19864 return NULL;
19865 }
19866 D(fprintf(stderr, "%*c> _loop0_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
19867 NameDefaultPair* param_maybe_default_var;
19868 while (
19869 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
19870 )
19871 {
19872 _res = param_maybe_default_var;
19873 if (_n == _children_capacity) {
19874 _children_capacity *= 2;
19875 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19876 if (!_new_children) {
19877 p->error_indicator = 1;
19878 PyErr_NoMemory();
19879 D(p->level--);
19880 return NULL;
19881 }
19882 _children = _new_children;
19883 }
19884 _children[_n++] = _res;
19885 _mark = p->mark;
19886 }
19887 p->mark = _mark;
19888 D(fprintf(stderr, "%*c%s _loop0_66[%d-%d]: %s failed!\n", p->level, ' ',
19889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
19890 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019891 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019892 if (!_seq) {
19893 PyMem_Free(_children);
19894 p->error_indicator = 1;
19895 PyErr_NoMemory();
19896 D(p->level--);
19897 return NULL;
19898 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019899 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019900 PyMem_Free(_children);
19901 _PyPegen_insert_memo(p, _start_mark, _loop0_66_type, _seq);
19902 D(p->level--);
19903 return _seq;
19904}
19905
19906// _loop1_67: param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019907static asdl_seq *
19908_loop1_67_rule(Parser *p)
19909{
19910 D(p->level++);
19911 if (p->error_indicator) {
19912 D(p->level--);
19913 return NULL;
19914 }
19915 void *_res = NULL;
19916 int _mark = p->mark;
19917 int _start_mark = p->mark;
19918 void **_children = PyMem_Malloc(sizeof(void *));
19919 if (!_children) {
19920 p->error_indicator = 1;
19921 PyErr_NoMemory();
19922 D(p->level--);
19923 return NULL;
19924 }
19925 ssize_t _children_capacity = 1;
19926 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019927 { // param_maybe_default
19928 if (p->error_indicator) {
19929 D(p->level--);
19930 return NULL;
19931 }
19932 D(fprintf(stderr, "%*c> _loop1_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
19933 NameDefaultPair* param_maybe_default_var;
19934 while (
19935 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
19936 )
19937 {
19938 _res = param_maybe_default_var;
19939 if (_n == _children_capacity) {
19940 _children_capacity *= 2;
19941 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19942 if (!_new_children) {
19943 p->error_indicator = 1;
19944 PyErr_NoMemory();
19945 D(p->level--);
19946 return NULL;
19947 }
19948 _children = _new_children;
19949 }
19950 _children[_n++] = _res;
19951 _mark = p->mark;
19952 }
19953 p->mark = _mark;
19954 D(fprintf(stderr, "%*c%s _loop1_67[%d-%d]: %s failed!\n", p->level, ' ',
19955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
19956 }
19957 if (_n == 0 || p->error_indicator) {
19958 PyMem_Free(_children);
19959 D(p->level--);
19960 return NULL;
19961 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019962 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019963 if (!_seq) {
19964 PyMem_Free(_children);
19965 p->error_indicator = 1;
19966 PyErr_NoMemory();
19967 D(p->level--);
19968 return NULL;
19969 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019970 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019971 PyMem_Free(_children);
19972 _PyPegen_insert_memo(p, _start_mark, _loop1_67_type, _seq);
19973 D(p->level--);
19974 return _seq;
19975}
19976
19977// _loop1_68: ('@' named_expression NEWLINE)
19978static asdl_seq *
19979_loop1_68_rule(Parser *p)
19980{
19981 D(p->level++);
19982 if (p->error_indicator) {
19983 D(p->level--);
19984 return NULL;
19985 }
19986 void *_res = NULL;
19987 int _mark = p->mark;
19988 int _start_mark = p->mark;
19989 void **_children = PyMem_Malloc(sizeof(void *));
19990 if (!_children) {
19991 p->error_indicator = 1;
19992 PyErr_NoMemory();
19993 D(p->level--);
19994 return NULL;
19995 }
19996 ssize_t _children_capacity = 1;
19997 ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019998 { // ('@' named_expression NEWLINE)
19999 if (p->error_indicator) {
20000 D(p->level--);
20001 return NULL;
20002 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020003 D(fprintf(stderr, "%*c> _loop1_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000020004 void *_tmp_147_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020005 while (
Pablo Galindo58fb1562021-02-02 19:54:22 +000020006 (_tmp_147_var = _tmp_147_rule(p)) // '@' named_expression NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020007 )
20008 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000020009 _res = _tmp_147_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020010 if (_n == _children_capacity) {
20011 _children_capacity *= 2;
20012 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20013 if (!_new_children) {
20014 p->error_indicator = 1;
20015 PyErr_NoMemory();
20016 D(p->level--);
20017 return NULL;
20018 }
20019 _children = _new_children;
20020 }
20021 _children[_n++] = _res;
20022 _mark = p->mark;
20023 }
20024 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020025 D(fprintf(stderr, "%*c%s _loop1_68[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020026 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
20027 }
20028 if (_n == 0 || p->error_indicator) {
20029 PyMem_Free(_children);
20030 D(p->level--);
20031 return NULL;
20032 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020033 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020034 if (!_seq) {
20035 PyMem_Free(_children);
20036 p->error_indicator = 1;
20037 PyErr_NoMemory();
20038 D(p->level--);
20039 return NULL;
20040 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020041 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020042 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020043 _PyPegen_insert_memo(p, _start_mark, _loop1_68_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020044 D(p->level--);
20045 return _seq;
20046}
20047
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020048// _tmp_69: '(' arguments? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020049static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020050_tmp_69_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020051{
20052 D(p->level++);
20053 if (p->error_indicator) {
20054 D(p->level--);
20055 return NULL;
20056 }
20057 void * _res = NULL;
20058 int _mark = p->mark;
20059 { // '(' arguments? ')'
20060 if (p->error_indicator) {
20061 D(p->level--);
20062 return NULL;
20063 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020064 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020065 Token * _literal;
20066 Token * _literal_1;
20067 void *z;
20068 if (
20069 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20070 &&
20071 (z = arguments_rule(p), 1) // arguments?
20072 &&
20073 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
20074 )
20075 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020076 D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020077 _res = z;
20078 if (_res == NULL && PyErr_Occurred()) {
20079 p->error_indicator = 1;
20080 D(p->level--);
20081 return NULL;
20082 }
20083 goto done;
20084 }
20085 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020086 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020087 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
20088 }
20089 _res = NULL;
20090 done:
20091 D(p->level--);
20092 return _res;
20093}
20094
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020095// _loop1_70: (',' star_expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020096static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020097_loop1_70_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020098{
20099 D(p->level++);
20100 if (p->error_indicator) {
20101 D(p->level--);
20102 return NULL;
20103 }
20104 void *_res = NULL;
20105 int _mark = p->mark;
20106 int _start_mark = p->mark;
20107 void **_children = PyMem_Malloc(sizeof(void *));
20108 if (!_children) {
20109 p->error_indicator = 1;
20110 PyErr_NoMemory();
20111 D(p->level--);
20112 return NULL;
20113 }
20114 ssize_t _children_capacity = 1;
20115 ssize_t _n = 0;
20116 { // (',' star_expression)
20117 if (p->error_indicator) {
20118 D(p->level--);
20119 return NULL;
20120 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020121 D(fprintf(stderr, "%*c> _loop1_70[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000020122 void *_tmp_148_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020123 while (
Pablo Galindo58fb1562021-02-02 19:54:22 +000020124 (_tmp_148_var = _tmp_148_rule(p)) // ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020125 )
20126 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000020127 _res = _tmp_148_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020128 if (_n == _children_capacity) {
20129 _children_capacity *= 2;
20130 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20131 if (!_new_children) {
20132 p->error_indicator = 1;
20133 PyErr_NoMemory();
20134 D(p->level--);
20135 return NULL;
20136 }
20137 _children = _new_children;
20138 }
20139 _children[_n++] = _res;
20140 _mark = p->mark;
20141 }
20142 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020143 D(fprintf(stderr, "%*c%s _loop1_70[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020144 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
20145 }
20146 if (_n == 0 || p->error_indicator) {
20147 PyMem_Free(_children);
20148 D(p->level--);
20149 return NULL;
20150 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020151 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020152 if (!_seq) {
20153 PyMem_Free(_children);
20154 p->error_indicator = 1;
20155 PyErr_NoMemory();
20156 D(p->level--);
20157 return NULL;
20158 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020159 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020160 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020161 _PyPegen_insert_memo(p, _start_mark, _loop1_70_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020162 D(p->level--);
20163 return _seq;
20164}
20165
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020166// _loop0_72: ',' star_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020167static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020168_loop0_72_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020169{
20170 D(p->level++);
20171 if (p->error_indicator) {
20172 D(p->level--);
20173 return NULL;
20174 }
20175 void *_res = NULL;
20176 int _mark = p->mark;
20177 int _start_mark = p->mark;
20178 void **_children = PyMem_Malloc(sizeof(void *));
20179 if (!_children) {
20180 p->error_indicator = 1;
20181 PyErr_NoMemory();
20182 D(p->level--);
20183 return NULL;
20184 }
20185 ssize_t _children_capacity = 1;
20186 ssize_t _n = 0;
20187 { // ',' star_named_expression
20188 if (p->error_indicator) {
20189 D(p->level--);
20190 return NULL;
20191 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020192 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 +010020193 Token * _literal;
20194 expr_ty elem;
20195 while (
20196 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20197 &&
20198 (elem = star_named_expression_rule(p)) // star_named_expression
20199 )
20200 {
20201 _res = elem;
20202 if (_res == NULL && PyErr_Occurred()) {
20203 p->error_indicator = 1;
20204 PyMem_Free(_children);
20205 D(p->level--);
20206 return NULL;
20207 }
20208 if (_n == _children_capacity) {
20209 _children_capacity *= 2;
20210 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20211 if (!_new_children) {
20212 p->error_indicator = 1;
20213 PyErr_NoMemory();
20214 D(p->level--);
20215 return NULL;
20216 }
20217 _children = _new_children;
20218 }
20219 _children[_n++] = _res;
20220 _mark = p->mark;
20221 }
20222 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020223 D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020224 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
20225 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020226 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020227 if (!_seq) {
20228 PyMem_Free(_children);
20229 p->error_indicator = 1;
20230 PyErr_NoMemory();
20231 D(p->level--);
20232 return NULL;
20233 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020234 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020235 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020236 _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020237 D(p->level--);
20238 return _seq;
20239}
20240
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020241// _gather_71: star_named_expression _loop0_72
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020242static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020243_gather_71_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020244{
20245 D(p->level++);
20246 if (p->error_indicator) {
20247 D(p->level--);
20248 return NULL;
20249 }
20250 asdl_seq * _res = NULL;
20251 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020252 { // star_named_expression _loop0_72
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020253 if (p->error_indicator) {
20254 D(p->level--);
20255 return NULL;
20256 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020257 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 +010020258 expr_ty elem;
20259 asdl_seq * seq;
20260 if (
20261 (elem = star_named_expression_rule(p)) // star_named_expression
20262 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020263 (seq = _loop0_72_rule(p)) // _loop0_72
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020264 )
20265 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020266 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 +010020267 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20268 goto done;
20269 }
20270 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020271 D(fprintf(stderr, "%*c%s _gather_71[%d-%d]: %s failed!\n", p->level, ' ',
20272 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_72"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020273 }
20274 _res = NULL;
20275 done:
20276 D(p->level--);
20277 return _res;
20278}
20279
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020280// _loop1_73: (',' expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020281static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020282_loop1_73_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020283{
20284 D(p->level++);
20285 if (p->error_indicator) {
20286 D(p->level--);
20287 return NULL;
20288 }
20289 void *_res = NULL;
20290 int _mark = p->mark;
20291 int _start_mark = p->mark;
20292 void **_children = PyMem_Malloc(sizeof(void *));
20293 if (!_children) {
20294 p->error_indicator = 1;
20295 PyErr_NoMemory();
20296 D(p->level--);
20297 return NULL;
20298 }
20299 ssize_t _children_capacity = 1;
20300 ssize_t _n = 0;
20301 { // (',' expression)
20302 if (p->error_indicator) {
20303 D(p->level--);
20304 return NULL;
20305 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020306 D(fprintf(stderr, "%*c> _loop1_73[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000020307 void *_tmp_149_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020308 while (
Pablo Galindo58fb1562021-02-02 19:54:22 +000020309 (_tmp_149_var = _tmp_149_rule(p)) // ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020310 )
20311 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000020312 _res = _tmp_149_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020313 if (_n == _children_capacity) {
20314 _children_capacity *= 2;
20315 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20316 if (!_new_children) {
20317 p->error_indicator = 1;
20318 PyErr_NoMemory();
20319 D(p->level--);
20320 return NULL;
20321 }
20322 _children = _new_children;
20323 }
20324 _children[_n++] = _res;
20325 _mark = p->mark;
20326 }
20327 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020328 D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020329 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
20330 }
20331 if (_n == 0 || p->error_indicator) {
20332 PyMem_Free(_children);
20333 D(p->level--);
20334 return NULL;
20335 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020336 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020337 if (!_seq) {
20338 PyMem_Free(_children);
20339 p->error_indicator = 1;
20340 PyErr_NoMemory();
20341 D(p->level--);
20342 return NULL;
20343 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020344 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020345 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020346 _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020347 D(p->level--);
20348 return _seq;
20349}
20350
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020351// _loop0_74: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020352static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020353_loop0_74_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020354{
20355 D(p->level++);
20356 if (p->error_indicator) {
20357 D(p->level--);
20358 return NULL;
20359 }
20360 void *_res = NULL;
20361 int _mark = p->mark;
20362 int _start_mark = p->mark;
20363 void **_children = PyMem_Malloc(sizeof(void *));
20364 if (!_children) {
20365 p->error_indicator = 1;
20366 PyErr_NoMemory();
20367 D(p->level--);
20368 return NULL;
20369 }
20370 ssize_t _children_capacity = 1;
20371 ssize_t _n = 0;
20372 { // lambda_param_no_default
20373 if (p->error_indicator) {
20374 D(p->level--);
20375 return NULL;
20376 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020377 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 +010020378 arg_ty lambda_param_no_default_var;
20379 while (
20380 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
20381 )
20382 {
20383 _res = lambda_param_no_default_var;
20384 if (_n == _children_capacity) {
20385 _children_capacity *= 2;
20386 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20387 if (!_new_children) {
20388 p->error_indicator = 1;
20389 PyErr_NoMemory();
20390 D(p->level--);
20391 return NULL;
20392 }
20393 _children = _new_children;
20394 }
20395 _children[_n++] = _res;
20396 _mark = p->mark;
20397 }
20398 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020399 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020400 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020401 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020402 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020403 if (!_seq) {
20404 PyMem_Free(_children);
20405 p->error_indicator = 1;
20406 PyErr_NoMemory();
20407 D(p->level--);
20408 return NULL;
20409 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020410 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020411 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020412 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020413 D(p->level--);
20414 return _seq;
20415}
20416
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020417// _loop0_75: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020418static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020419_loop0_75_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020420{
20421 D(p->level++);
20422 if (p->error_indicator) {
20423 D(p->level--);
20424 return NULL;
20425 }
20426 void *_res = NULL;
20427 int _mark = p->mark;
20428 int _start_mark = p->mark;
20429 void **_children = PyMem_Malloc(sizeof(void *));
20430 if (!_children) {
20431 p->error_indicator = 1;
20432 PyErr_NoMemory();
20433 D(p->level--);
20434 return NULL;
20435 }
20436 ssize_t _children_capacity = 1;
20437 ssize_t _n = 0;
20438 { // lambda_param_with_default
20439 if (p->error_indicator) {
20440 D(p->level--);
20441 return NULL;
20442 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020443 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 +010020444 NameDefaultPair* lambda_param_with_default_var;
20445 while (
20446 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20447 )
20448 {
20449 _res = lambda_param_with_default_var;
20450 if (_n == _children_capacity) {
20451 _children_capacity *= 2;
20452 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20453 if (!_new_children) {
20454 p->error_indicator = 1;
20455 PyErr_NoMemory();
20456 D(p->level--);
20457 return NULL;
20458 }
20459 _children = _new_children;
20460 }
20461 _children[_n++] = _res;
20462 _mark = p->mark;
20463 }
20464 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020465 D(fprintf(stderr, "%*c%s _loop0_75[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020466 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
20467 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020468 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020469 if (!_seq) {
20470 PyMem_Free(_children);
20471 p->error_indicator = 1;
20472 PyErr_NoMemory();
20473 D(p->level--);
20474 return NULL;
20475 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020476 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020477 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020478 _PyPegen_insert_memo(p, _start_mark, _loop0_75_type, _seq);
20479 D(p->level--);
20480 return _seq;
20481}
20482
20483// _loop0_76: lambda_param_with_default
20484static asdl_seq *
20485_loop0_76_rule(Parser *p)
20486{
20487 D(p->level++);
20488 if (p->error_indicator) {
20489 D(p->level--);
20490 return NULL;
20491 }
20492 void *_res = NULL;
20493 int _mark = p->mark;
20494 int _start_mark = p->mark;
20495 void **_children = PyMem_Malloc(sizeof(void *));
20496 if (!_children) {
20497 p->error_indicator = 1;
20498 PyErr_NoMemory();
20499 D(p->level--);
20500 return NULL;
20501 }
20502 ssize_t _children_capacity = 1;
20503 ssize_t _n = 0;
20504 { // lambda_param_with_default
20505 if (p->error_indicator) {
20506 D(p->level--);
20507 return NULL;
20508 }
20509 D(fprintf(stderr, "%*c> _loop0_76[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20510 NameDefaultPair* lambda_param_with_default_var;
20511 while (
20512 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20513 )
20514 {
20515 _res = lambda_param_with_default_var;
20516 if (_n == _children_capacity) {
20517 _children_capacity *= 2;
20518 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20519 if (!_new_children) {
20520 p->error_indicator = 1;
20521 PyErr_NoMemory();
20522 D(p->level--);
20523 return NULL;
20524 }
20525 _children = _new_children;
20526 }
20527 _children[_n++] = _res;
20528 _mark = p->mark;
20529 }
20530 p->mark = _mark;
20531 D(fprintf(stderr, "%*c%s _loop0_76[%d-%d]: %s failed!\n", p->level, ' ',
20532 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
20533 }
20534 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
20535 if (!_seq) {
20536 PyMem_Free(_children);
20537 p->error_indicator = 1;
20538 PyErr_NoMemory();
20539 D(p->level--);
20540 return NULL;
20541 }
20542 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
20543 PyMem_Free(_children);
20544 _PyPegen_insert_memo(p, _start_mark, _loop0_76_type, _seq);
20545 D(p->level--);
20546 return _seq;
20547}
20548
20549// _loop1_77: lambda_param_no_default
20550static asdl_seq *
20551_loop1_77_rule(Parser *p)
20552{
20553 D(p->level++);
20554 if (p->error_indicator) {
20555 D(p->level--);
20556 return NULL;
20557 }
20558 void *_res = NULL;
20559 int _mark = p->mark;
20560 int _start_mark = p->mark;
20561 void **_children = PyMem_Malloc(sizeof(void *));
20562 if (!_children) {
20563 p->error_indicator = 1;
20564 PyErr_NoMemory();
20565 D(p->level--);
20566 return NULL;
20567 }
20568 ssize_t _children_capacity = 1;
20569 ssize_t _n = 0;
20570 { // lambda_param_no_default
20571 if (p->error_indicator) {
20572 D(p->level--);
20573 return NULL;
20574 }
20575 D(fprintf(stderr, "%*c> _loop1_77[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
20576 arg_ty lambda_param_no_default_var;
20577 while (
20578 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
20579 )
20580 {
20581 _res = lambda_param_no_default_var;
20582 if (_n == _children_capacity) {
20583 _children_capacity *= 2;
20584 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20585 if (!_new_children) {
20586 p->error_indicator = 1;
20587 PyErr_NoMemory();
20588 D(p->level--);
20589 return NULL;
20590 }
20591 _children = _new_children;
20592 }
20593 _children[_n++] = _res;
20594 _mark = p->mark;
20595 }
20596 p->mark = _mark;
20597 D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
20598 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
20599 }
20600 if (_n == 0 || p->error_indicator) {
20601 PyMem_Free(_children);
20602 D(p->level--);
20603 return NULL;
20604 }
20605 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
20606 if (!_seq) {
20607 PyMem_Free(_children);
20608 p->error_indicator = 1;
20609 PyErr_NoMemory();
20610 D(p->level--);
20611 return NULL;
20612 }
20613 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
20614 PyMem_Free(_children);
20615 _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020616 D(p->level--);
20617 return _seq;
20618}
20619
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020620// _loop0_78: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020621static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020622_loop0_78_rule(Parser *p)
20623{
20624 D(p->level++);
20625 if (p->error_indicator) {
20626 D(p->level--);
20627 return NULL;
20628 }
20629 void *_res = NULL;
20630 int _mark = p->mark;
20631 int _start_mark = p->mark;
20632 void **_children = PyMem_Malloc(sizeof(void *));
20633 if (!_children) {
20634 p->error_indicator = 1;
20635 PyErr_NoMemory();
20636 D(p->level--);
20637 return NULL;
20638 }
20639 ssize_t _children_capacity = 1;
20640 ssize_t _n = 0;
20641 { // lambda_param_with_default
20642 if (p->error_indicator) {
20643 D(p->level--);
20644 return NULL;
20645 }
20646 D(fprintf(stderr, "%*c> _loop0_78[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20647 NameDefaultPair* lambda_param_with_default_var;
20648 while (
20649 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20650 )
20651 {
20652 _res = lambda_param_with_default_var;
20653 if (_n == _children_capacity) {
20654 _children_capacity *= 2;
20655 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20656 if (!_new_children) {
20657 p->error_indicator = 1;
20658 PyErr_NoMemory();
20659 D(p->level--);
20660 return NULL;
20661 }
20662 _children = _new_children;
20663 }
20664 _children[_n++] = _res;
20665 _mark = p->mark;
20666 }
20667 p->mark = _mark;
20668 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
20669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
20670 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020671 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020672 if (!_seq) {
20673 PyMem_Free(_children);
20674 p->error_indicator = 1;
20675 PyErr_NoMemory();
20676 D(p->level--);
20677 return NULL;
20678 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020679 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020680 PyMem_Free(_children);
20681 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
20682 D(p->level--);
20683 return _seq;
20684}
20685
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020686// _loop1_79: lambda_param_with_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020687static asdl_seq *
20688_loop1_79_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020689{
20690 D(p->level++);
20691 if (p->error_indicator) {
20692 D(p->level--);
20693 return NULL;
20694 }
20695 void *_res = NULL;
20696 int _mark = p->mark;
20697 int _start_mark = p->mark;
20698 void **_children = PyMem_Malloc(sizeof(void *));
20699 if (!_children) {
20700 p->error_indicator = 1;
20701 PyErr_NoMemory();
20702 D(p->level--);
20703 return NULL;
20704 }
20705 ssize_t _children_capacity = 1;
20706 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020707 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020708 if (p->error_indicator) {
20709 D(p->level--);
20710 return NULL;
20711 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020712 D(fprintf(stderr, "%*c> _loop1_79[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20713 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020714 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020715 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020716 )
20717 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020718 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020719 if (_n == _children_capacity) {
20720 _children_capacity *= 2;
20721 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20722 if (!_new_children) {
20723 p->error_indicator = 1;
20724 PyErr_NoMemory();
20725 D(p->level--);
20726 return NULL;
20727 }
20728 _children = _new_children;
20729 }
20730 _children[_n++] = _res;
20731 _mark = p->mark;
20732 }
20733 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020734 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020735 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020736 }
20737 if (_n == 0 || p->error_indicator) {
20738 PyMem_Free(_children);
20739 D(p->level--);
20740 return NULL;
20741 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020742 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020743 if (!_seq) {
20744 PyMem_Free(_children);
20745 p->error_indicator = 1;
20746 PyErr_NoMemory();
20747 D(p->level--);
20748 return NULL;
20749 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020750 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020751 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020752 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020753 D(p->level--);
20754 return _seq;
20755}
20756
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020757// _loop1_80: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020758static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020759_loop1_80_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020760{
20761 D(p->level++);
20762 if (p->error_indicator) {
20763 D(p->level--);
20764 return NULL;
20765 }
20766 void *_res = NULL;
20767 int _mark = p->mark;
20768 int _start_mark = p->mark;
20769 void **_children = PyMem_Malloc(sizeof(void *));
20770 if (!_children) {
20771 p->error_indicator = 1;
20772 PyErr_NoMemory();
20773 D(p->level--);
20774 return NULL;
20775 }
20776 ssize_t _children_capacity = 1;
20777 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020778 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020779 if (p->error_indicator) {
20780 D(p->level--);
20781 return NULL;
20782 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020783 D(fprintf(stderr, "%*c> _loop1_80[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
20784 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020785 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020786 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020787 )
20788 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020789 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020790 if (_n == _children_capacity) {
20791 _children_capacity *= 2;
20792 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20793 if (!_new_children) {
20794 p->error_indicator = 1;
20795 PyErr_NoMemory();
20796 D(p->level--);
20797 return NULL;
20798 }
20799 _children = _new_children;
20800 }
20801 _children[_n++] = _res;
20802 _mark = p->mark;
20803 }
20804 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020805 D(fprintf(stderr, "%*c%s _loop1_80[%d-%d]: %s failed!\n", p->level, ' ',
20806 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
20807 }
20808 if (_n == 0 || p->error_indicator) {
20809 PyMem_Free(_children);
20810 D(p->level--);
20811 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020812 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020813 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020814 if (!_seq) {
20815 PyMem_Free(_children);
20816 p->error_indicator = 1;
20817 PyErr_NoMemory();
20818 D(p->level--);
20819 return NULL;
20820 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020821 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020822 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020823 _PyPegen_insert_memo(p, _start_mark, _loop1_80_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020824 D(p->level--);
20825 return _seq;
20826}
20827
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020828// _loop1_81: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020829static asdl_seq *
20830_loop1_81_rule(Parser *p)
20831{
20832 D(p->level++);
20833 if (p->error_indicator) {
20834 D(p->level--);
20835 return NULL;
20836 }
20837 void *_res = NULL;
20838 int _mark = p->mark;
20839 int _start_mark = p->mark;
20840 void **_children = PyMem_Malloc(sizeof(void *));
20841 if (!_children) {
20842 p->error_indicator = 1;
20843 PyErr_NoMemory();
20844 D(p->level--);
20845 return NULL;
20846 }
20847 ssize_t _children_capacity = 1;
20848 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020849 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020850 if (p->error_indicator) {
20851 D(p->level--);
20852 return NULL;
20853 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020854 D(fprintf(stderr, "%*c> _loop1_81[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
20855 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020856 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020857 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020858 )
20859 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020860 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020861 if (_n == _children_capacity) {
20862 _children_capacity *= 2;
20863 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20864 if (!_new_children) {
20865 p->error_indicator = 1;
20866 PyErr_NoMemory();
20867 D(p->level--);
20868 return NULL;
20869 }
20870 _children = _new_children;
20871 }
20872 _children[_n++] = _res;
20873 _mark = p->mark;
20874 }
20875 p->mark = _mark;
20876 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020877 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020878 }
20879 if (_n == 0 || p->error_indicator) {
20880 PyMem_Free(_children);
20881 D(p->level--);
20882 return NULL;
20883 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020884 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020885 if (!_seq) {
20886 PyMem_Free(_children);
20887 p->error_indicator = 1;
20888 PyErr_NoMemory();
20889 D(p->level--);
20890 return NULL;
20891 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020892 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020893 PyMem_Free(_children);
20894 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
20895 D(p->level--);
20896 return _seq;
20897}
20898
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020899// _loop0_82: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020900static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020901_loop0_82_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020902{
20903 D(p->level++);
20904 if (p->error_indicator) {
20905 D(p->level--);
20906 return NULL;
20907 }
20908 void *_res = NULL;
20909 int _mark = p->mark;
20910 int _start_mark = p->mark;
20911 void **_children = PyMem_Malloc(sizeof(void *));
20912 if (!_children) {
20913 p->error_indicator = 1;
20914 PyErr_NoMemory();
20915 D(p->level--);
20916 return NULL;
20917 }
20918 ssize_t _children_capacity = 1;
20919 ssize_t _n = 0;
20920 { // lambda_param_no_default
20921 if (p->error_indicator) {
20922 D(p->level--);
20923 return NULL;
20924 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020925 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 +010020926 arg_ty lambda_param_no_default_var;
20927 while (
20928 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
20929 )
20930 {
20931 _res = lambda_param_no_default_var;
20932 if (_n == _children_capacity) {
20933 _children_capacity *= 2;
20934 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20935 if (!_new_children) {
20936 p->error_indicator = 1;
20937 PyErr_NoMemory();
20938 D(p->level--);
20939 return NULL;
20940 }
20941 _children = _new_children;
20942 }
20943 _children[_n++] = _res;
20944 _mark = p->mark;
20945 }
20946 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020947 D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020948 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
20949 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020950 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020951 if (!_seq) {
20952 PyMem_Free(_children);
20953 p->error_indicator = 1;
20954 PyErr_NoMemory();
20955 D(p->level--);
20956 return NULL;
20957 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020958 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020959 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020960 _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020961 D(p->level--);
20962 return _seq;
20963}
20964
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020965// _loop1_83: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020966static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020967_loop1_83_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020968{
20969 D(p->level++);
20970 if (p->error_indicator) {
20971 D(p->level--);
20972 return NULL;
20973 }
20974 void *_res = NULL;
20975 int _mark = p->mark;
20976 int _start_mark = p->mark;
20977 void **_children = PyMem_Malloc(sizeof(void *));
20978 if (!_children) {
20979 p->error_indicator = 1;
20980 PyErr_NoMemory();
20981 D(p->level--);
20982 return NULL;
20983 }
20984 ssize_t _children_capacity = 1;
20985 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020986 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020987 if (p->error_indicator) {
20988 D(p->level--);
20989 return NULL;
20990 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020991 D(fprintf(stderr, "%*c> _loop1_83[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20992 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020993 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020994 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020995 )
20996 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020997 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020998 if (_n == _children_capacity) {
20999 _children_capacity *= 2;
21000 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21001 if (!_new_children) {
21002 p->error_indicator = 1;
21003 PyErr_NoMemory();
21004 D(p->level--);
21005 return NULL;
21006 }
21007 _children = _new_children;
21008 }
21009 _children[_n++] = _res;
21010 _mark = p->mark;
21011 }
21012 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021013 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021014 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021015 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021016 if (_n == 0 || p->error_indicator) {
21017 PyMem_Free(_children);
21018 D(p->level--);
21019 return NULL;
21020 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021021 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021022 if (!_seq) {
21023 PyMem_Free(_children);
21024 p->error_indicator = 1;
21025 PyErr_NoMemory();
21026 D(p->level--);
21027 return NULL;
21028 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021029 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021030 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021031 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021032 D(p->level--);
21033 return _seq;
21034}
21035
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021036// _loop0_84: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021037static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021038_loop0_84_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021039{
21040 D(p->level++);
21041 if (p->error_indicator) {
21042 D(p->level--);
21043 return NULL;
21044 }
21045 void *_res = NULL;
21046 int _mark = p->mark;
21047 int _start_mark = p->mark;
21048 void **_children = PyMem_Malloc(sizeof(void *));
21049 if (!_children) {
21050 p->error_indicator = 1;
21051 PyErr_NoMemory();
21052 D(p->level--);
21053 return NULL;
21054 }
21055 ssize_t _children_capacity = 1;
21056 ssize_t _n = 0;
21057 { // lambda_param_no_default
21058 if (p->error_indicator) {
21059 D(p->level--);
21060 return NULL;
21061 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021062 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 +010021063 arg_ty lambda_param_no_default_var;
21064 while (
21065 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
21066 )
21067 {
21068 _res = lambda_param_no_default_var;
21069 if (_n == _children_capacity) {
21070 _children_capacity *= 2;
21071 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21072 if (!_new_children) {
21073 p->error_indicator = 1;
21074 PyErr_NoMemory();
21075 D(p->level--);
21076 return NULL;
21077 }
21078 _children = _new_children;
21079 }
21080 _children[_n++] = _res;
21081 _mark = p->mark;
21082 }
21083 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021084 D(fprintf(stderr, "%*c%s _loop0_84[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021085 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
21086 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021087 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021088 if (!_seq) {
21089 PyMem_Free(_children);
21090 p->error_indicator = 1;
21091 PyErr_NoMemory();
21092 D(p->level--);
21093 return NULL;
21094 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021095 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021096 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021097 _PyPegen_insert_memo(p, _start_mark, _loop0_84_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021098 D(p->level--);
21099 return _seq;
21100}
21101
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021102// _loop1_85: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021103static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021104_loop1_85_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021105{
21106 D(p->level++);
21107 if (p->error_indicator) {
21108 D(p->level--);
21109 return NULL;
21110 }
21111 void *_res = NULL;
21112 int _mark = p->mark;
21113 int _start_mark = p->mark;
21114 void **_children = PyMem_Malloc(sizeof(void *));
21115 if (!_children) {
21116 p->error_indicator = 1;
21117 PyErr_NoMemory();
21118 D(p->level--);
21119 return NULL;
21120 }
21121 ssize_t _children_capacity = 1;
21122 ssize_t _n = 0;
21123 { // lambda_param_with_default
21124 if (p->error_indicator) {
21125 D(p->level--);
21126 return NULL;
21127 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021128 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 +010021129 NameDefaultPair* lambda_param_with_default_var;
21130 while (
21131 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
21132 )
21133 {
21134 _res = lambda_param_with_default_var;
21135 if (_n == _children_capacity) {
21136 _children_capacity *= 2;
21137 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21138 if (!_new_children) {
21139 p->error_indicator = 1;
21140 PyErr_NoMemory();
21141 D(p->level--);
21142 return NULL;
21143 }
21144 _children = _new_children;
21145 }
21146 _children[_n++] = _res;
21147 _mark = p->mark;
21148 }
21149 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021150 D(fprintf(stderr, "%*c%s _loop1_85[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021151 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
21152 }
21153 if (_n == 0 || p->error_indicator) {
21154 PyMem_Free(_children);
21155 D(p->level--);
21156 return NULL;
21157 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021158 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021159 if (!_seq) {
21160 PyMem_Free(_children);
21161 p->error_indicator = 1;
21162 PyErr_NoMemory();
21163 D(p->level--);
21164 return NULL;
21165 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021166 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021167 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021168 _PyPegen_insert_memo(p, _start_mark, _loop1_85_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021169 D(p->level--);
21170 return _seq;
21171}
21172
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021173// _loop0_86: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021174static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021175_loop0_86_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021176{
21177 D(p->level++);
21178 if (p->error_indicator) {
21179 D(p->level--);
21180 return NULL;
21181 }
21182 void *_res = NULL;
21183 int _mark = p->mark;
21184 int _start_mark = p->mark;
21185 void **_children = PyMem_Malloc(sizeof(void *));
21186 if (!_children) {
21187 p->error_indicator = 1;
21188 PyErr_NoMemory();
21189 D(p->level--);
21190 return NULL;
21191 }
21192 ssize_t _children_capacity = 1;
21193 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021194 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021195 if (p->error_indicator) {
21196 D(p->level--);
21197 return NULL;
21198 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021199 D(fprintf(stderr, "%*c> _loop0_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
21200 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021201 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021202 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021203 )
21204 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021205 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021206 if (_n == _children_capacity) {
21207 _children_capacity *= 2;
21208 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21209 if (!_new_children) {
21210 p->error_indicator = 1;
21211 PyErr_NoMemory();
21212 D(p->level--);
21213 return NULL;
21214 }
21215 _children = _new_children;
21216 }
21217 _children[_n++] = _res;
21218 _mark = p->mark;
21219 }
21220 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021221 D(fprintf(stderr, "%*c%s _loop0_86[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021222 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021223 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021224 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021225 if (!_seq) {
21226 PyMem_Free(_children);
21227 p->error_indicator = 1;
21228 PyErr_NoMemory();
21229 D(p->level--);
21230 return NULL;
21231 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021232 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021233 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021234 _PyPegen_insert_memo(p, _start_mark, _loop0_86_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021235 D(p->level--);
21236 return _seq;
21237}
21238
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021239// _loop1_87: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021240static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021241_loop1_87_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021242{
21243 D(p->level++);
21244 if (p->error_indicator) {
21245 D(p->level--);
21246 return NULL;
21247 }
21248 void *_res = NULL;
21249 int _mark = p->mark;
21250 int _start_mark = p->mark;
21251 void **_children = PyMem_Malloc(sizeof(void *));
21252 if (!_children) {
21253 p->error_indicator = 1;
21254 PyErr_NoMemory();
21255 D(p->level--);
21256 return NULL;
21257 }
21258 ssize_t _children_capacity = 1;
21259 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021260 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021261 if (p->error_indicator) {
21262 D(p->level--);
21263 return NULL;
21264 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021265 D(fprintf(stderr, "%*c> _loop1_87[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
21266 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021267 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021268 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021269 )
21270 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021271 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021272 if (_n == _children_capacity) {
21273 _children_capacity *= 2;
21274 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21275 if (!_new_children) {
21276 p->error_indicator = 1;
21277 PyErr_NoMemory();
21278 D(p->level--);
21279 return NULL;
21280 }
21281 _children = _new_children;
21282 }
21283 _children[_n++] = _res;
21284 _mark = p->mark;
21285 }
21286 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021287 D(fprintf(stderr, "%*c%s _loop1_87[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021288 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021289 }
21290 if (_n == 0 || p->error_indicator) {
21291 PyMem_Free(_children);
21292 D(p->level--);
21293 return NULL;
21294 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021295 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021296 if (!_seq) {
21297 PyMem_Free(_children);
21298 p->error_indicator = 1;
21299 PyErr_NoMemory();
21300 D(p->level--);
21301 return NULL;
21302 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021303 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021304 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021305 _PyPegen_insert_memo(p, _start_mark, _loop1_87_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021306 D(p->level--);
21307 return _seq;
21308}
21309
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021310// _loop1_88: ('or' conjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021311static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021312_loop1_88_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021313{
21314 D(p->level++);
21315 if (p->error_indicator) {
21316 D(p->level--);
21317 return NULL;
21318 }
21319 void *_res = NULL;
21320 int _mark = p->mark;
21321 int _start_mark = p->mark;
21322 void **_children = PyMem_Malloc(sizeof(void *));
21323 if (!_children) {
21324 p->error_indicator = 1;
21325 PyErr_NoMemory();
21326 D(p->level--);
21327 return NULL;
21328 }
21329 ssize_t _children_capacity = 1;
21330 ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021331 { // ('or' conjunction)
21332 if (p->error_indicator) {
21333 D(p->level--);
21334 return NULL;
21335 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021336 D(fprintf(stderr, "%*c> _loop1_88[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000021337 void *_tmp_150_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021338 while (
Pablo Galindo58fb1562021-02-02 19:54:22 +000021339 (_tmp_150_var = _tmp_150_rule(p)) // 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021340 )
21341 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000021342 _res = _tmp_150_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021343 if (_n == _children_capacity) {
21344 _children_capacity *= 2;
21345 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21346 if (!_new_children) {
21347 p->error_indicator = 1;
21348 PyErr_NoMemory();
21349 D(p->level--);
21350 return NULL;
21351 }
21352 _children = _new_children;
21353 }
21354 _children[_n++] = _res;
21355 _mark = p->mark;
21356 }
21357 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021358 D(fprintf(stderr, "%*c%s _loop1_88[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021359 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
21360 }
21361 if (_n == 0 || p->error_indicator) {
21362 PyMem_Free(_children);
21363 D(p->level--);
21364 return NULL;
21365 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021366 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021367 if (!_seq) {
21368 PyMem_Free(_children);
21369 p->error_indicator = 1;
21370 PyErr_NoMemory();
21371 D(p->level--);
21372 return NULL;
21373 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021374 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021375 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021376 _PyPegen_insert_memo(p, _start_mark, _loop1_88_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021377 D(p->level--);
21378 return _seq;
21379}
21380
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021381// _loop1_89: ('and' inversion)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021382static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021383_loop1_89_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021384{
21385 D(p->level++);
21386 if (p->error_indicator) {
21387 D(p->level--);
21388 return NULL;
21389 }
21390 void *_res = NULL;
21391 int _mark = p->mark;
21392 int _start_mark = p->mark;
21393 void **_children = PyMem_Malloc(sizeof(void *));
21394 if (!_children) {
21395 p->error_indicator = 1;
21396 PyErr_NoMemory();
21397 D(p->level--);
21398 return NULL;
21399 }
21400 ssize_t _children_capacity = 1;
21401 ssize_t _n = 0;
21402 { // ('and' inversion)
21403 if (p->error_indicator) {
21404 D(p->level--);
21405 return NULL;
21406 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021407 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000021408 void *_tmp_151_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021409 while (
Pablo Galindo58fb1562021-02-02 19:54:22 +000021410 (_tmp_151_var = _tmp_151_rule(p)) // 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021411 )
21412 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000021413 _res = _tmp_151_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021414 if (_n == _children_capacity) {
21415 _children_capacity *= 2;
21416 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21417 if (!_new_children) {
21418 p->error_indicator = 1;
21419 PyErr_NoMemory();
21420 D(p->level--);
21421 return NULL;
21422 }
21423 _children = _new_children;
21424 }
21425 _children[_n++] = _res;
21426 _mark = p->mark;
21427 }
21428 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021429 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021430 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
21431 }
21432 if (_n == 0 || p->error_indicator) {
21433 PyMem_Free(_children);
21434 D(p->level--);
21435 return NULL;
21436 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021437 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021438 if (!_seq) {
21439 PyMem_Free(_children);
21440 p->error_indicator = 1;
21441 PyErr_NoMemory();
21442 D(p->level--);
21443 return NULL;
21444 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021445 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021446 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021447 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021448 D(p->level--);
21449 return _seq;
21450}
21451
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021452// _loop1_90: compare_op_bitwise_or_pair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021453static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021454_loop1_90_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021455{
21456 D(p->level++);
21457 if (p->error_indicator) {
21458 D(p->level--);
21459 return NULL;
21460 }
21461 void *_res = NULL;
21462 int _mark = p->mark;
21463 int _start_mark = p->mark;
21464 void **_children = PyMem_Malloc(sizeof(void *));
21465 if (!_children) {
21466 p->error_indicator = 1;
21467 PyErr_NoMemory();
21468 D(p->level--);
21469 return NULL;
21470 }
21471 ssize_t _children_capacity = 1;
21472 ssize_t _n = 0;
21473 { // compare_op_bitwise_or_pair
21474 if (p->error_indicator) {
21475 D(p->level--);
21476 return NULL;
21477 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021478 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 +010021479 CmpopExprPair* compare_op_bitwise_or_pair_var;
21480 while (
21481 (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
21482 )
21483 {
21484 _res = compare_op_bitwise_or_pair_var;
21485 if (_n == _children_capacity) {
21486 _children_capacity *= 2;
21487 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21488 if (!_new_children) {
21489 p->error_indicator = 1;
21490 PyErr_NoMemory();
21491 D(p->level--);
21492 return NULL;
21493 }
21494 _children = _new_children;
21495 }
21496 _children[_n++] = _res;
21497 _mark = p->mark;
21498 }
21499 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021500 D(fprintf(stderr, "%*c%s _loop1_90[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021501 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
21502 }
21503 if (_n == 0 || p->error_indicator) {
21504 PyMem_Free(_children);
21505 D(p->level--);
21506 return NULL;
21507 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021508 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021509 if (!_seq) {
21510 PyMem_Free(_children);
21511 p->error_indicator = 1;
21512 PyErr_NoMemory();
21513 D(p->level--);
21514 return NULL;
21515 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021516 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021517 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021518 _PyPegen_insert_memo(p, _start_mark, _loop1_90_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021519 D(p->level--);
21520 return _seq;
21521}
21522
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021523// _tmp_91: '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021524static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021525_tmp_91_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021526{
21527 D(p->level++);
21528 if (p->error_indicator) {
21529 D(p->level--);
21530 return NULL;
21531 }
21532 void * _res = NULL;
21533 int _mark = p->mark;
21534 { // '!='
21535 if (p->error_indicator) {
21536 D(p->level--);
21537 return NULL;
21538 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021539 D(fprintf(stderr, "%*c> _tmp_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021540 Token * tok;
21541 if (
21542 (tok = _PyPegen_expect_token(p, 28)) // token='!='
21543 )
21544 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021545 D(fprintf(stderr, "%*c+ _tmp_91[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo06f8c332020-10-30 23:48:42 +000021546 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021547 if (_res == NULL && PyErr_Occurred()) {
21548 p->error_indicator = 1;
21549 D(p->level--);
21550 return NULL;
21551 }
21552 goto done;
21553 }
21554 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021555 D(fprintf(stderr, "%*c%s _tmp_91[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021556 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
21557 }
21558 _res = NULL;
21559 done:
21560 D(p->level--);
21561 return _res;
21562}
21563
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021564// _loop0_93: ',' slice
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021565static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021566_loop0_93_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021567{
21568 D(p->level++);
21569 if (p->error_indicator) {
21570 D(p->level--);
21571 return NULL;
21572 }
21573 void *_res = NULL;
21574 int _mark = p->mark;
21575 int _start_mark = p->mark;
21576 void **_children = PyMem_Malloc(sizeof(void *));
21577 if (!_children) {
21578 p->error_indicator = 1;
21579 PyErr_NoMemory();
21580 D(p->level--);
21581 return NULL;
21582 }
21583 ssize_t _children_capacity = 1;
21584 ssize_t _n = 0;
21585 { // ',' slice
21586 if (p->error_indicator) {
21587 D(p->level--);
21588 return NULL;
21589 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021590 D(fprintf(stderr, "%*c> _loop0_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021591 Token * _literal;
21592 expr_ty elem;
21593 while (
21594 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21595 &&
21596 (elem = slice_rule(p)) // slice
21597 )
21598 {
21599 _res = elem;
21600 if (_res == NULL && PyErr_Occurred()) {
21601 p->error_indicator = 1;
21602 PyMem_Free(_children);
21603 D(p->level--);
21604 return NULL;
21605 }
21606 if (_n == _children_capacity) {
21607 _children_capacity *= 2;
21608 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21609 if (!_new_children) {
21610 p->error_indicator = 1;
21611 PyErr_NoMemory();
21612 D(p->level--);
21613 return NULL;
21614 }
21615 _children = _new_children;
21616 }
21617 _children[_n++] = _res;
21618 _mark = p->mark;
21619 }
21620 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021621 D(fprintf(stderr, "%*c%s _loop0_93[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021622 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
21623 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021624 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021625 if (!_seq) {
21626 PyMem_Free(_children);
21627 p->error_indicator = 1;
21628 PyErr_NoMemory();
21629 D(p->level--);
21630 return NULL;
21631 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021632 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021633 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021634 _PyPegen_insert_memo(p, _start_mark, _loop0_93_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021635 D(p->level--);
21636 return _seq;
21637}
21638
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021639// _gather_92: slice _loop0_93
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021640static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021641_gather_92_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021642{
21643 D(p->level++);
21644 if (p->error_indicator) {
21645 D(p->level--);
21646 return NULL;
21647 }
21648 asdl_seq * _res = NULL;
21649 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021650 { // slice _loop0_93
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021651 if (p->error_indicator) {
21652 D(p->level--);
21653 return NULL;
21654 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021655 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 +010021656 expr_ty elem;
21657 asdl_seq * seq;
21658 if (
21659 (elem = slice_rule(p)) // slice
21660 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021661 (seq = _loop0_93_rule(p)) // _loop0_93
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021662 )
21663 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021664 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 +010021665 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21666 goto done;
21667 }
21668 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021669 D(fprintf(stderr, "%*c%s _gather_92[%d-%d]: %s failed!\n", p->level, ' ',
21670 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_93"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021671 }
21672 _res = NULL;
21673 done:
21674 D(p->level--);
21675 return _res;
21676}
21677
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021678// _tmp_94: ':' expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021679static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021680_tmp_94_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021681{
21682 D(p->level++);
21683 if (p->error_indicator) {
21684 D(p->level--);
21685 return NULL;
21686 }
21687 void * _res = NULL;
21688 int _mark = p->mark;
21689 { // ':' expression?
21690 if (p->error_indicator) {
21691 D(p->level--);
21692 return NULL;
21693 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021694 D(fprintf(stderr, "%*c> _tmp_94[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021695 Token * _literal;
21696 void *d;
21697 if (
21698 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21699 &&
21700 (d = expression_rule(p), 1) // expression?
21701 )
21702 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021703 D(fprintf(stderr, "%*c+ _tmp_94[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021704 _res = d;
21705 if (_res == NULL && PyErr_Occurred()) {
21706 p->error_indicator = 1;
21707 D(p->level--);
21708 return NULL;
21709 }
21710 goto done;
21711 }
21712 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021713 D(fprintf(stderr, "%*c%s _tmp_94[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021714 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
21715 }
21716 _res = NULL;
21717 done:
21718 D(p->level--);
21719 return _res;
21720}
21721
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021722// _tmp_95: tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021723static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021724_tmp_95_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021725{
21726 D(p->level++);
21727 if (p->error_indicator) {
21728 D(p->level--);
21729 return NULL;
21730 }
21731 void * _res = NULL;
21732 int _mark = p->mark;
21733 { // tuple
21734 if (p->error_indicator) {
21735 D(p->level--);
21736 return NULL;
21737 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021738 D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021739 expr_ty tuple_var;
21740 if (
21741 (tuple_var = tuple_rule(p)) // tuple
21742 )
21743 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021744 D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021745 _res = tuple_var;
21746 goto done;
21747 }
21748 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021749 D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021750 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
21751 }
21752 { // group
21753 if (p->error_indicator) {
21754 D(p->level--);
21755 return NULL;
21756 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021757 D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021758 expr_ty group_var;
21759 if (
21760 (group_var = group_rule(p)) // group
21761 )
21762 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021763 D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021764 _res = group_var;
21765 goto done;
21766 }
21767 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021768 D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
21770 }
21771 { // genexp
21772 if (p->error_indicator) {
21773 D(p->level--);
21774 return NULL;
21775 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021776 D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021777 expr_ty genexp_var;
21778 if (
21779 (genexp_var = genexp_rule(p)) // genexp
21780 )
21781 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021782 D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021783 _res = genexp_var;
21784 goto done;
21785 }
21786 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021787 D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021788 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
21789 }
21790 _res = NULL;
21791 done:
21792 D(p->level--);
21793 return _res;
21794}
21795
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021796// _tmp_96: list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021797static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021798_tmp_96_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021799{
21800 D(p->level++);
21801 if (p->error_indicator) {
21802 D(p->level--);
21803 return NULL;
21804 }
21805 void * _res = NULL;
21806 int _mark = p->mark;
21807 { // list
21808 if (p->error_indicator) {
21809 D(p->level--);
21810 return NULL;
21811 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021812 D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021813 expr_ty list_var;
21814 if (
21815 (list_var = list_rule(p)) // list
21816 )
21817 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021818 D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021819 _res = list_var;
21820 goto done;
21821 }
21822 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021823 D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021824 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
21825 }
21826 { // listcomp
21827 if (p->error_indicator) {
21828 D(p->level--);
21829 return NULL;
21830 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021831 D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021832 expr_ty listcomp_var;
21833 if (
21834 (listcomp_var = listcomp_rule(p)) // listcomp
21835 )
21836 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021837 D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021838 _res = listcomp_var;
21839 goto done;
21840 }
21841 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021842 D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
21844 }
21845 _res = NULL;
21846 done:
21847 D(p->level--);
21848 return _res;
21849}
21850
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021851// _tmp_97: dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021852static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021853_tmp_97_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021854{
21855 D(p->level++);
21856 if (p->error_indicator) {
21857 D(p->level--);
21858 return NULL;
21859 }
21860 void * _res = NULL;
21861 int _mark = p->mark;
21862 { // dict
21863 if (p->error_indicator) {
21864 D(p->level--);
21865 return NULL;
21866 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021867 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021868 expr_ty dict_var;
21869 if (
21870 (dict_var = dict_rule(p)) // dict
21871 )
21872 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021873 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021874 _res = dict_var;
21875 goto done;
21876 }
21877 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021878 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021879 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
21880 }
21881 { // set
21882 if (p->error_indicator) {
21883 D(p->level--);
21884 return NULL;
21885 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021886 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021887 expr_ty set_var;
21888 if (
21889 (set_var = set_rule(p)) // set
21890 )
21891 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021892 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021893 _res = set_var;
21894 goto done;
21895 }
21896 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021897 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021898 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
21899 }
21900 { // dictcomp
21901 if (p->error_indicator) {
21902 D(p->level--);
21903 return NULL;
21904 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021905 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021906 expr_ty dictcomp_var;
21907 if (
21908 (dictcomp_var = dictcomp_rule(p)) // dictcomp
21909 )
21910 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021911 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021912 _res = dictcomp_var;
21913 goto done;
21914 }
21915 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021916 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
21918 }
21919 { // setcomp
21920 if (p->error_indicator) {
21921 D(p->level--);
21922 return NULL;
21923 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021924 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021925 expr_ty setcomp_var;
21926 if (
21927 (setcomp_var = setcomp_rule(p)) // setcomp
21928 )
21929 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021930 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021931 _res = setcomp_var;
21932 goto done;
21933 }
21934 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021935 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021936 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
21937 }
21938 _res = NULL;
21939 done:
21940 D(p->level--);
21941 return _res;
21942}
21943
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021944// _loop1_98: STRING
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021945static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021946_loop1_98_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021947{
21948 D(p->level++);
21949 if (p->error_indicator) {
21950 D(p->level--);
21951 return NULL;
21952 }
21953 void *_res = NULL;
21954 int _mark = p->mark;
21955 int _start_mark = p->mark;
21956 void **_children = PyMem_Malloc(sizeof(void *));
21957 if (!_children) {
21958 p->error_indicator = 1;
21959 PyErr_NoMemory();
21960 D(p->level--);
21961 return NULL;
21962 }
21963 ssize_t _children_capacity = 1;
21964 ssize_t _n = 0;
21965 { // STRING
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> _loop1_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021971 expr_ty string_var;
21972 while (
21973 (string_var = _PyPegen_string_token(p)) // STRING
21974 )
21975 {
21976 _res = string_var;
21977 if (_n == _children_capacity) {
21978 _children_capacity *= 2;
21979 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21980 if (!_new_children) {
21981 p->error_indicator = 1;
21982 PyErr_NoMemory();
21983 D(p->level--);
21984 return NULL;
21985 }
21986 _children = _new_children;
21987 }
21988 _children[_n++] = _res;
21989 _mark = p->mark;
21990 }
21991 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021992 D(fprintf(stderr, "%*c%s _loop1_98[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
21994 }
21995 if (_n == 0 || p->error_indicator) {
21996 PyMem_Free(_children);
21997 D(p->level--);
21998 return NULL;
21999 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022000 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022001 if (!_seq) {
22002 PyMem_Free(_children);
22003 p->error_indicator = 1;
22004 PyErr_NoMemory();
22005 D(p->level--);
22006 return NULL;
22007 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022008 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022009 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022010 _PyPegen_insert_memo(p, _start_mark, _loop1_98_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022011 D(p->level--);
22012 return _seq;
22013}
22014
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022015// _tmp_99: star_named_expression ',' star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022016static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022017_tmp_99_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022018{
22019 D(p->level++);
22020 if (p->error_indicator) {
22021 D(p->level--);
22022 return NULL;
22023 }
22024 void * _res = NULL;
22025 int _mark = p->mark;
22026 { // star_named_expression ',' star_named_expressions?
22027 if (p->error_indicator) {
22028 D(p->level--);
22029 return NULL;
22030 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022031 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 +010022032 Token * _literal;
22033 expr_ty y;
22034 void *z;
22035 if (
22036 (y = star_named_expression_rule(p)) // star_named_expression
22037 &&
22038 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22039 &&
22040 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
22041 )
22042 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022043 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 +010022044 _res = _PyPegen_seq_insert_in_front ( p , y , z );
22045 if (_res == NULL && PyErr_Occurred()) {
22046 p->error_indicator = 1;
22047 D(p->level--);
22048 return NULL;
22049 }
22050 goto done;
22051 }
22052 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022053 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022054 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
22055 }
22056 _res = NULL;
22057 done:
22058 D(p->level--);
22059 return _res;
22060}
22061
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022062// _tmp_100: yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022063static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022064_tmp_100_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022065{
22066 D(p->level++);
22067 if (p->error_indicator) {
22068 D(p->level--);
22069 return NULL;
22070 }
22071 void * _res = NULL;
22072 int _mark = p->mark;
22073 { // yield_expr
22074 if (p->error_indicator) {
22075 D(p->level--);
22076 return NULL;
22077 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022078 D(fprintf(stderr, "%*c> _tmp_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022079 expr_ty yield_expr_var;
22080 if (
22081 (yield_expr_var = yield_expr_rule(p)) // yield_expr
22082 )
22083 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022084 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 +010022085 _res = yield_expr_var;
22086 goto done;
22087 }
22088 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022089 D(fprintf(stderr, "%*c%s _tmp_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022090 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
22091 }
22092 { // named_expression
22093 if (p->error_indicator) {
22094 D(p->level--);
22095 return NULL;
22096 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022097 D(fprintf(stderr, "%*c> _tmp_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022098 expr_ty named_expression_var;
22099 if (
22100 (named_expression_var = named_expression_rule(p)) // named_expression
22101 )
22102 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022103 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 +010022104 _res = named_expression_var;
22105 goto done;
22106 }
22107 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022108 D(fprintf(stderr, "%*c%s _tmp_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022109 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
22110 }
22111 _res = NULL;
22112 done:
22113 D(p->level--);
22114 return _res;
22115}
22116
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022117// _loop0_102: ',' double_starred_kvpair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022118static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022119_loop0_102_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022120{
22121 D(p->level++);
22122 if (p->error_indicator) {
22123 D(p->level--);
22124 return NULL;
22125 }
22126 void *_res = NULL;
22127 int _mark = p->mark;
22128 int _start_mark = p->mark;
22129 void **_children = PyMem_Malloc(sizeof(void *));
22130 if (!_children) {
22131 p->error_indicator = 1;
22132 PyErr_NoMemory();
22133 D(p->level--);
22134 return NULL;
22135 }
22136 ssize_t _children_capacity = 1;
22137 ssize_t _n = 0;
22138 { // ',' double_starred_kvpair
22139 if (p->error_indicator) {
22140 D(p->level--);
22141 return NULL;
22142 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022143 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 +010022144 Token * _literal;
22145 KeyValuePair* elem;
22146 while (
22147 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22148 &&
22149 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
22150 )
22151 {
22152 _res = elem;
22153 if (_res == NULL && PyErr_Occurred()) {
22154 p->error_indicator = 1;
22155 PyMem_Free(_children);
22156 D(p->level--);
22157 return NULL;
22158 }
22159 if (_n == _children_capacity) {
22160 _children_capacity *= 2;
22161 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22162 if (!_new_children) {
22163 p->error_indicator = 1;
22164 PyErr_NoMemory();
22165 D(p->level--);
22166 return NULL;
22167 }
22168 _children = _new_children;
22169 }
22170 _children[_n++] = _res;
22171 _mark = p->mark;
22172 }
22173 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022174 D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
22176 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022177 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022178 if (!_seq) {
22179 PyMem_Free(_children);
22180 p->error_indicator = 1;
22181 PyErr_NoMemory();
22182 D(p->level--);
22183 return NULL;
22184 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022185 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022186 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022187 _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022188 D(p->level--);
22189 return _seq;
22190}
22191
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022192// _gather_101: double_starred_kvpair _loop0_102
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022193static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022194_gather_101_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022195{
22196 D(p->level++);
22197 if (p->error_indicator) {
22198 D(p->level--);
22199 return NULL;
22200 }
22201 asdl_seq * _res = NULL;
22202 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022203 { // double_starred_kvpair _loop0_102
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022204 if (p->error_indicator) {
22205 D(p->level--);
22206 return NULL;
22207 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022208 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 +010022209 KeyValuePair* elem;
22210 asdl_seq * seq;
22211 if (
22212 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
22213 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022214 (seq = _loop0_102_rule(p)) // _loop0_102
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022215 )
22216 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022217 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 +010022218 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22219 goto done;
22220 }
22221 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022222 D(fprintf(stderr, "%*c%s _gather_101[%d-%d]: %s failed!\n", p->level, ' ',
22223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_102"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022224 }
22225 _res = NULL;
22226 done:
22227 D(p->level--);
22228 return _res;
22229}
22230
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022231// _loop1_103: for_if_clause
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022232static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022233_loop1_103_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022234{
22235 D(p->level++);
22236 if (p->error_indicator) {
22237 D(p->level--);
22238 return NULL;
22239 }
22240 void *_res = NULL;
22241 int _mark = p->mark;
22242 int _start_mark = p->mark;
22243 void **_children = PyMem_Malloc(sizeof(void *));
22244 if (!_children) {
22245 p->error_indicator = 1;
22246 PyErr_NoMemory();
22247 D(p->level--);
22248 return NULL;
22249 }
22250 ssize_t _children_capacity = 1;
22251 ssize_t _n = 0;
22252 { // for_if_clause
22253 if (p->error_indicator) {
22254 D(p->level--);
22255 return NULL;
22256 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022257 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 +010022258 comprehension_ty for_if_clause_var;
22259 while (
22260 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
22261 )
22262 {
22263 _res = for_if_clause_var;
22264 if (_n == _children_capacity) {
22265 _children_capacity *= 2;
22266 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22267 if (!_new_children) {
22268 p->error_indicator = 1;
22269 PyErr_NoMemory();
22270 D(p->level--);
22271 return NULL;
22272 }
22273 _children = _new_children;
22274 }
22275 _children[_n++] = _res;
22276 _mark = p->mark;
22277 }
22278 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022279 D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022280 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
22281 }
22282 if (_n == 0 || p->error_indicator) {
22283 PyMem_Free(_children);
22284 D(p->level--);
22285 return NULL;
22286 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022287 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022288 if (!_seq) {
22289 PyMem_Free(_children);
22290 p->error_indicator = 1;
22291 PyErr_NoMemory();
22292 D(p->level--);
22293 return NULL;
22294 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022295 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022296 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022297 _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022298 D(p->level--);
22299 return _seq;
22300}
22301
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022302// _loop0_104: ('if' disjunction)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022303static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022304_loop0_104_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022305{
22306 D(p->level++);
22307 if (p->error_indicator) {
22308 D(p->level--);
22309 return NULL;
22310 }
22311 void *_res = NULL;
22312 int _mark = p->mark;
22313 int _start_mark = p->mark;
22314 void **_children = PyMem_Malloc(sizeof(void *));
22315 if (!_children) {
22316 p->error_indicator = 1;
22317 PyErr_NoMemory();
22318 D(p->level--);
22319 return NULL;
22320 }
22321 ssize_t _children_capacity = 1;
22322 ssize_t _n = 0;
22323 { // ('if' disjunction)
22324 if (p->error_indicator) {
22325 D(p->level--);
22326 return NULL;
22327 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022328 D(fprintf(stderr, "%*c> _loop0_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000022329 void *_tmp_152_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022330 while (
Pablo Galindo58fb1562021-02-02 19:54:22 +000022331 (_tmp_152_var = _tmp_152_rule(p)) // 'if' disjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022332 )
22333 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000022334 _res = _tmp_152_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022335 if (_n == _children_capacity) {
22336 _children_capacity *= 2;
22337 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22338 if (!_new_children) {
22339 p->error_indicator = 1;
22340 PyErr_NoMemory();
22341 D(p->level--);
22342 return NULL;
22343 }
22344 _children = _new_children;
22345 }
22346 _children[_n++] = _res;
22347 _mark = p->mark;
22348 }
22349 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022350 D(fprintf(stderr, "%*c%s _loop0_104[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022351 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
22352 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022353 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022354 if (!_seq) {
22355 PyMem_Free(_children);
22356 p->error_indicator = 1;
22357 PyErr_NoMemory();
22358 D(p->level--);
22359 return NULL;
22360 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022361 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022362 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022363 _PyPegen_insert_memo(p, _start_mark, _loop0_104_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022364 D(p->level--);
22365 return _seq;
22366}
22367
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022368// _loop0_105: ('if' disjunction)
22369static asdl_seq *
22370_loop0_105_rule(Parser *p)
22371{
22372 D(p->level++);
22373 if (p->error_indicator) {
22374 D(p->level--);
22375 return NULL;
22376 }
22377 void *_res = NULL;
22378 int _mark = p->mark;
22379 int _start_mark = p->mark;
22380 void **_children = PyMem_Malloc(sizeof(void *));
22381 if (!_children) {
22382 p->error_indicator = 1;
22383 PyErr_NoMemory();
22384 D(p->level--);
22385 return NULL;
22386 }
22387 ssize_t _children_capacity = 1;
22388 ssize_t _n = 0;
22389 { // ('if' disjunction)
22390 if (p->error_indicator) {
22391 D(p->level--);
22392 return NULL;
22393 }
22394 D(fprintf(stderr, "%*c> _loop0_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000022395 void *_tmp_153_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022396 while (
Pablo Galindo58fb1562021-02-02 19:54:22 +000022397 (_tmp_153_var = _tmp_153_rule(p)) // 'if' disjunction
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022398 )
22399 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000022400 _res = _tmp_153_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022401 if (_n == _children_capacity) {
22402 _children_capacity *= 2;
22403 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22404 if (!_new_children) {
22405 p->error_indicator = 1;
22406 PyErr_NoMemory();
22407 D(p->level--);
22408 return NULL;
22409 }
22410 _children = _new_children;
22411 }
22412 _children[_n++] = _res;
22413 _mark = p->mark;
22414 }
22415 p->mark = _mark;
22416 D(fprintf(stderr, "%*c%s _loop0_105[%d-%d]: %s failed!\n", p->level, ' ',
22417 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
22418 }
22419 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22420 if (!_seq) {
22421 PyMem_Free(_children);
22422 p->error_indicator = 1;
22423 PyErr_NoMemory();
22424 D(p->level--);
22425 return NULL;
22426 }
22427 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22428 PyMem_Free(_children);
22429 _PyPegen_insert_memo(p, _start_mark, _loop0_105_type, _seq);
22430 D(p->level--);
22431 return _seq;
22432}
22433
22434// _loop0_107: ',' (starred_expression | named_expression !'=')
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022435static asdl_seq *
22436_loop0_107_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022437{
22438 D(p->level++);
22439 if (p->error_indicator) {
22440 D(p->level--);
22441 return NULL;
22442 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022443 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022444 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022445 int _start_mark = p->mark;
22446 void **_children = PyMem_Malloc(sizeof(void *));
22447 if (!_children) {
22448 p->error_indicator = 1;
22449 PyErr_NoMemory();
22450 D(p->level--);
22451 return NULL;
22452 }
22453 ssize_t _children_capacity = 1;
22454 ssize_t _n = 0;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022455 { // ',' (starred_expression | named_expression !'=')
22456 if (p->error_indicator) {
22457 D(p->level--);
22458 return NULL;
22459 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022460 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 +010022461 Token * _literal;
22462 void *elem;
22463 while (
22464 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22465 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +000022466 (elem = _tmp_154_rule(p)) // starred_expression | named_expression !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010022467 )
22468 {
22469 _res = elem;
22470 if (_res == NULL && PyErr_Occurred()) {
22471 p->error_indicator = 1;
22472 PyMem_Free(_children);
22473 D(p->level--);
22474 return NULL;
22475 }
22476 if (_n == _children_capacity) {
22477 _children_capacity *= 2;
22478 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22479 if (!_new_children) {
22480 p->error_indicator = 1;
22481 PyErr_NoMemory();
22482 D(p->level--);
22483 return NULL;
22484 }
22485 _children = _new_children;
22486 }
22487 _children[_n++] = _res;
22488 _mark = p->mark;
22489 }
22490 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022491 D(fprintf(stderr, "%*c%s _loop0_107[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010022492 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | named_expression !'=')"));
22493 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022494 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022495 if (!_seq) {
22496 PyMem_Free(_children);
22497 p->error_indicator = 1;
22498 PyErr_NoMemory();
22499 D(p->level--);
22500 return NULL;
22501 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022502 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022503 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022504 _PyPegen_insert_memo(p, _start_mark, _loop0_107_type, _seq);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022505 D(p->level--);
22506 return _seq;
22507}
22508
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022509// _gather_106: (starred_expression | named_expression !'=') _loop0_107
Pablo Galindo4a97b152020-09-02 17:44:19 +010022510static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022511_gather_106_rule(Parser *p)
Pablo Galindo4a97b152020-09-02 17:44:19 +010022512{
22513 D(p->level++);
22514 if (p->error_indicator) {
22515 D(p->level--);
22516 return NULL;
22517 }
22518 asdl_seq * _res = NULL;
22519 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022520 { // (starred_expression | named_expression !'=') _loop0_107
Pablo Galindo4a97b152020-09-02 17:44:19 +010022521 if (p->error_indicator) {
22522 D(p->level--);
22523 return NULL;
22524 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022525 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 +010022526 void *elem;
22527 asdl_seq * seq;
22528 if (
Pablo Galindo58fb1562021-02-02 19:54:22 +000022529 (elem = _tmp_154_rule(p)) // starred_expression | named_expression !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010022530 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022531 (seq = _loop0_107_rule(p)) // _loop0_107
Pablo Galindo4a97b152020-09-02 17:44:19 +010022532 )
22533 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022534 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 +010022535 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22536 goto done;
22537 }
22538 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022539 D(fprintf(stderr, "%*c%s _gather_106[%d-%d]: %s failed!\n", p->level, ' ',
22540 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_107"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010022541 }
22542 _res = NULL;
22543 done:
22544 D(p->level--);
22545 return _res;
22546}
22547
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022548// _tmp_108: ',' kwargs
Pablo Galindo4a97b152020-09-02 17:44:19 +010022549static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022550_tmp_108_rule(Parser *p)
Pablo Galindo4a97b152020-09-02 17:44:19 +010022551{
22552 D(p->level++);
22553 if (p->error_indicator) {
22554 D(p->level--);
22555 return NULL;
22556 }
22557 void * _res = NULL;
22558 int _mark = p->mark;
22559 { // ',' kwargs
22560 if (p->error_indicator) {
22561 D(p->level--);
22562 return NULL;
22563 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022564 D(fprintf(stderr, "%*c> _tmp_108[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010022565 Token * _literal;
22566 asdl_seq* k;
22567 if (
22568 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22569 &&
22570 (k = kwargs_rule(p)) // kwargs
22571 )
22572 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022573 D(fprintf(stderr, "%*c+ _tmp_108[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010022574 _res = k;
22575 if (_res == NULL && PyErr_Occurred()) {
22576 p->error_indicator = 1;
22577 D(p->level--);
22578 return NULL;
22579 }
22580 goto done;
22581 }
22582 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022583 D(fprintf(stderr, "%*c%s _tmp_108[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010022584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
22585 }
22586 _res = NULL;
22587 done:
22588 D(p->level--);
22589 return _res;
22590}
22591
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022592// _loop0_110: ',' kwarg_or_starred
Pablo Galindo4a97b152020-09-02 17:44:19 +010022593static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022594_loop0_110_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022595{
22596 D(p->level++);
22597 if (p->error_indicator) {
22598 D(p->level--);
22599 return NULL;
22600 }
22601 void *_res = NULL;
22602 int _mark = p->mark;
22603 int _start_mark = p->mark;
22604 void **_children = PyMem_Malloc(sizeof(void *));
22605 if (!_children) {
22606 p->error_indicator = 1;
22607 PyErr_NoMemory();
22608 D(p->level--);
22609 return NULL;
22610 }
22611 ssize_t _children_capacity = 1;
22612 ssize_t _n = 0;
22613 { // ',' kwarg_or_starred
22614 if (p->error_indicator) {
22615 D(p->level--);
22616 return NULL;
22617 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022618 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 +010022619 Token * _literal;
22620 KeywordOrStarred* elem;
22621 while (
22622 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22623 &&
22624 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
22625 )
22626 {
22627 _res = elem;
22628 if (_res == NULL && PyErr_Occurred()) {
22629 p->error_indicator = 1;
22630 PyMem_Free(_children);
22631 D(p->level--);
22632 return NULL;
22633 }
22634 if (_n == _children_capacity) {
22635 _children_capacity *= 2;
22636 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22637 if (!_new_children) {
22638 p->error_indicator = 1;
22639 PyErr_NoMemory();
22640 D(p->level--);
22641 return NULL;
22642 }
22643 _children = _new_children;
22644 }
22645 _children[_n++] = _res;
22646 _mark = p->mark;
22647 }
22648 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022649 D(fprintf(stderr, "%*c%s _loop0_110[%d-%d]: %s failed!\n", p->level, ' ',
22650 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
22651 }
22652 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22653 if (!_seq) {
22654 PyMem_Free(_children);
22655 p->error_indicator = 1;
22656 PyErr_NoMemory();
22657 D(p->level--);
22658 return NULL;
22659 }
22660 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22661 PyMem_Free(_children);
22662 _PyPegen_insert_memo(p, _start_mark, _loop0_110_type, _seq);
22663 D(p->level--);
22664 return _seq;
22665}
22666
22667// _gather_109: kwarg_or_starred _loop0_110
22668static asdl_seq *
22669_gather_109_rule(Parser *p)
22670{
22671 D(p->level++);
22672 if (p->error_indicator) {
22673 D(p->level--);
22674 return NULL;
22675 }
22676 asdl_seq * _res = NULL;
22677 int _mark = p->mark;
22678 { // kwarg_or_starred _loop0_110
22679 if (p->error_indicator) {
22680 D(p->level--);
22681 return NULL;
22682 }
22683 D(fprintf(stderr, "%*c> _gather_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_110"));
22684 KeywordOrStarred* elem;
22685 asdl_seq * seq;
22686 if (
22687 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
22688 &&
22689 (seq = _loop0_110_rule(p)) // _loop0_110
22690 )
22691 {
22692 D(fprintf(stderr, "%*c+ _gather_109[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_110"));
22693 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22694 goto done;
22695 }
22696 p->mark = _mark;
22697 D(fprintf(stderr, "%*c%s _gather_109[%d-%d]: %s failed!\n", p->level, ' ',
22698 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_110"));
22699 }
22700 _res = NULL;
22701 done:
22702 D(p->level--);
22703 return _res;
22704}
22705
22706// _loop0_112: ',' kwarg_or_double_starred
22707static asdl_seq *
22708_loop0_112_rule(Parser *p)
22709{
22710 D(p->level++);
22711 if (p->error_indicator) {
22712 D(p->level--);
22713 return NULL;
22714 }
22715 void *_res = NULL;
22716 int _mark = p->mark;
22717 int _start_mark = p->mark;
22718 void **_children = PyMem_Malloc(sizeof(void *));
22719 if (!_children) {
22720 p->error_indicator = 1;
22721 PyErr_NoMemory();
22722 D(p->level--);
22723 return NULL;
22724 }
22725 ssize_t _children_capacity = 1;
22726 ssize_t _n = 0;
22727 { // ',' kwarg_or_double_starred
22728 if (p->error_indicator) {
22729 D(p->level--);
22730 return NULL;
22731 }
22732 D(fprintf(stderr, "%*c> _loop0_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
22733 Token * _literal;
22734 KeywordOrStarred* elem;
22735 while (
22736 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22737 &&
22738 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
22739 )
22740 {
22741 _res = elem;
22742 if (_res == NULL && PyErr_Occurred()) {
22743 p->error_indicator = 1;
22744 PyMem_Free(_children);
22745 D(p->level--);
22746 return NULL;
22747 }
22748 if (_n == _children_capacity) {
22749 _children_capacity *= 2;
22750 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22751 if (!_new_children) {
22752 p->error_indicator = 1;
22753 PyErr_NoMemory();
22754 D(p->level--);
22755 return NULL;
22756 }
22757 _children = _new_children;
22758 }
22759 _children[_n++] = _res;
22760 _mark = p->mark;
22761 }
22762 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022763 D(fprintf(stderr, "%*c%s _loop0_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022764 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022765 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022766 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022767 if (!_seq) {
22768 PyMem_Free(_children);
22769 p->error_indicator = 1;
22770 PyErr_NoMemory();
22771 D(p->level--);
22772 return NULL;
22773 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022774 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022775 PyMem_Free(_children);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022776 _PyPegen_insert_memo(p, _start_mark, _loop0_112_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022777 D(p->level--);
22778 return _seq;
22779}
22780
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022781// _gather_111: kwarg_or_double_starred _loop0_112
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022782static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010022783_gather_111_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022784{
22785 D(p->level++);
22786 if (p->error_indicator) {
22787 D(p->level--);
22788 return NULL;
22789 }
22790 asdl_seq * _res = NULL;
22791 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022792 { // kwarg_or_double_starred _loop0_112
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022793 if (p->error_indicator) {
22794 D(p->level--);
22795 return NULL;
22796 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022797 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 +010022798 KeywordOrStarred* elem;
22799 asdl_seq * seq;
22800 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022801 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022802 &&
Pablo Galindo4a97b152020-09-02 17:44:19 +010022803 (seq = _loop0_112_rule(p)) // _loop0_112
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022804 )
22805 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022806 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 +010022807 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22808 goto done;
22809 }
22810 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022811 D(fprintf(stderr, "%*c%s _gather_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_112"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022813 }
22814 _res = NULL;
22815 done:
22816 D(p->level--);
22817 return _res;
22818}
22819
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022820// _loop0_114: ',' kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022821static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010022822_loop0_114_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022823{
22824 D(p->level++);
22825 if (p->error_indicator) {
22826 D(p->level--);
22827 return NULL;
22828 }
22829 void *_res = NULL;
22830 int _mark = p->mark;
22831 int _start_mark = p->mark;
22832 void **_children = PyMem_Malloc(sizeof(void *));
22833 if (!_children) {
22834 p->error_indicator = 1;
22835 PyErr_NoMemory();
22836 D(p->level--);
22837 return NULL;
22838 }
22839 ssize_t _children_capacity = 1;
22840 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022841 { // ',' kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022842 if (p->error_indicator) {
22843 D(p->level--);
22844 return NULL;
22845 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022846 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 +010022847 Token * _literal;
22848 KeywordOrStarred* elem;
22849 while (
22850 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22851 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022852 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022853 )
22854 {
22855 _res = elem;
22856 if (_res == NULL && PyErr_Occurred()) {
22857 p->error_indicator = 1;
22858 PyMem_Free(_children);
22859 D(p->level--);
22860 return NULL;
22861 }
22862 if (_n == _children_capacity) {
22863 _children_capacity *= 2;
22864 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22865 if (!_new_children) {
22866 p->error_indicator = 1;
22867 PyErr_NoMemory();
22868 D(p->level--);
22869 return NULL;
22870 }
22871 _children = _new_children;
22872 }
22873 _children[_n++] = _res;
22874 _mark = p->mark;
22875 }
22876 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022877 D(fprintf(stderr, "%*c%s _loop0_114[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022879 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022880 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022881 if (!_seq) {
22882 PyMem_Free(_children);
22883 p->error_indicator = 1;
22884 PyErr_NoMemory();
22885 D(p->level--);
22886 return NULL;
22887 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022888 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022889 PyMem_Free(_children);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022890 _PyPegen_insert_memo(p, _start_mark, _loop0_114_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022891 D(p->level--);
22892 return _seq;
22893}
22894
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022895// _gather_113: kwarg_or_starred _loop0_114
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022896static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010022897_gather_113_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022898{
22899 D(p->level++);
22900 if (p->error_indicator) {
22901 D(p->level--);
22902 return NULL;
22903 }
22904 asdl_seq * _res = NULL;
22905 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022906 { // kwarg_or_starred _loop0_114
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022907 if (p->error_indicator) {
22908 D(p->level--);
22909 return NULL;
22910 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022911 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 +010022912 KeywordOrStarred* elem;
22913 asdl_seq * seq;
22914 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022915 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022916 &&
Pablo Galindo4a97b152020-09-02 17:44:19 +010022917 (seq = _loop0_114_rule(p)) // _loop0_114
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022918 )
22919 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022920 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 +010022921 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22922 goto done;
22923 }
22924 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022925 D(fprintf(stderr, "%*c%s _gather_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_114"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022927 }
22928 _res = NULL;
22929 done:
22930 D(p->level--);
22931 return _res;
22932}
22933
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022934// _loop0_116: ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022935static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010022936_loop0_116_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022937{
22938 D(p->level++);
22939 if (p->error_indicator) {
22940 D(p->level--);
22941 return NULL;
22942 }
22943 void *_res = NULL;
22944 int _mark = p->mark;
22945 int _start_mark = p->mark;
22946 void **_children = PyMem_Malloc(sizeof(void *));
22947 if (!_children) {
22948 p->error_indicator = 1;
22949 PyErr_NoMemory();
22950 D(p->level--);
22951 return NULL;
22952 }
22953 ssize_t _children_capacity = 1;
22954 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022955 { // ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022956 if (p->error_indicator) {
22957 D(p->level--);
22958 return NULL;
22959 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022960 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 +010022961 Token * _literal;
22962 KeywordOrStarred* elem;
22963 while (
22964 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22965 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022966 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022967 )
22968 {
22969 _res = elem;
22970 if (_res == NULL && PyErr_Occurred()) {
22971 p->error_indicator = 1;
22972 PyMem_Free(_children);
22973 D(p->level--);
22974 return NULL;
22975 }
22976 if (_n == _children_capacity) {
22977 _children_capacity *= 2;
22978 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22979 if (!_new_children) {
22980 p->error_indicator = 1;
22981 PyErr_NoMemory();
22982 D(p->level--);
22983 return NULL;
22984 }
22985 _children = _new_children;
22986 }
22987 _children[_n++] = _res;
22988 _mark = p->mark;
22989 }
22990 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022991 D(fprintf(stderr, "%*c%s _loop0_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022992 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022993 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022994 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022995 if (!_seq) {
22996 PyMem_Free(_children);
22997 p->error_indicator = 1;
22998 PyErr_NoMemory();
22999 D(p->level--);
23000 return NULL;
23001 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023002 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023003 PyMem_Free(_children);
Pablo Galindo4a97b152020-09-02 17:44:19 +010023004 _PyPegen_insert_memo(p, _start_mark, _loop0_116_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023005 D(p->level--);
23006 return _seq;
23007}
23008
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023009// _gather_115: kwarg_or_double_starred _loop0_116
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023010static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010023011_gather_115_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023012{
23013 D(p->level++);
23014 if (p->error_indicator) {
23015 D(p->level--);
23016 return NULL;
23017 }
23018 asdl_seq * _res = NULL;
23019 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023020 { // kwarg_or_double_starred _loop0_116
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023021 if (p->error_indicator) {
23022 D(p->level--);
23023 return NULL;
23024 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023025 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 +010023026 KeywordOrStarred* elem;
23027 asdl_seq * seq;
23028 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023029 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023030 &&
Pablo Galindo4a97b152020-09-02 17:44:19 +010023031 (seq = _loop0_116_rule(p)) // _loop0_116
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023032 )
23033 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023034 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 +010023035 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23036 goto done;
23037 }
23038 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010023039 D(fprintf(stderr, "%*c%s _gather_115[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023040 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_116"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023041 }
23042 _res = NULL;
23043 done:
23044 D(p->level--);
23045 return _res;
23046}
23047
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023048// _loop0_117: (',' star_target)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023049static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023050_loop0_117_rule(Parser *p)
Pablo Galindo4a97b152020-09-02 17:44:19 +010023051{
23052 D(p->level++);
23053 if (p->error_indicator) {
23054 D(p->level--);
23055 return NULL;
23056 }
23057 void *_res = NULL;
23058 int _mark = p->mark;
23059 int _start_mark = p->mark;
23060 void **_children = PyMem_Malloc(sizeof(void *));
23061 if (!_children) {
23062 p->error_indicator = 1;
23063 PyErr_NoMemory();
23064 D(p->level--);
23065 return NULL;
23066 }
23067 ssize_t _children_capacity = 1;
23068 ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023069 { // (',' star_target)
23070 if (p->error_indicator) {
23071 D(p->level--);
23072 return NULL;
23073 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023074 D(fprintf(stderr, "%*c> _loop0_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000023075 void *_tmp_155_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023076 while (
Pablo Galindo58fb1562021-02-02 19:54:22 +000023077 (_tmp_155_var = _tmp_155_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023078 )
23079 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000023080 _res = _tmp_155_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023081 if (_n == _children_capacity) {
23082 _children_capacity *= 2;
23083 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23084 if (!_new_children) {
23085 p->error_indicator = 1;
23086 PyErr_NoMemory();
23087 D(p->level--);
23088 return NULL;
23089 }
23090 _children = _new_children;
23091 }
23092 _children[_n++] = _res;
23093 _mark = p->mark;
23094 }
23095 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023096 D(fprintf(stderr, "%*c%s _loop0_117[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023097 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
23098 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023099 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023100 if (!_seq) {
23101 PyMem_Free(_children);
23102 p->error_indicator = 1;
23103 PyErr_NoMemory();
23104 D(p->level--);
23105 return NULL;
23106 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023107 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023108 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023109 _PyPegen_insert_memo(p, _start_mark, _loop0_117_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023110 D(p->level--);
23111 return _seq;
23112}
23113
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023114// _loop0_119: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023115static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023116_loop0_119_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023117{
23118 D(p->level++);
23119 if (p->error_indicator) {
23120 D(p->level--);
23121 return NULL;
23122 }
23123 void *_res = NULL;
23124 int _mark = p->mark;
23125 int _start_mark = p->mark;
23126 void **_children = PyMem_Malloc(sizeof(void *));
23127 if (!_children) {
23128 p->error_indicator = 1;
23129 PyErr_NoMemory();
23130 D(p->level--);
23131 return NULL;
23132 }
23133 ssize_t _children_capacity = 1;
23134 ssize_t _n = 0;
23135 { // ',' star_target
23136 if (p->error_indicator) {
23137 D(p->level--);
23138 return NULL;
23139 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023140 D(fprintf(stderr, "%*c> _loop0_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023141 Token * _literal;
23142 expr_ty elem;
23143 while (
23144 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23145 &&
23146 (elem = star_target_rule(p)) // star_target
23147 )
23148 {
23149 _res = elem;
23150 if (_res == NULL && PyErr_Occurred()) {
23151 p->error_indicator = 1;
23152 PyMem_Free(_children);
23153 D(p->level--);
23154 return NULL;
23155 }
23156 if (_n == _children_capacity) {
23157 _children_capacity *= 2;
23158 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23159 if (!_new_children) {
23160 p->error_indicator = 1;
23161 PyErr_NoMemory();
23162 D(p->level--);
23163 return NULL;
23164 }
23165 _children = _new_children;
23166 }
23167 _children[_n++] = _res;
23168 _mark = p->mark;
23169 }
23170 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023171 D(fprintf(stderr, "%*c%s _loop0_119[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023172 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
23173 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023174 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023175 if (!_seq) {
23176 PyMem_Free(_children);
23177 p->error_indicator = 1;
23178 PyErr_NoMemory();
23179 D(p->level--);
23180 return NULL;
23181 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023182 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023183 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023184 _PyPegen_insert_memo(p, _start_mark, _loop0_119_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023185 D(p->level--);
23186 return _seq;
23187}
23188
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023189// _gather_118: star_target _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023190static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023191_gather_118_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023192{
23193 D(p->level++);
23194 if (p->error_indicator) {
23195 D(p->level--);
23196 return NULL;
23197 }
23198 asdl_seq * _res = NULL;
23199 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023200 { // star_target _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023201 if (p->error_indicator) {
23202 D(p->level--);
23203 return NULL;
23204 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023205 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 +010023206 expr_ty elem;
23207 asdl_seq * seq;
23208 if (
23209 (elem = star_target_rule(p)) // star_target
23210 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023211 (seq = _loop0_119_rule(p)) // _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023212 )
23213 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023214 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 +010023215 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23216 goto done;
23217 }
23218 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023219 D(fprintf(stderr, "%*c%s _gather_118[%d-%d]: %s failed!\n", p->level, ' ',
23220 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_119"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023221 }
23222 _res = NULL;
23223 done:
23224 D(p->level--);
23225 return _res;
23226}
23227
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023228// _loop1_120: (',' star_target)
23229static asdl_seq *
23230_loop1_120_rule(Parser *p)
23231{
23232 D(p->level++);
23233 if (p->error_indicator) {
23234 D(p->level--);
23235 return NULL;
23236 }
23237 void *_res = NULL;
23238 int _mark = p->mark;
23239 int _start_mark = p->mark;
23240 void **_children = PyMem_Malloc(sizeof(void *));
23241 if (!_children) {
23242 p->error_indicator = 1;
23243 PyErr_NoMemory();
23244 D(p->level--);
23245 return NULL;
23246 }
23247 ssize_t _children_capacity = 1;
23248 ssize_t _n = 0;
23249 { // (',' star_target)
23250 if (p->error_indicator) {
23251 D(p->level--);
23252 return NULL;
23253 }
23254 D(fprintf(stderr, "%*c> _loop1_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000023255 void *_tmp_156_var;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023256 while (
Pablo Galindo58fb1562021-02-02 19:54:22 +000023257 (_tmp_156_var = _tmp_156_rule(p)) // ',' star_target
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023258 )
23259 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000023260 _res = _tmp_156_var;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023261 if (_n == _children_capacity) {
23262 _children_capacity *= 2;
23263 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23264 if (!_new_children) {
23265 p->error_indicator = 1;
23266 PyErr_NoMemory();
23267 D(p->level--);
23268 return NULL;
23269 }
23270 _children = _new_children;
23271 }
23272 _children[_n++] = _res;
23273 _mark = p->mark;
23274 }
23275 p->mark = _mark;
23276 D(fprintf(stderr, "%*c%s _loop1_120[%d-%d]: %s failed!\n", p->level, ' ',
23277 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
23278 }
23279 if (_n == 0 || p->error_indicator) {
23280 PyMem_Free(_children);
23281 D(p->level--);
23282 return NULL;
23283 }
23284 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23285 if (!_seq) {
23286 PyMem_Free(_children);
23287 p->error_indicator = 1;
23288 PyErr_NoMemory();
23289 D(p->level--);
23290 return NULL;
23291 }
23292 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23293 PyMem_Free(_children);
23294 _PyPegen_insert_memo(p, _start_mark, _loop1_120_type, _seq);
23295 D(p->level--);
23296 return _seq;
23297}
23298
23299// _tmp_121: !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023300static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023301_tmp_121_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023302{
23303 D(p->level++);
23304 if (p->error_indicator) {
23305 D(p->level--);
23306 return NULL;
23307 }
23308 void * _res = NULL;
23309 int _mark = p->mark;
23310 { // !'*' star_target
23311 if (p->error_indicator) {
23312 D(p->level--);
23313 return NULL;
23314 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023315 D(fprintf(stderr, "%*c> _tmp_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023316 expr_ty star_target_var;
23317 if (
23318 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
23319 &&
23320 (star_target_var = star_target_rule(p)) // star_target
23321 )
23322 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023323 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 +010023324 _res = star_target_var;
23325 goto done;
23326 }
23327 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023328 D(fprintf(stderr, "%*c%s _tmp_121[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023329 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
23330 }
23331 _res = NULL;
23332 done:
23333 D(p->level--);
23334 return _res;
23335}
23336
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023337// _loop0_123: ',' del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023338static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023339_loop0_123_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023340{
23341 D(p->level++);
23342 if (p->error_indicator) {
23343 D(p->level--);
23344 return NULL;
23345 }
23346 void *_res = NULL;
23347 int _mark = p->mark;
23348 int _start_mark = p->mark;
23349 void **_children = PyMem_Malloc(sizeof(void *));
23350 if (!_children) {
23351 p->error_indicator = 1;
23352 PyErr_NoMemory();
23353 D(p->level--);
23354 return NULL;
23355 }
23356 ssize_t _children_capacity = 1;
23357 ssize_t _n = 0;
23358 { // ',' del_target
23359 if (p->error_indicator) {
23360 D(p->level--);
23361 return NULL;
23362 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023363 D(fprintf(stderr, "%*c> _loop0_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023364 Token * _literal;
23365 expr_ty elem;
23366 while (
23367 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23368 &&
23369 (elem = del_target_rule(p)) // del_target
23370 )
23371 {
23372 _res = elem;
23373 if (_res == NULL && PyErr_Occurred()) {
23374 p->error_indicator = 1;
23375 PyMem_Free(_children);
23376 D(p->level--);
23377 return NULL;
23378 }
23379 if (_n == _children_capacity) {
23380 _children_capacity *= 2;
23381 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23382 if (!_new_children) {
23383 p->error_indicator = 1;
23384 PyErr_NoMemory();
23385 D(p->level--);
23386 return NULL;
23387 }
23388 _children = _new_children;
23389 }
23390 _children[_n++] = _res;
23391 _mark = p->mark;
23392 }
23393 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023394 D(fprintf(stderr, "%*c%s _loop0_123[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023395 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
23396 }
23397 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23398 if (!_seq) {
23399 PyMem_Free(_children);
23400 p->error_indicator = 1;
23401 PyErr_NoMemory();
23402 D(p->level--);
23403 return NULL;
23404 }
23405 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23406 PyMem_Free(_children);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023407 _PyPegen_insert_memo(p, _start_mark, _loop0_123_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023408 D(p->level--);
23409 return _seq;
23410}
23411
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023412// _gather_122: del_target _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023413static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023414_gather_122_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023415{
23416 D(p->level++);
23417 if (p->error_indicator) {
23418 D(p->level--);
23419 return NULL;
23420 }
23421 asdl_seq * _res = NULL;
23422 int _mark = p->mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023423 { // del_target _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023424 if (p->error_indicator) {
23425 D(p->level--);
23426 return NULL;
23427 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023428 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 +000023429 expr_ty elem;
23430 asdl_seq * seq;
23431 if (
23432 (elem = del_target_rule(p)) // del_target
23433 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023434 (seq = _loop0_123_rule(p)) // _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023435 )
23436 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023437 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 +000023438 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23439 goto done;
23440 }
23441 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023442 D(fprintf(stderr, "%*c%s _gather_122[%d-%d]: %s failed!\n", p->level, ' ',
23443 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_123"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023444 }
23445 _res = NULL;
23446 done:
23447 D(p->level--);
23448 return _res;
23449}
23450
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023451// _loop0_125: ',' target
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023452static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023453_loop0_125_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023454{
23455 D(p->level++);
23456 if (p->error_indicator) {
23457 D(p->level--);
23458 return NULL;
23459 }
23460 void *_res = NULL;
23461 int _mark = p->mark;
23462 int _start_mark = p->mark;
23463 void **_children = PyMem_Malloc(sizeof(void *));
23464 if (!_children) {
23465 p->error_indicator = 1;
23466 PyErr_NoMemory();
23467 D(p->level--);
23468 return NULL;
23469 }
23470 ssize_t _children_capacity = 1;
23471 ssize_t _n = 0;
23472 { // ',' target
23473 if (p->error_indicator) {
23474 D(p->level--);
23475 return NULL;
23476 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023477 D(fprintf(stderr, "%*c> _loop0_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' target"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023478 Token * _literal;
23479 expr_ty elem;
23480 while (
23481 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23482 &&
23483 (elem = target_rule(p)) // target
23484 )
23485 {
23486 _res = elem;
23487 if (_res == NULL && PyErr_Occurred()) {
23488 p->error_indicator = 1;
23489 PyMem_Free(_children);
23490 D(p->level--);
23491 return NULL;
23492 }
23493 if (_n == _children_capacity) {
23494 _children_capacity *= 2;
23495 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23496 if (!_new_children) {
23497 p->error_indicator = 1;
23498 PyErr_NoMemory();
23499 D(p->level--);
23500 return NULL;
23501 }
23502 _children = _new_children;
23503 }
23504 _children[_n++] = _res;
23505 _mark = p->mark;
23506 }
23507 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023508 D(fprintf(stderr, "%*c%s _loop0_125[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023509 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023510 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023511 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023512 if (!_seq) {
23513 PyMem_Free(_children);
23514 p->error_indicator = 1;
23515 PyErr_NoMemory();
23516 D(p->level--);
23517 return NULL;
23518 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023519 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023520 PyMem_Free(_children);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023521 _PyPegen_insert_memo(p, _start_mark, _loop0_125_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023522 D(p->level--);
23523 return _seq;
23524}
23525
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023526// _gather_124: target _loop0_125
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023527static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023528_gather_124_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023529{
23530 D(p->level++);
23531 if (p->error_indicator) {
23532 D(p->level--);
23533 return NULL;
23534 }
23535 asdl_seq * _res = NULL;
23536 int _mark = p->mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023537 { // target _loop0_125
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023538 if (p->error_indicator) {
23539 D(p->level--);
23540 return NULL;
23541 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023542 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 +010023543 expr_ty elem;
23544 asdl_seq * seq;
23545 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023546 (elem = target_rule(p)) // target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023547 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023548 (seq = _loop0_125_rule(p)) // _loop0_125
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023549 )
23550 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023551 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 +010023552 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23553 goto done;
23554 }
23555 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023556 D(fprintf(stderr, "%*c%s _gather_124[%d-%d]: %s failed!\n", p->level, ' ',
23557 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target _loop0_125"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023558 }
23559 _res = NULL;
23560 done:
23561 D(p->level--);
23562 return _res;
23563}
23564
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023565// _tmp_126: args | expression for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023566static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023567_tmp_126_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023568{
23569 D(p->level++);
23570 if (p->error_indicator) {
23571 D(p->level--);
23572 return NULL;
23573 }
23574 void * _res = NULL;
23575 int _mark = p->mark;
23576 { // args
23577 if (p->error_indicator) {
23578 D(p->level--);
23579 return NULL;
23580 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023581 D(fprintf(stderr, "%*c> _tmp_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023582 expr_ty args_var;
23583 if (
23584 (args_var = args_rule(p)) // args
23585 )
23586 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023587 D(fprintf(stderr, "%*c+ _tmp_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023588 _res = args_var;
23589 goto done;
23590 }
23591 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023592 D(fprintf(stderr, "%*c%s _tmp_126[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023593 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
23594 }
23595 { // expression for_if_clauses
23596 if (p->error_indicator) {
23597 D(p->level--);
23598 return NULL;
23599 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023600 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 +010023601 expr_ty expression_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010023602 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023603 if (
23604 (expression_var = expression_rule(p)) // expression
23605 &&
23606 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
23607 )
23608 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023609 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 +010023610 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
23611 goto done;
23612 }
23613 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023614 D(fprintf(stderr, "%*c%s _tmp_126[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023615 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
23616 }
23617 _res = NULL;
23618 done:
23619 D(p->level--);
23620 return _res;
23621}
23622
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023623// _loop0_127: star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023624static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023625_loop0_127_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023626{
23627 D(p->level++);
23628 if (p->error_indicator) {
23629 D(p->level--);
23630 return NULL;
23631 }
23632 void *_res = NULL;
23633 int _mark = p->mark;
23634 int _start_mark = p->mark;
23635 void **_children = PyMem_Malloc(sizeof(void *));
23636 if (!_children) {
23637 p->error_indicator = 1;
23638 PyErr_NoMemory();
23639 D(p->level--);
23640 return NULL;
23641 }
23642 ssize_t _children_capacity = 1;
23643 ssize_t _n = 0;
23644 { // star_named_expressions
23645 if (p->error_indicator) {
23646 D(p->level--);
23647 return NULL;
23648 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023649 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 +010023650 asdl_expr_seq* star_named_expressions_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023651 while (
23652 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
23653 )
23654 {
23655 _res = star_named_expressions_var;
23656 if (_n == _children_capacity) {
23657 _children_capacity *= 2;
23658 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23659 if (!_new_children) {
23660 p->error_indicator = 1;
23661 PyErr_NoMemory();
23662 D(p->level--);
23663 return NULL;
23664 }
23665 _children = _new_children;
23666 }
23667 _children[_n++] = _res;
23668 _mark = p->mark;
23669 }
23670 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023671 D(fprintf(stderr, "%*c%s _loop0_127[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023672 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023673 }
23674 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23675 if (!_seq) {
23676 PyMem_Free(_children);
23677 p->error_indicator = 1;
23678 PyErr_NoMemory();
23679 D(p->level--);
23680 return NULL;
23681 }
23682 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23683 PyMem_Free(_children);
23684 _PyPegen_insert_memo(p, _start_mark, _loop0_127_type, _seq);
23685 D(p->level--);
23686 return _seq;
23687}
23688
23689// _loop0_128: (star_targets '=')
23690static asdl_seq *
23691_loop0_128_rule(Parser *p)
23692{
23693 D(p->level++);
23694 if (p->error_indicator) {
23695 D(p->level--);
23696 return NULL;
23697 }
23698 void *_res = NULL;
23699 int _mark = p->mark;
23700 int _start_mark = p->mark;
23701 void **_children = PyMem_Malloc(sizeof(void *));
23702 if (!_children) {
23703 p->error_indicator = 1;
23704 PyErr_NoMemory();
23705 D(p->level--);
23706 return NULL;
23707 }
23708 ssize_t _children_capacity = 1;
23709 ssize_t _n = 0;
23710 { // (star_targets '=')
23711 if (p->error_indicator) {
23712 D(p->level--);
23713 return NULL;
23714 }
23715 D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000023716 void *_tmp_157_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023717 while (
Pablo Galindo58fb1562021-02-02 19:54:22 +000023718 (_tmp_157_var = _tmp_157_rule(p)) // star_targets '='
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023719 )
23720 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000023721 _res = _tmp_157_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023722 if (_n == _children_capacity) {
23723 _children_capacity *= 2;
23724 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23725 if (!_new_children) {
23726 p->error_indicator = 1;
23727 PyErr_NoMemory();
23728 D(p->level--);
23729 return NULL;
23730 }
23731 _children = _new_children;
23732 }
23733 _children[_n++] = _res;
23734 _mark = p->mark;
23735 }
23736 p->mark = _mark;
23737 D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ',
23738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
23739 }
23740 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23741 if (!_seq) {
23742 PyMem_Free(_children);
23743 p->error_indicator = 1;
23744 PyErr_NoMemory();
23745 D(p->level--);
23746 return NULL;
23747 }
23748 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23749 PyMem_Free(_children);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030023750 _PyPegen_insert_memo(p, _start_mark, _loop0_128_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023751 D(p->level--);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030023752 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023753}
23754
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023755// _loop0_129: (star_targets '=')
23756static asdl_seq *
23757_loop0_129_rule(Parser *p)
23758{
23759 D(p->level++);
23760 if (p->error_indicator) {
23761 D(p->level--);
23762 return NULL;
23763 }
23764 void *_res = NULL;
23765 int _mark = p->mark;
23766 int _start_mark = p->mark;
23767 void **_children = PyMem_Malloc(sizeof(void *));
23768 if (!_children) {
23769 p->error_indicator = 1;
23770 PyErr_NoMemory();
23771 D(p->level--);
23772 return NULL;
23773 }
23774 ssize_t _children_capacity = 1;
23775 ssize_t _n = 0;
23776 { // (star_targets '=')
23777 if (p->error_indicator) {
23778 D(p->level--);
23779 return NULL;
23780 }
23781 D(fprintf(stderr, "%*c> _loop0_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000023782 void *_tmp_158_var;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023783 while (
Pablo Galindo58fb1562021-02-02 19:54:22 +000023784 (_tmp_158_var = _tmp_158_rule(p)) // star_targets '='
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023785 )
23786 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000023787 _res = _tmp_158_var;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023788 if (_n == _children_capacity) {
23789 _children_capacity *= 2;
23790 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23791 if (!_new_children) {
23792 p->error_indicator = 1;
23793 PyErr_NoMemory();
23794 D(p->level--);
23795 return NULL;
23796 }
23797 _children = _new_children;
23798 }
23799 _children[_n++] = _res;
23800 _mark = p->mark;
23801 }
23802 p->mark = _mark;
23803 D(fprintf(stderr, "%*c%s _loop0_129[%d-%d]: %s failed!\n", p->level, ' ',
23804 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
23805 }
23806 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23807 if (!_seq) {
23808 PyMem_Free(_children);
23809 p->error_indicator = 1;
23810 PyErr_NoMemory();
23811 D(p->level--);
23812 return NULL;
23813 }
23814 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23815 PyMem_Free(_children);
23816 _PyPegen_insert_memo(p, _start_mark, _loop0_129_type, _seq);
23817 D(p->level--);
23818 return _seq;
23819}
23820
23821// _tmp_130: yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023822static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023823_tmp_130_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023824{
23825 D(p->level++);
23826 if (p->error_indicator) {
23827 D(p->level--);
23828 return NULL;
23829 }
23830 void * _res = NULL;
23831 int _mark = p->mark;
23832 { // yield_expr
23833 if (p->error_indicator) {
23834 D(p->level--);
23835 return NULL;
23836 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023837 D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023838 expr_ty yield_expr_var;
23839 if (
23840 (yield_expr_var = yield_expr_rule(p)) // yield_expr
23841 )
23842 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023843 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 +010023844 _res = yield_expr_var;
23845 goto done;
23846 }
23847 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023848 D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023849 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
23850 }
23851 { // star_expressions
23852 if (p->error_indicator) {
23853 D(p->level--);
23854 return NULL;
23855 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023856 D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023857 expr_ty star_expressions_var;
23858 if (
23859 (star_expressions_var = star_expressions_rule(p)) // star_expressions
23860 )
23861 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023862 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 +010023863 _res = star_expressions_var;
23864 goto done;
23865 }
23866 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023867 D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023868 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
23869 }
23870 _res = NULL;
23871 done:
23872 D(p->level--);
23873 return _res;
23874}
23875
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023876// _tmp_131: '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023877static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023878_tmp_131_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023879{
23880 D(p->level++);
23881 if (p->error_indicator) {
23882 D(p->level--);
23883 return NULL;
23884 }
23885 void * _res = NULL;
23886 int _mark = p->mark;
23887 { // '['
23888 if (p->error_indicator) {
23889 D(p->level--);
23890 return NULL;
23891 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023892 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023893 Token * _literal;
23894 if (
23895 (_literal = _PyPegen_expect_token(p, 9)) // token='['
23896 )
23897 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023898 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023899 _res = _literal;
23900 goto done;
23901 }
23902 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023903 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023904 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
23905 }
23906 { // '('
23907 if (p->error_indicator) {
23908 D(p->level--);
23909 return NULL;
23910 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023911 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023912 Token * _literal;
23913 if (
23914 (_literal = _PyPegen_expect_token(p, 7)) // token='('
23915 )
23916 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023917 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023918 _res = _literal;
23919 goto done;
23920 }
23921 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023922 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023923 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
23924 }
23925 { // '{'
23926 if (p->error_indicator) {
23927 D(p->level--);
23928 return NULL;
23929 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023930 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023931 Token * _literal;
23932 if (
23933 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
23934 )
23935 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023936 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023937 _res = _literal;
23938 goto done;
23939 }
23940 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023941 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023942 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
23943 }
23944 _res = NULL;
23945 done:
23946 D(p->level--);
23947 return _res;
23948}
23949
Pablo Galindo835f14f2021-01-31 22:52:56 +000023950// _tmp_132: '[' | '{'
23951static void *
23952_tmp_132_rule(Parser *p)
23953{
23954 D(p->level++);
23955 if (p->error_indicator) {
23956 D(p->level--);
23957 return NULL;
23958 }
23959 void * _res = NULL;
23960 int _mark = p->mark;
23961 { // '['
23962 if (p->error_indicator) {
23963 D(p->level--);
23964 return NULL;
23965 }
23966 D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
23967 Token * _literal;
23968 if (
23969 (_literal = _PyPegen_expect_token(p, 9)) // token='['
23970 )
23971 {
23972 D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
23973 _res = _literal;
23974 goto done;
23975 }
23976 p->mark = _mark;
23977 D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
23978 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
23979 }
23980 { // '{'
23981 if (p->error_indicator) {
23982 D(p->level--);
23983 return NULL;
23984 }
23985 D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
23986 Token * _literal;
23987 if (
23988 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
23989 )
23990 {
23991 D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
23992 _res = _literal;
23993 goto done;
23994 }
23995 p->mark = _mark;
23996 D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
23997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
23998 }
23999 _res = NULL;
24000 done:
24001 D(p->level--);
24002 return _res;
24003}
24004
24005// _loop0_133: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024006static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000024007_loop0_133_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024008{
24009 D(p->level++);
24010 if (p->error_indicator) {
24011 D(p->level--);
24012 return NULL;
24013 }
24014 void *_res = NULL;
24015 int _mark = p->mark;
24016 int _start_mark = p->mark;
24017 void **_children = PyMem_Malloc(sizeof(void *));
24018 if (!_children) {
24019 p->error_indicator = 1;
24020 PyErr_NoMemory();
24021 D(p->level--);
24022 return NULL;
24023 }
24024 ssize_t _children_capacity = 1;
24025 ssize_t _n = 0;
24026 { // param_no_default
24027 if (p->error_indicator) {
24028 D(p->level--);
24029 return NULL;
24030 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024031 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 +010024032 arg_ty param_no_default_var;
24033 while (
24034 (param_no_default_var = param_no_default_rule(p)) // param_no_default
24035 )
24036 {
24037 _res = param_no_default_var;
24038 if (_n == _children_capacity) {
24039 _children_capacity *= 2;
24040 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24041 if (!_new_children) {
24042 p->error_indicator = 1;
24043 PyErr_NoMemory();
24044 D(p->level--);
24045 return NULL;
24046 }
24047 _children = _new_children;
24048 }
24049 _children[_n++] = _res;
24050 _mark = p->mark;
24051 }
24052 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024053 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024054 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
24055 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024056 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024057 if (!_seq) {
24058 PyMem_Free(_children);
24059 p->error_indicator = 1;
24060 PyErr_NoMemory();
24061 D(p->level--);
24062 return NULL;
24063 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024064 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024065 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000024066 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024067 D(p->level--);
24068 return _seq;
24069}
24070
Pablo Galindo835f14f2021-01-31 22:52:56 +000024071// _loop1_134: param_with_default
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024072static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000024073_loop1_134_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024074{
24075 D(p->level++);
24076 if (p->error_indicator) {
24077 D(p->level--);
24078 return NULL;
24079 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024080 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024081 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024082 int _start_mark = p->mark;
24083 void **_children = PyMem_Malloc(sizeof(void *));
24084 if (!_children) {
24085 p->error_indicator = 1;
24086 PyErr_NoMemory();
24087 D(p->level--);
24088 return NULL;
24089 }
24090 ssize_t _children_capacity = 1;
24091 ssize_t _n = 0;
24092 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024093 if (p->error_indicator) {
24094 D(p->level--);
24095 return NULL;
24096 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024097 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 +020024098 NameDefaultPair* param_with_default_var;
24099 while (
24100 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024101 )
24102 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024103 _res = param_with_default_var;
24104 if (_n == _children_capacity) {
24105 _children_capacity *= 2;
24106 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24107 if (!_new_children) {
24108 p->error_indicator = 1;
24109 PyErr_NoMemory();
24110 D(p->level--);
24111 return NULL;
24112 }
24113 _children = _new_children;
24114 }
24115 _children[_n++] = _res;
24116 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024117 }
24118 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024119 D(fprintf(stderr, "%*c%s _loop1_134[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024120 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024121 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024122 if (_n == 0 || p->error_indicator) {
24123 PyMem_Free(_children);
24124 D(p->level--);
24125 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024126 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024127 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24128 if (!_seq) {
24129 PyMem_Free(_children);
24130 p->error_indicator = 1;
24131 PyErr_NoMemory();
24132 D(p->level--);
24133 return NULL;
24134 }
24135 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24136 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000024137 _PyPegen_insert_memo(p, _start_mark, _loop1_134_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024138 D(p->level--);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024139 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024140}
24141
Pablo Galindo835f14f2021-01-31 22:52:56 +000024142// _loop0_135: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024143static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000024144_loop0_135_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024145{
24146 D(p->level++);
24147 if (p->error_indicator) {
24148 D(p->level--);
24149 return NULL;
24150 }
24151 void *_res = NULL;
24152 int _mark = p->mark;
24153 int _start_mark = p->mark;
24154 void **_children = PyMem_Malloc(sizeof(void *));
24155 if (!_children) {
24156 p->error_indicator = 1;
24157 PyErr_NoMemory();
24158 D(p->level--);
24159 return NULL;
24160 }
24161 ssize_t _children_capacity = 1;
24162 ssize_t _n = 0;
24163 { // lambda_param_no_default
24164 if (p->error_indicator) {
24165 D(p->level--);
24166 return NULL;
24167 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024168 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 +010024169 arg_ty lambda_param_no_default_var;
24170 while (
24171 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
24172 )
24173 {
24174 _res = lambda_param_no_default_var;
24175 if (_n == _children_capacity) {
24176 _children_capacity *= 2;
24177 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24178 if (!_new_children) {
24179 p->error_indicator = 1;
24180 PyErr_NoMemory();
24181 D(p->level--);
24182 return NULL;
24183 }
24184 _children = _new_children;
24185 }
24186 _children[_n++] = _res;
24187 _mark = p->mark;
24188 }
24189 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024190 D(fprintf(stderr, "%*c%s _loop0_135[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024191 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
24192 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024193 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024194 if (!_seq) {
24195 PyMem_Free(_children);
24196 p->error_indicator = 1;
24197 PyErr_NoMemory();
24198 D(p->level--);
24199 return NULL;
24200 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024201 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024202 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000024203 _PyPegen_insert_memo(p, _start_mark, _loop0_135_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024204 D(p->level--);
24205 return _seq;
24206}
24207
Pablo Galindo835f14f2021-01-31 22:52:56 +000024208// _loop1_136: lambda_param_with_default
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024209static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000024210_loop1_136_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024211{
24212 D(p->level++);
24213 if (p->error_indicator) {
24214 D(p->level--);
24215 return NULL;
24216 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024217 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024218 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024219 int _start_mark = p->mark;
24220 void **_children = PyMem_Malloc(sizeof(void *));
24221 if (!_children) {
24222 p->error_indicator = 1;
24223 PyErr_NoMemory();
24224 D(p->level--);
24225 return NULL;
24226 }
24227 ssize_t _children_capacity = 1;
24228 ssize_t _n = 0;
24229 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024230 if (p->error_indicator) {
24231 D(p->level--);
24232 return NULL;
24233 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024234 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 +020024235 NameDefaultPair* lambda_param_with_default_var;
24236 while (
24237 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024238 )
24239 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024240 _res = lambda_param_with_default_var;
24241 if (_n == _children_capacity) {
24242 _children_capacity *= 2;
24243 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24244 if (!_new_children) {
24245 p->error_indicator = 1;
24246 PyErr_NoMemory();
24247 D(p->level--);
24248 return NULL;
24249 }
24250 _children = _new_children;
24251 }
24252 _children[_n++] = _res;
24253 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024254 }
24255 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024256 D(fprintf(stderr, "%*c%s _loop1_136[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024257 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024258 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024259 if (_n == 0 || p->error_indicator) {
24260 PyMem_Free(_children);
24261 D(p->level--);
24262 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024263 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024264 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24265 if (!_seq) {
24266 PyMem_Free(_children);
24267 p->error_indicator = 1;
24268 PyErr_NoMemory();
24269 D(p->level--);
24270 return NULL;
24271 }
24272 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24273 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000024274 _PyPegen_insert_memo(p, _start_mark, _loop1_136_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024275 D(p->level--);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024276 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024277}
24278
Pablo Galindo835f14f2021-01-31 22:52:56 +000024279// _tmp_137: ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024280static void *
Pablo Galindo835f14f2021-01-31 22:52:56 +000024281_tmp_137_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024282{
24283 D(p->level++);
24284 if (p->error_indicator) {
24285 D(p->level--);
24286 return NULL;
24287 }
24288 void * _res = NULL;
24289 int _mark = p->mark;
24290 { // ')'
24291 if (p->error_indicator) {
24292 D(p->level--);
24293 return NULL;
24294 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024295 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024296 Token * _literal;
24297 if (
24298 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
24299 )
24300 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000024301 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024302 _res = _literal;
24303 goto done;
24304 }
24305 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024306 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024307 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
24308 }
24309 { // ',' (')' | '**')
24310 if (p->error_indicator) {
24311 D(p->level--);
24312 return NULL;
24313 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024314 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024315 Token * _literal;
Pablo Galindo58fb1562021-02-02 19:54:22 +000024316 void *_tmp_159_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024317 if (
24318 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24319 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +000024320 (_tmp_159_var = _tmp_159_rule(p)) // ')' | '**'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024321 )
24322 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000024323 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000024324 _res = _PyPegen_dummy_name(p, _literal, _tmp_159_var);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024325 goto done;
24326 }
24327 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024328 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024329 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
24330 }
24331 _res = NULL;
24332 done:
24333 D(p->level--);
24334 return _res;
24335}
24336
Pablo Galindo835f14f2021-01-31 22:52:56 +000024337// _tmp_138: ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024338static void *
Pablo Galindo835f14f2021-01-31 22:52:56 +000024339_tmp_138_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024340{
24341 D(p->level++);
24342 if (p->error_indicator) {
24343 D(p->level--);
24344 return NULL;
24345 }
24346 void * _res = NULL;
24347 int _mark = p->mark;
24348 { // ':'
24349 if (p->error_indicator) {
24350 D(p->level--);
24351 return NULL;
24352 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024353 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024354 Token * _literal;
24355 if (
24356 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
24357 )
24358 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000024359 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024360 _res = _literal;
24361 goto done;
24362 }
24363 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024364 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
24366 }
24367 { // ',' (':' | '**')
24368 if (p->error_indicator) {
24369 D(p->level--);
24370 return NULL;
24371 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024372 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024373 Token * _literal;
Pablo Galindo58fb1562021-02-02 19:54:22 +000024374 void *_tmp_160_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024375 if (
24376 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24377 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +000024378 (_tmp_160_var = _tmp_160_rule(p)) // ':' | '**'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024379 )
24380 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000024381 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000024382 _res = _PyPegen_dummy_name(p, _literal, _tmp_160_var);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024383 goto done;
24384 }
24385 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024386 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024387 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
24388 }
24389 _res = NULL;
24390 done:
24391 D(p->level--);
24392 return _res;
24393}
24394
Pablo Galindo58fb1562021-02-02 19:54:22 +000024395// _tmp_139: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024396static void *
Pablo Galindo835f14f2021-01-31 22:52:56 +000024397_tmp_139_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024398{
24399 D(p->level++);
24400 if (p->error_indicator) {
24401 D(p->level--);
24402 return NULL;
24403 }
24404 void * _res = NULL;
24405 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000024406 { // ','
24407 if (p->error_indicator) {
24408 D(p->level--);
24409 return NULL;
24410 }
24411 D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
24412 Token * _literal;
24413 if (
24414 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24415 )
24416 {
24417 D(fprintf(stderr, "%*c+ _tmp_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
24418 _res = _literal;
24419 goto done;
24420 }
24421 p->mark = _mark;
24422 D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
24423 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
24424 }
24425 { // ')'
24426 if (p->error_indicator) {
24427 D(p->level--);
24428 return NULL;
24429 }
24430 D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
24431 Token * _literal;
24432 if (
24433 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
24434 )
24435 {
24436 D(fprintf(stderr, "%*c+ _tmp_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
24437 _res = _literal;
24438 goto done;
24439 }
24440 p->mark = _mark;
24441 D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
24442 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
24443 }
24444 { // ':'
24445 if (p->error_indicator) {
24446 D(p->level--);
24447 return NULL;
24448 }
24449 D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
24450 Token * _literal;
24451 if (
24452 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
24453 )
24454 {
24455 D(fprintf(stderr, "%*c+ _tmp_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
24456 _res = _literal;
24457 goto done;
24458 }
24459 p->mark = _mark;
24460 D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
24461 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
24462 }
24463 _res = NULL;
24464 done:
24465 D(p->level--);
24466 return _res;
24467}
24468
24469// _loop0_141: ',' (expression ['as' star_target])
24470static asdl_seq *
24471_loop0_141_rule(Parser *p)
24472{
24473 D(p->level++);
24474 if (p->error_indicator) {
24475 D(p->level--);
24476 return NULL;
24477 }
24478 void *_res = NULL;
24479 int _mark = p->mark;
24480 int _start_mark = p->mark;
24481 void **_children = PyMem_Malloc(sizeof(void *));
24482 if (!_children) {
24483 p->error_indicator = 1;
24484 PyErr_NoMemory();
24485 D(p->level--);
24486 return NULL;
24487 }
24488 ssize_t _children_capacity = 1;
24489 ssize_t _n = 0;
24490 { // ',' (expression ['as' star_target])
24491 if (p->error_indicator) {
24492 D(p->level--);
24493 return NULL;
24494 }
24495 D(fprintf(stderr, "%*c> _loop0_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
24496 Token * _literal;
24497 void *elem;
24498 while (
24499 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24500 &&
24501 (elem = _tmp_161_rule(p)) // expression ['as' star_target]
24502 )
24503 {
24504 _res = elem;
24505 if (_res == NULL && PyErr_Occurred()) {
24506 p->error_indicator = 1;
24507 PyMem_Free(_children);
24508 D(p->level--);
24509 return NULL;
24510 }
24511 if (_n == _children_capacity) {
24512 _children_capacity *= 2;
24513 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24514 if (!_new_children) {
24515 p->error_indicator = 1;
24516 PyErr_NoMemory();
24517 D(p->level--);
24518 return NULL;
24519 }
24520 _children = _new_children;
24521 }
24522 _children[_n++] = _res;
24523 _mark = p->mark;
24524 }
24525 p->mark = _mark;
24526 D(fprintf(stderr, "%*c%s _loop0_141[%d-%d]: %s failed!\n", p->level, ' ',
24527 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
24528 }
24529 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24530 if (!_seq) {
24531 PyMem_Free(_children);
24532 p->error_indicator = 1;
24533 PyErr_NoMemory();
24534 D(p->level--);
24535 return NULL;
24536 }
24537 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24538 PyMem_Free(_children);
24539 _PyPegen_insert_memo(p, _start_mark, _loop0_141_type, _seq);
24540 D(p->level--);
24541 return _seq;
24542}
24543
24544// _gather_140: (expression ['as' star_target]) _loop0_141
24545static asdl_seq *
24546_gather_140_rule(Parser *p)
24547{
24548 D(p->level++);
24549 if (p->error_indicator) {
24550 D(p->level--);
24551 return NULL;
24552 }
24553 asdl_seq * _res = NULL;
24554 int _mark = p->mark;
24555 { // (expression ['as' star_target]) _loop0_141
24556 if (p->error_indicator) {
24557 D(p->level--);
24558 return NULL;
24559 }
24560 D(fprintf(stderr, "%*c> _gather_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_141"));
24561 void *elem;
24562 asdl_seq * seq;
24563 if (
24564 (elem = _tmp_161_rule(p)) // expression ['as' star_target]
24565 &&
24566 (seq = _loop0_141_rule(p)) // _loop0_141
24567 )
24568 {
24569 D(fprintf(stderr, "%*c+ _gather_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_141"));
24570 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24571 goto done;
24572 }
24573 p->mark = _mark;
24574 D(fprintf(stderr, "%*c%s _gather_140[%d-%d]: %s failed!\n", p->level, ' ',
24575 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_141"));
24576 }
24577 _res = NULL;
24578 done:
24579 D(p->level--);
24580 return _res;
24581}
24582
24583// _loop0_143: ',' (expressions ['as' star_target])
24584static asdl_seq *
24585_loop0_143_rule(Parser *p)
24586{
24587 D(p->level++);
24588 if (p->error_indicator) {
24589 D(p->level--);
24590 return NULL;
24591 }
24592 void *_res = NULL;
24593 int _mark = p->mark;
24594 int _start_mark = p->mark;
24595 void **_children = PyMem_Malloc(sizeof(void *));
24596 if (!_children) {
24597 p->error_indicator = 1;
24598 PyErr_NoMemory();
24599 D(p->level--);
24600 return NULL;
24601 }
24602 ssize_t _children_capacity = 1;
24603 ssize_t _n = 0;
24604 { // ',' (expressions ['as' star_target])
24605 if (p->error_indicator) {
24606 D(p->level--);
24607 return NULL;
24608 }
24609 D(fprintf(stderr, "%*c> _loop0_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
24610 Token * _literal;
24611 void *elem;
24612 while (
24613 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24614 &&
24615 (elem = _tmp_162_rule(p)) // expressions ['as' star_target]
24616 )
24617 {
24618 _res = elem;
24619 if (_res == NULL && PyErr_Occurred()) {
24620 p->error_indicator = 1;
24621 PyMem_Free(_children);
24622 D(p->level--);
24623 return NULL;
24624 }
24625 if (_n == _children_capacity) {
24626 _children_capacity *= 2;
24627 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24628 if (!_new_children) {
24629 p->error_indicator = 1;
24630 PyErr_NoMemory();
24631 D(p->level--);
24632 return NULL;
24633 }
24634 _children = _new_children;
24635 }
24636 _children[_n++] = _res;
24637 _mark = p->mark;
24638 }
24639 p->mark = _mark;
24640 D(fprintf(stderr, "%*c%s _loop0_143[%d-%d]: %s failed!\n", p->level, ' ',
24641 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
24642 }
24643 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24644 if (!_seq) {
24645 PyMem_Free(_children);
24646 p->error_indicator = 1;
24647 PyErr_NoMemory();
24648 D(p->level--);
24649 return NULL;
24650 }
24651 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24652 PyMem_Free(_children);
24653 _PyPegen_insert_memo(p, _start_mark, _loop0_143_type, _seq);
24654 D(p->level--);
24655 return _seq;
24656}
24657
24658// _gather_142: (expressions ['as' star_target]) _loop0_143
24659static asdl_seq *
24660_gather_142_rule(Parser *p)
24661{
24662 D(p->level++);
24663 if (p->error_indicator) {
24664 D(p->level--);
24665 return NULL;
24666 }
24667 asdl_seq * _res = NULL;
24668 int _mark = p->mark;
24669 { // (expressions ['as' star_target]) _loop0_143
24670 if (p->error_indicator) {
24671 D(p->level--);
24672 return NULL;
24673 }
24674 D(fprintf(stderr, "%*c> _gather_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_143"));
24675 void *elem;
24676 asdl_seq * seq;
24677 if (
24678 (elem = _tmp_162_rule(p)) // expressions ['as' star_target]
24679 &&
24680 (seq = _loop0_143_rule(p)) // _loop0_143
24681 )
24682 {
24683 D(fprintf(stderr, "%*c+ _gather_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_143"));
24684 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24685 goto done;
24686 }
24687 p->mark = _mark;
24688 D(fprintf(stderr, "%*c%s _gather_142[%d-%d]: %s failed!\n", p->level, ' ',
24689 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_143"));
24690 }
24691 _res = NULL;
24692 done:
24693 D(p->level--);
24694 return _res;
24695}
24696
24697// _tmp_144: star_targets '='
24698static void *
24699_tmp_144_rule(Parser *p)
24700{
24701 D(p->level++);
24702 if (p->error_indicator) {
24703 D(p->level--);
24704 return NULL;
24705 }
24706 void * _res = NULL;
24707 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024708 { // star_targets '='
24709 if (p->error_indicator) {
24710 D(p->level--);
24711 return NULL;
24712 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000024713 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024714 Token * _literal;
24715 expr_ty z;
24716 if (
24717 (z = star_targets_rule(p)) // star_targets
24718 &&
24719 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24720 )
24721 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000024722 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024723 _res = z;
24724 if (_res == NULL && PyErr_Occurred()) {
24725 p->error_indicator = 1;
24726 D(p->level--);
24727 return NULL;
24728 }
24729 goto done;
24730 }
24731 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000024732 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024733 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
24734 }
24735 _res = NULL;
24736 done:
24737 D(p->level--);
24738 return _res;
24739}
24740
Pablo Galindo58fb1562021-02-02 19:54:22 +000024741// _tmp_145: '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024742static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000024743_tmp_145_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024744{
24745 D(p->level++);
24746 if (p->error_indicator) {
24747 D(p->level--);
24748 return NULL;
24749 }
24750 void * _res = NULL;
24751 int _mark = p->mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024752 { // '.'
24753 if (p->error_indicator) {
24754 D(p->level--);
24755 return NULL;
24756 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000024757 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024758 Token * _literal;
24759 if (
24760 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24761 )
24762 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000024763 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024764 _res = _literal;
24765 goto done;
24766 }
24767 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000024768 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24770 }
24771 { // '...'
24772 if (p->error_indicator) {
24773 D(p->level--);
24774 return NULL;
24775 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000024776 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024777 Token * _literal;
24778 if (
24779 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
24780 )
24781 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000024782 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024783 _res = _literal;
24784 goto done;
24785 }
24786 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000024787 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024788 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
24789 }
24790 _res = NULL;
24791 done:
24792 D(p->level--);
24793 return _res;
24794}
24795
Pablo Galindo58fb1562021-02-02 19:54:22 +000024796// _tmp_146: '.' | '...'
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024797static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000024798_tmp_146_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024799{
24800 D(p->level++);
24801 if (p->error_indicator) {
24802 D(p->level--);
24803 return NULL;
24804 }
24805 void * _res = NULL;
24806 int _mark = p->mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024807 { // '.'
24808 if (p->error_indicator) {
24809 D(p->level--);
24810 return NULL;
24811 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000024812 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000024813 Token * _literal;
24814 if (
24815 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24816 )
24817 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000024818 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000024819 _res = _literal;
24820 goto done;
24821 }
24822 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000024823 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000024824 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24825 }
24826 { // '...'
24827 if (p->error_indicator) {
24828 D(p->level--);
24829 return NULL;
24830 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000024831 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000024832 Token * _literal;
24833 if (
24834 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
24835 )
24836 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000024837 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000024838 _res = _literal;
24839 goto done;
24840 }
24841 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000024842 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000024843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
24844 }
24845 _res = NULL;
24846 done:
24847 D(p->level--);
24848 return _res;
24849}
24850
Pablo Galindo58fb1562021-02-02 19:54:22 +000024851// _tmp_147: '@' named_expression NEWLINE
Pablo Galindo835f14f2021-01-31 22:52:56 +000024852static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000024853_tmp_147_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000024854{
24855 D(p->level++);
24856 if (p->error_indicator) {
24857 D(p->level--);
24858 return NULL;
24859 }
24860 void * _res = NULL;
24861 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024862 { // '@' named_expression NEWLINE
24863 if (p->error_indicator) {
24864 D(p->level--);
24865 return NULL;
24866 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000024867 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024868 Token * _literal;
24869 expr_ty f;
24870 Token * newline_var;
24871 if (
24872 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
24873 &&
24874 (f = named_expression_rule(p)) // named_expression
24875 &&
24876 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
24877 )
24878 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000024879 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024880 _res = f;
24881 if (_res == NULL && PyErr_Occurred()) {
24882 p->error_indicator = 1;
24883 D(p->level--);
24884 return NULL;
24885 }
24886 goto done;
24887 }
24888 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000024889 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024890 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
24891 }
24892 _res = NULL;
24893 done:
24894 D(p->level--);
24895 return _res;
24896}
24897
Pablo Galindo58fb1562021-02-02 19:54:22 +000024898// _tmp_148: ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024899static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000024900_tmp_148_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024901{
24902 D(p->level++);
24903 if (p->error_indicator) {
24904 D(p->level--);
24905 return NULL;
24906 }
24907 void * _res = NULL;
24908 int _mark = p->mark;
24909 { // ',' star_expression
24910 if (p->error_indicator) {
24911 D(p->level--);
24912 return NULL;
24913 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000024914 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024915 Token * _literal;
24916 expr_ty c;
24917 if (
24918 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24919 &&
24920 (c = star_expression_rule(p)) // star_expression
24921 )
24922 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000024923 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024924 _res = c;
24925 if (_res == NULL && PyErr_Occurred()) {
24926 p->error_indicator = 1;
24927 D(p->level--);
24928 return NULL;
24929 }
24930 goto done;
24931 }
24932 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000024933 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
24935 }
24936 _res = NULL;
24937 done:
24938 D(p->level--);
24939 return _res;
24940}
24941
Pablo Galindo58fb1562021-02-02 19:54:22 +000024942// _tmp_149: ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024943static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000024944_tmp_149_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024945{
24946 D(p->level++);
24947 if (p->error_indicator) {
24948 D(p->level--);
24949 return NULL;
24950 }
24951 void * _res = NULL;
24952 int _mark = p->mark;
24953 { // ',' expression
24954 if (p->error_indicator) {
24955 D(p->level--);
24956 return NULL;
24957 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000024958 D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024959 Token * _literal;
24960 expr_ty c;
24961 if (
24962 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24963 &&
24964 (c = expression_rule(p)) // expression
24965 )
24966 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000024967 D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024968 _res = c;
24969 if (_res == NULL && PyErr_Occurred()) {
24970 p->error_indicator = 1;
24971 D(p->level--);
24972 return NULL;
24973 }
24974 goto done;
24975 }
24976 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000024977 D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024978 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
24979 }
24980 _res = NULL;
24981 done:
24982 D(p->level--);
24983 return _res;
24984}
24985
Pablo Galindo58fb1562021-02-02 19:54:22 +000024986// _tmp_150: 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024987static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000024988_tmp_150_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024989{
24990 D(p->level++);
24991 if (p->error_indicator) {
24992 D(p->level--);
24993 return NULL;
24994 }
24995 void * _res = NULL;
24996 int _mark = p->mark;
24997 { // 'or' conjunction
24998 if (p->error_indicator) {
24999 D(p->level--);
25000 return NULL;
25001 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000025002 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025003 Token * _keyword;
25004 expr_ty c;
25005 if (
25006 (_keyword = _PyPegen_expect_token(p, 531)) // token='or'
25007 &&
25008 (c = conjunction_rule(p)) // conjunction
25009 )
25010 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000025011 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025012 _res = c;
25013 if (_res == NULL && PyErr_Occurred()) {
25014 p->error_indicator = 1;
25015 D(p->level--);
25016 return NULL;
25017 }
25018 goto done;
25019 }
25020 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000025021 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025022 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
25023 }
25024 _res = NULL;
25025 done:
25026 D(p->level--);
25027 return _res;
25028}
25029
Pablo Galindo58fb1562021-02-02 19:54:22 +000025030// _tmp_151: 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025031static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000025032_tmp_151_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025033{
25034 D(p->level++);
25035 if (p->error_indicator) {
25036 D(p->level--);
25037 return NULL;
25038 }
25039 void * _res = NULL;
25040 int _mark = p->mark;
25041 { // 'and' inversion
25042 if (p->error_indicator) {
25043 D(p->level--);
25044 return NULL;
25045 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000025046 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025047 Token * _keyword;
25048 expr_ty c;
25049 if (
25050 (_keyword = _PyPegen_expect_token(p, 532)) // token='and'
25051 &&
25052 (c = inversion_rule(p)) // inversion
25053 )
25054 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000025055 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025056 _res = c;
25057 if (_res == NULL && PyErr_Occurred()) {
25058 p->error_indicator = 1;
25059 D(p->level--);
25060 return NULL;
25061 }
25062 goto done;
25063 }
25064 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000025065 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000025066 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000025067 }
25068 _res = NULL;
25069 done:
25070 D(p->level--);
25071 return _res;
25072}
25073
Pablo Galindo58fb1562021-02-02 19:54:22 +000025074// _tmp_152: 'if' disjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025075static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000025076_tmp_152_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025077{
25078 D(p->level++);
25079 if (p->error_indicator) {
25080 D(p->level--);
25081 return NULL;
25082 }
25083 void * _res = NULL;
25084 int _mark = p->mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025085 { // 'if' disjunction
25086 if (p->error_indicator) {
25087 D(p->level--);
25088 return NULL;
25089 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000025090 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025091 Token * _keyword;
25092 expr_ty z;
25093 if (
25094 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
25095 &&
25096 (z = disjunction_rule(p)) // disjunction
25097 )
25098 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000025099 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025100 _res = z;
25101 if (_res == NULL && PyErr_Occurred()) {
25102 p->error_indicator = 1;
25103 D(p->level--);
25104 return NULL;
25105 }
25106 goto done;
25107 }
25108 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000025109 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025110 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
25111 }
25112 _res = NULL;
25113 done:
25114 D(p->level--);
25115 return _res;
25116}
25117
Pablo Galindo58fb1562021-02-02 19:54:22 +000025118// _tmp_153: 'if' disjunction
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025119static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000025120_tmp_153_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025121{
25122 D(p->level++);
25123 if (p->error_indicator) {
25124 D(p->level--);
25125 return NULL;
25126 }
25127 void * _res = NULL;
25128 int _mark = p->mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000025129 { // 'if' disjunction
25130 if (p->error_indicator) {
25131 D(p->level--);
25132 return NULL;
25133 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000025134 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000025135 Token * _keyword;
25136 expr_ty z;
25137 if (
25138 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
25139 &&
25140 (z = disjunction_rule(p)) // disjunction
25141 )
25142 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000025143 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000025144 _res = z;
25145 if (_res == NULL && PyErr_Occurred()) {
25146 p->error_indicator = 1;
25147 D(p->level--);
25148 return NULL;
25149 }
25150 goto done;
25151 }
25152 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000025153 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000025154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
25155 }
25156 _res = NULL;
25157 done:
25158 D(p->level--);
25159 return _res;
25160}
25161
Pablo Galindo58fb1562021-02-02 19:54:22 +000025162// _tmp_154: starred_expression | named_expression !'='
Pablo Galindo835f14f2021-01-31 22:52:56 +000025163static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000025164_tmp_154_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000025165{
25166 D(p->level++);
25167 if (p->error_indicator) {
25168 D(p->level--);
25169 return NULL;
25170 }
25171 void * _res = NULL;
25172 int _mark = p->mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010025173 { // starred_expression
25174 if (p->error_indicator) {
25175 D(p->level--);
25176 return NULL;
25177 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000025178 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010025179 expr_ty starred_expression_var;
25180 if (
25181 (starred_expression_var = starred_expression_rule(p)) // starred_expression
25182 )
25183 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000025184 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010025185 _res = starred_expression_var;
25186 goto done;
25187 }
25188 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000025189 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010025190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
25191 }
25192 { // named_expression !'='
25193 if (p->error_indicator) {
25194 D(p->level--);
25195 return NULL;
25196 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000025197 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010025198 expr_ty named_expression_var;
25199 if (
25200 (named_expression_var = named_expression_rule(p)) // named_expression
25201 &&
25202 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
25203 )
25204 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000025205 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010025206 _res = named_expression_var;
25207 goto done;
25208 }
25209 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000025210 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000025211 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression !'='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025212 }
25213 _res = NULL;
25214 done:
25215 D(p->level--);
25216 return _res;
25217}
25218
Pablo Galindo58fb1562021-02-02 19:54:22 +000025219// _tmp_155: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025220static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000025221_tmp_155_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025222{
25223 D(p->level++);
25224 if (p->error_indicator) {
25225 D(p->level--);
25226 return NULL;
25227 }
25228 void * _res = NULL;
25229 int _mark = p->mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025230 { // ',' star_target
25231 if (p->error_indicator) {
25232 D(p->level--);
25233 return NULL;
25234 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000025235 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025236 Token * _literal;
25237 expr_ty c;
25238 if (
25239 (_literal = _PyPegen_expect_token(p, 12)) // token=','
25240 &&
25241 (c = star_target_rule(p)) // star_target
25242 )
25243 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000025244 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025245 _res = c;
25246 if (_res == NULL && PyErr_Occurred()) {
25247 p->error_indicator = 1;
25248 D(p->level--);
25249 return NULL;
25250 }
25251 goto done;
25252 }
25253 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000025254 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025255 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
25256 }
25257 _res = NULL;
25258 done:
25259 D(p->level--);
25260 return _res;
25261}
25262
Pablo Galindo58fb1562021-02-02 19:54:22 +000025263// _tmp_156: ',' star_target
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025264static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000025265_tmp_156_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025266{
25267 D(p->level++);
25268 if (p->error_indicator) {
25269 D(p->level--);
25270 return NULL;
25271 }
25272 void * _res = NULL;
25273 int _mark = p->mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000025274 { // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025275 if (p->error_indicator) {
25276 D(p->level--);
25277 return NULL;
25278 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000025279 D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025280 Token * _literal;
Pablo Galindo835f14f2021-01-31 22:52:56 +000025281 expr_ty c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025282 if (
Pablo Galindo835f14f2021-01-31 22:52:56 +000025283 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025284 &&
Pablo Galindo835f14f2021-01-31 22:52:56 +000025285 (c = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025286 )
25287 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000025288 D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000025289 _res = c;
25290 if (_res == NULL && PyErr_Occurred()) {
25291 p->error_indicator = 1;
25292 D(p->level--);
25293 return NULL;
25294 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025295 goto done;
25296 }
25297 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000025298 D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000025299 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025300 }
25301 _res = NULL;
25302 done:
25303 D(p->level--);
25304 return _res;
25305}
25306
Pablo Galindo58fb1562021-02-02 19:54:22 +000025307// _tmp_157: star_targets '='
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025308static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000025309_tmp_157_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025310{
25311 D(p->level++);
25312 if (p->error_indicator) {
25313 D(p->level--);
25314 return NULL;
25315 }
25316 void * _res = NULL;
25317 int _mark = p->mark;
25318 { // star_targets '='
25319 if (p->error_indicator) {
25320 D(p->level--);
25321 return NULL;
25322 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000025323 D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025324 Token * _literal;
25325 expr_ty star_targets_var;
25326 if (
25327 (star_targets_var = star_targets_rule(p)) // star_targets
25328 &&
25329 (_literal = _PyPegen_expect_token(p, 22)) // token='='
25330 )
25331 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000025332 D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025333 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
25334 goto done;
25335 }
25336 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000025337 D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020025338 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
25339 }
25340 _res = NULL;
25341 done:
25342 D(p->level--);
25343 return _res;
25344}
25345
Pablo Galindo58fb1562021-02-02 19:54:22 +000025346// _tmp_158: star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025347static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000025348_tmp_158_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025349{
25350 D(p->level++);
25351 if (p->error_indicator) {
25352 D(p->level--);
25353 return NULL;
25354 }
25355 void * _res = NULL;
25356 int _mark = p->mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000025357 { // star_targets '='
25358 if (p->error_indicator) {
25359 D(p->level--);
25360 return NULL;
25361 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000025362 D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000025363 Token * _literal;
25364 expr_ty star_targets_var;
25365 if (
25366 (star_targets_var = star_targets_rule(p)) // star_targets
25367 &&
25368 (_literal = _PyPegen_expect_token(p, 22)) // token='='
25369 )
25370 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000025371 D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000025372 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
25373 goto done;
25374 }
25375 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000025376 D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000025377 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
25378 }
25379 _res = NULL;
25380 done:
25381 D(p->level--);
25382 return _res;
25383}
25384
Pablo Galindo58fb1562021-02-02 19:54:22 +000025385// _tmp_159: ')' | '**'
Pablo Galindo835f14f2021-01-31 22:52:56 +000025386static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000025387_tmp_159_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000025388{
25389 D(p->level++);
25390 if (p->error_indicator) {
25391 D(p->level--);
25392 return NULL;
25393 }
25394 void * _res = NULL;
25395 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025396 { // ')'
25397 if (p->error_indicator) {
25398 D(p->level--);
25399 return NULL;
25400 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000025401 D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025402 Token * _literal;
25403 if (
25404 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
25405 )
25406 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000025407 D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025408 _res = _literal;
25409 goto done;
25410 }
25411 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000025412 D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000025413 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025414 }
25415 { // '**'
25416 if (p->error_indicator) {
25417 D(p->level--);
25418 return NULL;
25419 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000025420 D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025421 Token * _literal;
25422 if (
25423 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
25424 )
25425 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000025426 D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025427 _res = _literal;
25428 goto done;
25429 }
25430 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000025431 D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025432 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
25433 }
25434 _res = NULL;
25435 done:
25436 D(p->level--);
25437 return _res;
25438}
25439
Pablo Galindo58fb1562021-02-02 19:54:22 +000025440// _tmp_160: ':' | '**'
Pablo Galindo835f14f2021-01-31 22:52:56 +000025441static void *
Pablo Galindo58fb1562021-02-02 19:54:22 +000025442_tmp_160_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000025443{
25444 D(p->level++);
25445 if (p->error_indicator) {
25446 D(p->level--);
25447 return NULL;
25448 }
25449 void * _res = NULL;
25450 int _mark = p->mark;
25451 { // ':'
25452 if (p->error_indicator) {
25453 D(p->level--);
25454 return NULL;
25455 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000025456 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000025457 Token * _literal;
25458 if (
25459 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
25460 )
25461 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000025462 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000025463 _res = _literal;
25464 goto done;
25465 }
25466 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000025467 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000025468 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
25469 }
25470 { // '**'
25471 if (p->error_indicator) {
25472 D(p->level--);
25473 return NULL;
25474 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000025475 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000025476 Token * _literal;
25477 if (
25478 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
25479 )
25480 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000025481 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000025482 _res = _literal;
25483 goto done;
25484 }
25485 p->mark = _mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000025486 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000025487 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
25488 }
25489 _res = NULL;
25490 done:
25491 D(p->level--);
25492 return _res;
25493}
25494
Pablo Galindo58fb1562021-02-02 19:54:22 +000025495// _tmp_161: expression ['as' star_target]
25496static void *
25497_tmp_161_rule(Parser *p)
25498{
25499 D(p->level++);
25500 if (p->error_indicator) {
25501 D(p->level--);
25502 return NULL;
25503 }
25504 void * _res = NULL;
25505 int _mark = p->mark;
25506 { // expression ['as' star_target]
25507 if (p->error_indicator) {
25508 D(p->level--);
25509 return NULL;
25510 }
25511 D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
25512 void *_opt_var;
25513 UNUSED(_opt_var); // Silence compiler warnings
25514 expr_ty expression_var;
25515 if (
25516 (expression_var = expression_rule(p)) // expression
25517 &&
25518 (_opt_var = _tmp_163_rule(p), 1) // ['as' star_target]
25519 )
25520 {
25521 D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
25522 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
25523 goto done;
25524 }
25525 p->mark = _mark;
25526 D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ',
25527 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
25528 }
25529 _res = NULL;
25530 done:
25531 D(p->level--);
25532 return _res;
25533}
25534
25535// _tmp_162: expressions ['as' star_target]
25536static void *
25537_tmp_162_rule(Parser *p)
25538{
25539 D(p->level++);
25540 if (p->error_indicator) {
25541 D(p->level--);
25542 return NULL;
25543 }
25544 void * _res = NULL;
25545 int _mark = p->mark;
25546 { // expressions ['as' star_target]
25547 if (p->error_indicator) {
25548 D(p->level--);
25549 return NULL;
25550 }
25551 D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
25552 void *_opt_var;
25553 UNUSED(_opt_var); // Silence compiler warnings
25554 expr_ty expressions_var;
25555 if (
25556 (expressions_var = expressions_rule(p)) // expressions
25557 &&
25558 (_opt_var = _tmp_164_rule(p), 1) // ['as' star_target]
25559 )
25560 {
25561 D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
25562 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
25563 goto done;
25564 }
25565 p->mark = _mark;
25566 D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ',
25567 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
25568 }
25569 _res = NULL;
25570 done:
25571 D(p->level--);
25572 return _res;
25573}
25574
25575// _tmp_163: 'as' star_target
25576static void *
25577_tmp_163_rule(Parser *p)
25578{
25579 D(p->level++);
25580 if (p->error_indicator) {
25581 D(p->level--);
25582 return NULL;
25583 }
25584 void * _res = NULL;
25585 int _mark = p->mark;
25586 { // 'as' star_target
25587 if (p->error_indicator) {
25588 D(p->level--);
25589 return NULL;
25590 }
25591 D(fprintf(stderr, "%*c> _tmp_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
25592 Token * _keyword;
25593 expr_ty star_target_var;
25594 if (
25595 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
25596 &&
25597 (star_target_var = star_target_rule(p)) // star_target
25598 )
25599 {
25600 D(fprintf(stderr, "%*c+ _tmp_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
25601 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
25602 goto done;
25603 }
25604 p->mark = _mark;
25605 D(fprintf(stderr, "%*c%s _tmp_163[%d-%d]: %s failed!\n", p->level, ' ',
25606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
25607 }
25608 _res = NULL;
25609 done:
25610 D(p->level--);
25611 return _res;
25612}
25613
25614// _tmp_164: 'as' star_target
25615static void *
25616_tmp_164_rule(Parser *p)
25617{
25618 D(p->level++);
25619 if (p->error_indicator) {
25620 D(p->level--);
25621 return NULL;
25622 }
25623 void * _res = NULL;
25624 int _mark = p->mark;
25625 { // 'as' star_target
25626 if (p->error_indicator) {
25627 D(p->level--);
25628 return NULL;
25629 }
25630 D(fprintf(stderr, "%*c> _tmp_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
25631 Token * _keyword;
25632 expr_ty star_target_var;
25633 if (
25634 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
25635 &&
25636 (star_target_var = star_target_rule(p)) // star_target
25637 )
25638 {
25639 D(fprintf(stderr, "%*c+ _tmp_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
25640 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
25641 goto done;
25642 }
25643 p->mark = _mark;
25644 D(fprintf(stderr, "%*c%s _tmp_164[%d-%d]: %s failed!\n", p->level, ' ',
25645 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
25646 }
25647 _res = NULL;
25648 done:
25649 D(p->level--);
25650 return _res;
25651}
25652
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025653void *
25654_PyPegen_parse(Parser *p)
25655{
25656 // Initialize keywords
25657 p->keywords = reserved_keywords;
25658 p->n_keyword_lists = n_keyword_lists;
25659
25660 // Run parser
25661 void *result = NULL;
25662 if (p->start_rule == Py_file_input) {
25663 result = file_rule(p);
25664 } else if (p->start_rule == Py_single_input) {
25665 result = interactive_rule(p);
25666 } else if (p->start_rule == Py_eval_input) {
25667 result = eval_rule(p);
25668 } else if (p->start_rule == Py_func_type_input) {
25669 result = func_type_rule(p);
25670 } else if (p->start_rule == Py_fstring_input) {
25671 result = fstring_rule(p);
25672 }
25673
25674 return result;
25675}
25676
25677// The end