blob: d333accf71ccafebf0c9b65d374829cac3cd2f75 [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
234#define _loop0_1_type 1165
235#define _loop0_2_type 1166
236#define _loop0_4_type 1167
237#define _gather_3_type 1168
238#define _loop0_6_type 1169
239#define _gather_5_type 1170
240#define _loop0_8_type 1171
241#define _gather_7_type 1172
242#define _loop0_10_type 1173
243#define _gather_9_type 1174
244#define _loop1_11_type 1175
245#define _loop0_13_type 1176
246#define _gather_12_type 1177
247#define _tmp_14_type 1178
248#define _tmp_15_type 1179
249#define _tmp_16_type 1180
250#define _tmp_17_type 1181
251#define _tmp_18_type 1182
252#define _tmp_19_type 1183
253#define _tmp_20_type 1184
254#define _tmp_21_type 1185
255#define _loop1_22_type 1186
256#define _tmp_23_type 1187
257#define _tmp_24_type 1188
258#define _loop0_26_type 1189
259#define _gather_25_type 1190
260#define _loop0_28_type 1191
261#define _gather_27_type 1192
262#define _tmp_29_type 1193
263#define _tmp_30_type 1194
264#define _loop0_31_type 1195
265#define _loop1_32_type 1196
266#define _loop0_34_type 1197
267#define _gather_33_type 1198
268#define _tmp_35_type 1199
269#define _loop0_37_type 1200
270#define _gather_36_type 1201
271#define _tmp_38_type 1202
272#define _loop0_40_type 1203
273#define _gather_39_type 1204
274#define _loop0_42_type 1205
275#define _gather_41_type 1206
276#define _loop0_44_type 1207
277#define _gather_43_type 1208
278#define _loop0_46_type 1209
279#define _gather_45_type 1210
280#define _tmp_47_type 1211
281#define _loop1_48_type 1212
282#define _tmp_49_type 1213
283#define _tmp_50_type 1214
284#define _tmp_51_type 1215
285#define _tmp_52_type 1216
286#define _tmp_53_type 1217
287#define _loop0_54_type 1218
288#define _loop0_55_type 1219
289#define _loop0_56_type 1220
290#define _loop1_57_type 1221
291#define _loop0_58_type 1222
292#define _loop1_59_type 1223
293#define _loop1_60_type 1224
294#define _loop1_61_type 1225
295#define _loop0_62_type 1226
296#define _loop1_63_type 1227
297#define _loop0_64_type 1228
298#define _loop1_65_type 1229
299#define _loop0_66_type 1230
300#define _loop1_67_type 1231
301#define _loop1_68_type 1232
302#define _tmp_69_type 1233
303#define _loop1_70_type 1234
304#define _loop0_72_type 1235
305#define _gather_71_type 1236
306#define _loop1_73_type 1237
307#define _loop0_74_type 1238
308#define _loop0_75_type 1239
309#define _loop0_76_type 1240
310#define _loop1_77_type 1241
311#define _loop0_78_type 1242
312#define _loop1_79_type 1243
313#define _loop1_80_type 1244
314#define _loop1_81_type 1245
315#define _loop0_82_type 1246
316#define _loop1_83_type 1247
317#define _loop0_84_type 1248
318#define _loop1_85_type 1249
319#define _loop0_86_type 1250
320#define _loop1_87_type 1251
321#define _loop1_88_type 1252
322#define _loop1_89_type 1253
323#define _loop1_90_type 1254
324#define _tmp_91_type 1255
325#define _loop0_93_type 1256
326#define _gather_92_type 1257
327#define _tmp_94_type 1258
328#define _tmp_95_type 1259
329#define _tmp_96_type 1260
330#define _tmp_97_type 1261
331#define _loop1_98_type 1262
332#define _tmp_99_type 1263
333#define _tmp_100_type 1264
334#define _loop0_102_type 1265
335#define _gather_101_type 1266
336#define _loop1_103_type 1267
337#define _loop0_104_type 1268
338#define _loop0_105_type 1269
339#define _loop0_107_type 1270
340#define _gather_106_type 1271
341#define _tmp_108_type 1272
342#define _loop0_110_type 1273
343#define _gather_109_type 1274
344#define _loop0_112_type 1275
345#define _gather_111_type 1276
346#define _loop0_114_type 1277
347#define _gather_113_type 1278
348#define _loop0_116_type 1279
349#define _gather_115_type 1280
350#define _loop0_117_type 1281
351#define _loop0_119_type 1282
352#define _gather_118_type 1283
353#define _loop1_120_type 1284
354#define _tmp_121_type 1285
355#define _loop0_123_type 1286
356#define _gather_122_type 1287
357#define _loop0_125_type 1288
358#define _gather_124_type 1289
359#define _tmp_126_type 1290
360#define _loop0_127_type 1291
361#define _loop0_128_type 1292
362#define _loop0_129_type 1293
363#define _tmp_130_type 1294
364#define _tmp_131_type 1295
Pablo Galindo835f14f2021-01-31 22:52:56 +0000365#define _tmp_132_type 1296
366#define _loop0_133_type 1297
367#define _loop1_134_type 1298
368#define _loop0_135_type 1299
369#define _loop1_136_type 1300
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200370#define _tmp_137_type 1301
371#define _tmp_138_type 1302
372#define _tmp_139_type 1303
373#define _tmp_140_type 1304
374#define _tmp_141_type 1305
375#define _tmp_142_type 1306
376#define _tmp_143_type 1307
377#define _tmp_144_type 1308
378#define _tmp_145_type 1309
379#define _tmp_146_type 1310
380#define _tmp_147_type 1311
381#define _tmp_148_type 1312
382#define _tmp_149_type 1313
383#define _tmp_150_type 1314
384#define _tmp_151_type 1315
385#define _tmp_152_type 1316
386#define _tmp_153_type 1317
387#define _tmp_154_type 1318
Pablo Galindo835f14f2021-01-31 22:52:56 +0000388#define _tmp_155_type 1319
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100389
390static mod_ty file_rule(Parser *p);
391static mod_ty interactive_rule(Parser *p);
392static mod_ty eval_rule(Parser *p);
393static mod_ty func_type_rule(Parser *p);
394static expr_ty fstring_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100395static asdl_expr_seq* type_expressions_rule(Parser *p);
396static asdl_stmt_seq* statements_rule(Parser *p);
397static asdl_stmt_seq* statement_rule(Parser *p);
398static asdl_stmt_seq* statement_newline_rule(Parser *p);
Pablo Galindo9bdc40e2020-11-30 19:42:38 +0000399static asdl_stmt_seq* simple_stmts_rule(Parser *p);
400static stmt_ty simple_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100401static stmt_ty compound_stmt_rule(Parser *p);
402static stmt_ty assignment_rule(Parser *p);
403static AugOperator* augassign_rule(Parser *p);
404static stmt_ty global_stmt_rule(Parser *p);
405static stmt_ty nonlocal_stmt_rule(Parser *p);
406static stmt_ty yield_stmt_rule(Parser *p);
407static stmt_ty assert_stmt_rule(Parser *p);
408static stmt_ty del_stmt_rule(Parser *p);
409static stmt_ty import_stmt_rule(Parser *p);
410static stmt_ty import_name_rule(Parser *p);
411static stmt_ty import_from_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100412static asdl_alias_seq* import_from_targets_rule(Parser *p);
413static asdl_alias_seq* import_from_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100414static alias_ty import_from_as_name_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100415static asdl_alias_seq* dotted_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100416static alias_ty dotted_as_name_rule(Parser *p);
417static expr_ty dotted_name_rule(Parser *p);
418static stmt_ty if_stmt_rule(Parser *p);
419static stmt_ty elif_stmt_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100420static asdl_stmt_seq* else_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100421static stmt_ty while_stmt_rule(Parser *p);
422static stmt_ty for_stmt_rule(Parser *p);
423static stmt_ty with_stmt_rule(Parser *p);
424static withitem_ty with_item_rule(Parser *p);
425static stmt_ty try_stmt_rule(Parser *p);
426static excepthandler_ty except_block_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100427static asdl_stmt_seq* finally_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100428static stmt_ty return_stmt_rule(Parser *p);
429static stmt_ty raise_stmt_rule(Parser *p);
430static stmt_ty function_def_rule(Parser *p);
431static stmt_ty function_def_raw_rule(Parser *p);
432static Token* func_type_comment_rule(Parser *p);
433static arguments_ty params_rule(Parser *p);
434static arguments_ty parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100435static asdl_arg_seq* slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100436static SlashWithDefault* slash_with_default_rule(Parser *p);
437static StarEtc* star_etc_rule(Parser *p);
438static arg_ty kwds_rule(Parser *p);
439static arg_ty param_no_default_rule(Parser *p);
440static NameDefaultPair* param_with_default_rule(Parser *p);
441static NameDefaultPair* param_maybe_default_rule(Parser *p);
442static arg_ty param_rule(Parser *p);
443static expr_ty annotation_rule(Parser *p);
444static expr_ty default_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100445static asdl_expr_seq* decorators_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100446static stmt_ty class_def_rule(Parser *p);
447static stmt_ty class_def_raw_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100448static asdl_stmt_seq* block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100449static expr_ty star_expressions_rule(Parser *p);
450static expr_ty star_expression_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100451static asdl_expr_seq* star_named_expressions_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100452static expr_ty star_named_expression_rule(Parser *p);
453static expr_ty named_expression_rule(Parser *p);
454static expr_ty annotated_rhs_rule(Parser *p);
455static expr_ty expressions_rule(Parser *p);
456static expr_ty expression_rule(Parser *p);
457static expr_ty lambdef_rule(Parser *p);
458static arguments_ty lambda_params_rule(Parser *p);
459static arguments_ty lambda_parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100460static asdl_arg_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100461static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
462static StarEtc* lambda_star_etc_rule(Parser *p);
463static arg_ty lambda_kwds_rule(Parser *p);
464static arg_ty lambda_param_no_default_rule(Parser *p);
465static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
466static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
467static arg_ty lambda_param_rule(Parser *p);
468static expr_ty disjunction_rule(Parser *p);
469static expr_ty conjunction_rule(Parser *p);
470static expr_ty inversion_rule(Parser *p);
471static expr_ty comparison_rule(Parser *p);
472static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
473static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
474static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
475static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
476static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
477static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
478static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
479static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
480static CmpopExprPair* in_bitwise_or_rule(Parser *p);
481static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
482static CmpopExprPair* is_bitwise_or_rule(Parser *p);
483static expr_ty bitwise_or_rule(Parser *p);
484static expr_ty bitwise_xor_rule(Parser *p);
485static expr_ty bitwise_and_rule(Parser *p);
486static expr_ty shift_expr_rule(Parser *p);
487static expr_ty sum_rule(Parser *p);
488static expr_ty term_rule(Parser *p);
489static expr_ty factor_rule(Parser *p);
490static expr_ty power_rule(Parser *p);
491static expr_ty await_primary_rule(Parser *p);
492static expr_ty primary_rule(Parser *p);
493static expr_ty slices_rule(Parser *p);
494static expr_ty slice_rule(Parser *p);
495static expr_ty atom_rule(Parser *p);
496static expr_ty strings_rule(Parser *p);
497static expr_ty list_rule(Parser *p);
498static expr_ty listcomp_rule(Parser *p);
499static expr_ty tuple_rule(Parser *p);
500static expr_ty group_rule(Parser *p);
501static expr_ty genexp_rule(Parser *p);
502static expr_ty set_rule(Parser *p);
503static expr_ty setcomp_rule(Parser *p);
504static expr_ty dict_rule(Parser *p);
505static expr_ty dictcomp_rule(Parser *p);
506static asdl_seq* double_starred_kvpairs_rule(Parser *p);
507static KeyValuePair* double_starred_kvpair_rule(Parser *p);
508static KeyValuePair* kvpair_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100509static asdl_comprehension_seq* for_if_clauses_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100510static comprehension_ty for_if_clause_rule(Parser *p);
511static expr_ty yield_expr_rule(Parser *p);
512static expr_ty arguments_rule(Parser *p);
513static expr_ty args_rule(Parser *p);
514static asdl_seq* kwargs_rule(Parser *p);
515static expr_ty starred_expression_rule(Parser *p);
516static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
517static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
518static expr_ty star_targets_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200519static asdl_expr_seq* star_targets_list_seq_rule(Parser *p);
520static asdl_expr_seq* star_targets_tuple_seq_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100521static expr_ty star_target_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200522static expr_ty target_with_star_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100523static expr_ty star_atom_rule(Parser *p);
524static expr_ty single_target_rule(Parser *p);
525static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100526static asdl_expr_seq* del_targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100527static expr_ty del_target_rule(Parser *p);
528static expr_ty del_t_atom_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100529static asdl_expr_seq* targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100530static expr_ty target_rule(Parser *p);
531static expr_ty t_primary_rule(Parser *p);
532static void *t_lookahead_rule(Parser *p);
533static expr_ty t_atom_rule(Parser *p);
Lysandros Nikolaoubca70142020-10-27 00:42:04 +0200534static void *invalid_arguments_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100535static void *invalid_kwarg_rule(Parser *p);
536static void *invalid_named_expression_rule(Parser *p);
537static void *invalid_assignment_rule(Parser *p);
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +0300538static expr_ty invalid_ann_assign_target_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300539static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100540static void *invalid_block_rule(Parser *p);
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +0200541static void *invalid_primary_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100542static void *invalid_comprehension_rule(Parser *p);
543static void *invalid_dict_comprehension_rule(Parser *p);
544static void *invalid_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200545static void *invalid_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100546static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200547static void *invalid_lambda_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100548static void *invalid_star_etc_rule(Parser *p);
549static void *invalid_lambda_star_etc_rule(Parser *p);
550static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300551static void *invalid_with_item_rule(Parser *p);
552static void *invalid_for_target_rule(Parser *p);
553static void *invalid_group_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100554static void *invalid_import_from_targets_rule(Parser *p);
555static asdl_seq *_loop0_1_rule(Parser *p);
556static asdl_seq *_loop0_2_rule(Parser *p);
557static asdl_seq *_loop0_4_rule(Parser *p);
558static asdl_seq *_gather_3_rule(Parser *p);
559static asdl_seq *_loop0_6_rule(Parser *p);
560static asdl_seq *_gather_5_rule(Parser *p);
561static asdl_seq *_loop0_8_rule(Parser *p);
562static asdl_seq *_gather_7_rule(Parser *p);
563static asdl_seq *_loop0_10_rule(Parser *p);
564static asdl_seq *_gather_9_rule(Parser *p);
565static asdl_seq *_loop1_11_rule(Parser *p);
566static asdl_seq *_loop0_13_rule(Parser *p);
567static asdl_seq *_gather_12_rule(Parser *p);
568static void *_tmp_14_rule(Parser *p);
569static void *_tmp_15_rule(Parser *p);
570static void *_tmp_16_rule(Parser *p);
571static void *_tmp_17_rule(Parser *p);
572static void *_tmp_18_rule(Parser *p);
573static void *_tmp_19_rule(Parser *p);
574static void *_tmp_20_rule(Parser *p);
575static void *_tmp_21_rule(Parser *p);
576static asdl_seq *_loop1_22_rule(Parser *p);
577static void *_tmp_23_rule(Parser *p);
578static void *_tmp_24_rule(Parser *p);
579static asdl_seq *_loop0_26_rule(Parser *p);
580static asdl_seq *_gather_25_rule(Parser *p);
581static asdl_seq *_loop0_28_rule(Parser *p);
582static asdl_seq *_gather_27_rule(Parser *p);
583static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300584static void *_tmp_30_rule(Parser *p);
585static asdl_seq *_loop0_31_rule(Parser *p);
586static asdl_seq *_loop1_32_rule(Parser *p);
587static asdl_seq *_loop0_34_rule(Parser *p);
588static asdl_seq *_gather_33_rule(Parser *p);
589static void *_tmp_35_rule(Parser *p);
590static asdl_seq *_loop0_37_rule(Parser *p);
591static asdl_seq *_gather_36_rule(Parser *p);
592static void *_tmp_38_rule(Parser *p);
593static asdl_seq *_loop0_40_rule(Parser *p);
594static asdl_seq *_gather_39_rule(Parser *p);
595static asdl_seq *_loop0_42_rule(Parser *p);
596static asdl_seq *_gather_41_rule(Parser *p);
597static asdl_seq *_loop0_44_rule(Parser *p);
598static asdl_seq *_gather_43_rule(Parser *p);
599static asdl_seq *_loop0_46_rule(Parser *p);
600static asdl_seq *_gather_45_rule(Parser *p);
601static void *_tmp_47_rule(Parser *p);
602static asdl_seq *_loop1_48_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100603static void *_tmp_49_rule(Parser *p);
604static void *_tmp_50_rule(Parser *p);
605static void *_tmp_51_rule(Parser *p);
606static void *_tmp_52_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300607static void *_tmp_53_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100608static asdl_seq *_loop0_54_rule(Parser *p);
609static asdl_seq *_loop0_55_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300610static asdl_seq *_loop0_56_rule(Parser *p);
611static asdl_seq *_loop1_57_rule(Parser *p);
612static asdl_seq *_loop0_58_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100613static asdl_seq *_loop1_59_rule(Parser *p);
614static asdl_seq *_loop1_60_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300615static asdl_seq *_loop1_61_rule(Parser *p);
616static asdl_seq *_loop0_62_rule(Parser *p);
617static asdl_seq *_loop1_63_rule(Parser *p);
618static asdl_seq *_loop0_64_rule(Parser *p);
619static asdl_seq *_loop1_65_rule(Parser *p);
620static asdl_seq *_loop0_66_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100621static asdl_seq *_loop1_67_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300622static asdl_seq *_loop1_68_rule(Parser *p);
623static void *_tmp_69_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000624static asdl_seq *_loop1_70_rule(Parser *p);
625static asdl_seq *_loop0_72_rule(Parser *p);
626static asdl_seq *_gather_71_rule(Parser *p);
627static asdl_seq *_loop1_73_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300628static asdl_seq *_loop0_74_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000629static asdl_seq *_loop0_75_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100630static asdl_seq *_loop0_76_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000631static asdl_seq *_loop1_77_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300632static asdl_seq *_loop0_78_rule(Parser *p);
633static asdl_seq *_loop1_79_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000634static asdl_seq *_loop1_80_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100635static asdl_seq *_loop1_81_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000636static asdl_seq *_loop0_82_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300637static asdl_seq *_loop1_83_rule(Parser *p);
638static asdl_seq *_loop0_84_rule(Parser *p);
639static asdl_seq *_loop1_85_rule(Parser *p);
640static asdl_seq *_loop0_86_rule(Parser *p);
641static asdl_seq *_loop1_87_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000642static asdl_seq *_loop1_88_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100643static asdl_seq *_loop1_89_rule(Parser *p);
644static asdl_seq *_loop1_90_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000645static void *_tmp_91_rule(Parser *p);
646static asdl_seq *_loop0_93_rule(Parser *p);
647static asdl_seq *_gather_92_rule(Parser *p);
648static void *_tmp_94_rule(Parser *p);
649static void *_tmp_95_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100650static void *_tmp_96_rule(Parser *p);
651static void *_tmp_97_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000652static asdl_seq *_loop1_98_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300653static void *_tmp_99_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000654static void *_tmp_100_rule(Parser *p);
655static asdl_seq *_loop0_102_rule(Parser *p);
656static asdl_seq *_gather_101_rule(Parser *p);
657static asdl_seq *_loop1_103_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300658static asdl_seq *_loop0_104_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000659static asdl_seq *_loop0_105_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300660static asdl_seq *_loop0_107_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000661static asdl_seq *_gather_106_rule(Parser *p);
662static void *_tmp_108_rule(Parser *p);
663static asdl_seq *_loop0_110_rule(Parser *p);
664static asdl_seq *_gather_109_rule(Parser *p);
Pablo Galindo4a97b152020-09-02 17:44:19 +0100665static asdl_seq *_loop0_112_rule(Parser *p);
666static asdl_seq *_gather_111_rule(Parser *p);
667static asdl_seq *_loop0_114_rule(Parser *p);
668static asdl_seq *_gather_113_rule(Parser *p);
669static asdl_seq *_loop0_116_rule(Parser *p);
670static asdl_seq *_gather_115_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000671static asdl_seq *_loop0_117_rule(Parser *p);
Pablo Galindo4a97b152020-09-02 17:44:19 +0100672static asdl_seq *_loop0_119_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000673static asdl_seq *_gather_118_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200674static asdl_seq *_loop1_120_rule(Parser *p);
675static void *_tmp_121_rule(Parser *p);
676static asdl_seq *_loop0_123_rule(Parser *p);
677static asdl_seq *_gather_122_rule(Parser *p);
678static asdl_seq *_loop0_125_rule(Parser *p);
679static asdl_seq *_gather_124_rule(Parser *p);
680static void *_tmp_126_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000681static asdl_seq *_loop0_127_rule(Parser *p);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +0300682static asdl_seq *_loop0_128_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200683static asdl_seq *_loop0_129_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000684static void *_tmp_130_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200685static void *_tmp_131_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000686static void *_tmp_132_rule(Parser *p);
687static asdl_seq *_loop0_133_rule(Parser *p);
688static asdl_seq *_loop1_134_rule(Parser *p);
689static asdl_seq *_loop0_135_rule(Parser *p);
690static asdl_seq *_loop1_136_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100691static void *_tmp_137_rule(Parser *p);
692static void *_tmp_138_rule(Parser *p);
693static void *_tmp_139_rule(Parser *p);
694static void *_tmp_140_rule(Parser *p);
695static void *_tmp_141_rule(Parser *p);
696static void *_tmp_142_rule(Parser *p);
697static void *_tmp_143_rule(Parser *p);
698static void *_tmp_144_rule(Parser *p);
699static void *_tmp_145_rule(Parser *p);
700static void *_tmp_146_rule(Parser *p);
701static void *_tmp_147_rule(Parser *p);
702static void *_tmp_148_rule(Parser *p);
703static void *_tmp_149_rule(Parser *p);
704static void *_tmp_150_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200705static void *_tmp_151_rule(Parser *p);
706static void *_tmp_152_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200707static void *_tmp_153_rule(Parser *p);
708static void *_tmp_154_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000709static void *_tmp_155_rule(Parser *p);
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000710
711
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100712// file: statements? $
713static mod_ty
714file_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000715{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100716 D(p->level++);
717 if (p->error_indicator) {
718 D(p->level--);
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000719 return NULL;
720 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100721 mod_ty _res = NULL;
722 int _mark = p->mark;
723 { // statements? $
724 if (p->error_indicator) {
725 D(p->level--);
726 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000727 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100728 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
729 void *a;
730 Token * endmarker_var;
731 if (
732 (a = statements_rule(p), 1) // statements?
733 &&
734 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
735 )
736 {
737 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
738 _res = _PyPegen_make_module ( p , a );
739 if (_res == NULL && PyErr_Occurred()) {
740 p->error_indicator = 1;
741 D(p->level--);
742 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000743 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100744 goto done;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000745 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100746 p->mark = _mark;
747 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
748 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000749 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100750 _res = NULL;
751 done:
752 D(p->level--);
753 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000754}
755
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100756// interactive: statement_newline
757static mod_ty
758interactive_rule(Parser *p)
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000759{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100760 D(p->level++);
761 if (p->error_indicator) {
762 D(p->level--);
763 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000764 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100765 mod_ty _res = NULL;
766 int _mark = p->mark;
767 { // statement_newline
768 if (p->error_indicator) {
769 D(p->level--);
770 return NULL;
771 }
772 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoa5634c42020-09-16 19:42:00 +0100773 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100774 if (
775 (a = statement_newline_rule(p)) // statement_newline
776 )
777 {
778 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
779 _res = Interactive ( a , p -> arena );
780 if (_res == NULL && PyErr_Occurred()) {
781 p->error_indicator = 1;
782 D(p->level--);
783 return NULL;
784 }
785 goto done;
786 }
787 p->mark = _mark;
788 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
790 }
791 _res = NULL;
792 done:
793 D(p->level--);
794 return _res;
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000795}
796
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100797// eval: expressions NEWLINE* $
798static mod_ty
799eval_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000800{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100801 D(p->level++);
802 if (p->error_indicator) {
803 D(p->level--);
804 return NULL;
805 }
806 mod_ty _res = NULL;
807 int _mark = p->mark;
808 { // expressions NEWLINE* $
809 if (p->error_indicator) {
810 D(p->level--);
811 return NULL;
812 }
813 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
814 asdl_seq * _loop0_1_var;
815 expr_ty a;
816 Token * endmarker_var;
817 if (
818 (a = expressions_rule(p)) // expressions
819 &&
820 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
821 &&
822 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
823 )
824 {
825 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
826 _res = Expression ( a , p -> arena );
827 if (_res == NULL && PyErr_Occurred()) {
828 p->error_indicator = 1;
829 D(p->level--);
830 return NULL;
831 }
832 goto done;
833 }
834 p->mark = _mark;
835 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
836 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
837 }
838 _res = NULL;
839 done:
840 D(p->level--);
841 return _res;
842}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000843
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100844// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
845static mod_ty
846func_type_rule(Parser *p)
847{
848 D(p->level++);
849 if (p->error_indicator) {
850 D(p->level--);
851 return NULL;
852 }
853 mod_ty _res = NULL;
854 int _mark = p->mark;
855 { // '(' type_expressions? ')' '->' expression NEWLINE* $
856 if (p->error_indicator) {
857 D(p->level--);
858 return NULL;
859 }
860 D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
861 Token * _literal;
862 Token * _literal_1;
863 Token * _literal_2;
864 asdl_seq * _loop0_2_var;
865 void *a;
866 expr_ty b;
867 Token * endmarker_var;
868 if (
869 (_literal = _PyPegen_expect_token(p, 7)) // token='('
870 &&
871 (a = type_expressions_rule(p), 1) // type_expressions?
872 &&
873 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
874 &&
875 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
876 &&
877 (b = expression_rule(p)) // expression
878 &&
879 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
880 &&
881 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
882 )
883 {
884 D(fprintf(stderr, "%*c+ func_type[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
885 _res = FunctionType ( a , b , p -> arena );
886 if (_res == NULL && PyErr_Occurred()) {
887 p->error_indicator = 1;
888 D(p->level--);
889 return NULL;
890 }
891 goto done;
892 }
893 p->mark = _mark;
894 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
896 }
897 _res = NULL;
898 done:
899 D(p->level--);
900 return _res;
901}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000902
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100903// fstring: star_expressions
904static expr_ty
905fstring_rule(Parser *p)
906{
907 D(p->level++);
908 if (p->error_indicator) {
909 D(p->level--);
910 return NULL;
911 }
912 expr_ty _res = NULL;
913 int _mark = p->mark;
914 { // star_expressions
915 if (p->error_indicator) {
916 D(p->level--);
917 return NULL;
918 }
919 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
920 expr_ty star_expressions_var;
921 if (
922 (star_expressions_var = star_expressions_rule(p)) // star_expressions
923 )
924 {
925 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
926 _res = star_expressions_var;
927 goto done;
928 }
929 p->mark = _mark;
930 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
932 }
933 _res = NULL;
934 done:
935 D(p->level--);
936 return _res;
937}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000938
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100939// type_expressions:
940// | ','.expression+ ',' '*' expression ',' '**' expression
941// | ','.expression+ ',' '*' expression
942// | ','.expression+ ',' '**' expression
943// | '*' expression ',' '**' expression
944// | '*' expression
945// | '**' expression
946// | ','.expression+
Pablo Galindoa5634c42020-09-16 19:42:00 +0100947static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100948type_expressions_rule(Parser *p)
949{
950 D(p->level++);
951 if (p->error_indicator) {
952 D(p->level--);
953 return NULL;
954 }
Pablo Galindoa5634c42020-09-16 19:42:00 +0100955 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100956 int _mark = p->mark;
957 { // ','.expression+ ',' '*' expression ',' '**' expression
958 if (p->error_indicator) {
959 D(p->level--);
960 return NULL;
961 }
962 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
963 Token * _literal;
964 Token * _literal_1;
965 Token * _literal_2;
966 Token * _literal_3;
967 asdl_seq * a;
968 expr_ty b;
969 expr_ty c;
970 if (
971 (a = _gather_3_rule(p)) // ','.expression+
972 &&
973 (_literal = _PyPegen_expect_token(p, 12)) // token=','
974 &&
975 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
976 &&
977 (b = expression_rule(p)) // expression
978 &&
979 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
980 &&
981 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
982 &&
983 (c = expression_rule(p)) // expression
984 )
985 {
986 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 +0300987 _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 +0100988 if (_res == NULL && PyErr_Occurred()) {
989 p->error_indicator = 1;
990 D(p->level--);
991 return NULL;
992 }
993 goto done;
994 }
995 p->mark = _mark;
996 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
998 }
999 { // ','.expression+ ',' '*' expression
1000 if (p->error_indicator) {
1001 D(p->level--);
1002 return NULL;
1003 }
1004 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
1005 Token * _literal;
1006 Token * _literal_1;
1007 asdl_seq * a;
1008 expr_ty b;
1009 if (
1010 (a = _gather_5_rule(p)) // ','.expression+
1011 &&
1012 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1013 &&
1014 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1015 &&
1016 (b = expression_rule(p)) // expression
1017 )
1018 {
1019 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 +01001020 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001021 if (_res == NULL && PyErr_Occurred()) {
1022 p->error_indicator = 1;
1023 D(p->level--);
1024 return NULL;
1025 }
1026 goto done;
1027 }
1028 p->mark = _mark;
1029 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1030 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
1031 }
1032 { // ','.expression+ ',' '**' expression
1033 if (p->error_indicator) {
1034 D(p->level--);
1035 return NULL;
1036 }
1037 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
1038 Token * _literal;
1039 Token * _literal_1;
1040 asdl_seq * a;
1041 expr_ty b;
1042 if (
1043 (a = _gather_7_rule(p)) // ','.expression+
1044 &&
1045 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1046 &&
1047 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
1048 &&
1049 (b = expression_rule(p)) // expression
1050 )
1051 {
1052 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 +01001053 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001054 if (_res == NULL && PyErr_Occurred()) {
1055 p->error_indicator = 1;
1056 D(p->level--);
1057 return NULL;
1058 }
1059 goto done;
1060 }
1061 p->mark = _mark;
1062 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
1064 }
1065 { // '*' expression ',' '**' expression
1066 if (p->error_indicator) {
1067 D(p->level--);
1068 return NULL;
1069 }
1070 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
1071 Token * _literal;
1072 Token * _literal_1;
1073 Token * _literal_2;
1074 expr_ty a;
1075 expr_ty b;
1076 if (
1077 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1078 &&
1079 (a = expression_rule(p)) // expression
1080 &&
1081 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
1082 &&
1083 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
1084 &&
1085 (b = expression_rule(p)) // expression
1086 )
1087 {
1088 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 +03001089 _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 +01001090 if (_res == NULL && PyErr_Occurred()) {
1091 p->error_indicator = 1;
1092 D(p->level--);
1093 return NULL;
1094 }
1095 goto done;
1096 }
1097 p->mark = _mark;
1098 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1099 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
1100 }
1101 { // '*' expression
1102 if (p->error_indicator) {
1103 D(p->level--);
1104 return NULL;
1105 }
1106 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
1107 Token * _literal;
1108 expr_ty a;
1109 if (
1110 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1111 &&
1112 (a = expression_rule(p)) // expression
1113 )
1114 {
1115 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001116 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001117 if (_res == NULL && PyErr_Occurred()) {
1118 p->error_indicator = 1;
1119 D(p->level--);
1120 return NULL;
1121 }
1122 goto done;
1123 }
1124 p->mark = _mark;
1125 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
1127 }
1128 { // '**' expression
1129 if (p->error_indicator) {
1130 D(p->level--);
1131 return NULL;
1132 }
1133 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
1134 Token * _literal;
1135 expr_ty a;
1136 if (
1137 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
1138 &&
1139 (a = expression_rule(p)) // expression
1140 )
1141 {
1142 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001143 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001144 if (_res == NULL && PyErr_Occurred()) {
1145 p->error_indicator = 1;
1146 D(p->level--);
1147 return NULL;
1148 }
1149 goto done;
1150 }
1151 p->mark = _mark;
1152 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1153 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
1154 }
1155 { // ','.expression+
1156 if (p->error_indicator) {
1157 D(p->level--);
1158 return NULL;
1159 }
1160 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001161 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001162 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01001163 (a = (asdl_expr_seq*)_gather_9_rule(p)) // ','.expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001164 )
1165 {
1166 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001167 _res = a;
1168 if (_res == NULL && PyErr_Occurred()) {
1169 p->error_indicator = 1;
1170 D(p->level--);
1171 return NULL;
1172 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001173 goto done;
1174 }
1175 p->mark = _mark;
1176 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1177 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
1178 }
1179 _res = NULL;
1180 done:
1181 D(p->level--);
1182 return _res;
1183}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001184
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001185// statements: statement+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001186static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001187statements_rule(Parser *p)
1188{
1189 D(p->level++);
1190 if (p->error_indicator) {
1191 D(p->level--);
1192 return NULL;
1193 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001194 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001195 int _mark = p->mark;
1196 { // statement+
1197 if (p->error_indicator) {
1198 D(p->level--);
1199 return NULL;
1200 }
1201 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
1202 asdl_seq * a;
1203 if (
1204 (a = _loop1_11_rule(p)) // statement+
1205 )
1206 {
1207 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001208 _res = ( asdl_stmt_seq * ) _PyPegen_seq_flatten ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001209 if (_res == NULL && PyErr_Occurred()) {
1210 p->error_indicator = 1;
1211 D(p->level--);
1212 return NULL;
1213 }
1214 goto done;
1215 }
1216 p->mark = _mark;
1217 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
1219 }
1220 _res = NULL;
1221 done:
1222 D(p->level--);
1223 return _res;
1224}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001225
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001226// statement: compound_stmt | simple_stmts
Pablo Galindoa5634c42020-09-16 19:42:00 +01001227static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001228statement_rule(Parser *p)
1229{
1230 D(p->level++);
1231 if (p->error_indicator) {
1232 D(p->level--);
1233 return NULL;
1234 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001235 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001236 int _mark = p->mark;
1237 { // compound_stmt
1238 if (p->error_indicator) {
1239 D(p->level--);
1240 return NULL;
1241 }
1242 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
1243 stmt_ty a;
1244 if (
1245 (a = compound_stmt_rule(p)) // compound_stmt
1246 )
1247 {
1248 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001249 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001250 if (_res == NULL && PyErr_Occurred()) {
1251 p->error_indicator = 1;
1252 D(p->level--);
1253 return NULL;
1254 }
1255 goto done;
1256 }
1257 p->mark = _mark;
1258 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1259 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
1260 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001261 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001262 if (p->error_indicator) {
1263 D(p->level--);
1264 return NULL;
1265 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001266 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001267 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001268 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001269 (a = (asdl_stmt_seq*)simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001270 )
1271 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001272 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001273 _res = a;
1274 if (_res == NULL && PyErr_Occurred()) {
1275 p->error_indicator = 1;
1276 D(p->level--);
1277 return NULL;
1278 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001279 goto done;
1280 }
1281 p->mark = _mark;
1282 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001283 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001284 }
1285 _res = NULL;
1286 done:
1287 D(p->level--);
1288 return _res;
1289}
1290
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001291// statement_newline: compound_stmt NEWLINE | simple_stmts | NEWLINE | $
Pablo Galindoa5634c42020-09-16 19:42:00 +01001292static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001293statement_newline_rule(Parser *p)
1294{
1295 D(p->level++);
1296 if (p->error_indicator) {
1297 D(p->level--);
1298 return NULL;
1299 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001300 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001301 int _mark = p->mark;
1302 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1303 p->error_indicator = 1;
1304 D(p->level--);
1305 return NULL;
1306 }
1307 int _start_lineno = p->tokens[_mark]->lineno;
1308 UNUSED(_start_lineno); // Only used by EXTRA macro
1309 int _start_col_offset = p->tokens[_mark]->col_offset;
1310 UNUSED(_start_col_offset); // Only used by EXTRA macro
1311 { // compound_stmt NEWLINE
1312 if (p->error_indicator) {
1313 D(p->level--);
1314 return NULL;
1315 }
1316 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
1317 stmt_ty a;
1318 Token * newline_var;
1319 if (
1320 (a = compound_stmt_rule(p)) // compound_stmt
1321 &&
1322 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1323 )
1324 {
1325 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 +01001326 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001327 if (_res == NULL && PyErr_Occurred()) {
1328 p->error_indicator = 1;
1329 D(p->level--);
1330 return NULL;
1331 }
1332 goto done;
1333 }
1334 p->mark = _mark;
1335 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
1337 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001338 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001339 if (p->error_indicator) {
1340 D(p->level--);
1341 return NULL;
1342 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001343 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1344 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001345 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001346 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001347 )
1348 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001349 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1350 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001351 goto done;
1352 }
1353 p->mark = _mark;
1354 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001355 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001356 }
1357 { // NEWLINE
1358 if (p->error_indicator) {
1359 D(p->level--);
1360 return NULL;
1361 }
1362 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1363 Token * newline_var;
1364 if (
1365 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1366 )
1367 {
1368 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1369 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1370 if (_token == NULL) {
1371 D(p->level--);
1372 return NULL;
1373 }
1374 int _end_lineno = _token->end_lineno;
1375 UNUSED(_end_lineno); // Only used by EXTRA macro
1376 int _end_col_offset = _token->end_col_offset;
1377 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03001378 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , CHECK ( stmt_ty , _Py_Pass ( EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001379 if (_res == NULL && PyErr_Occurred()) {
1380 p->error_indicator = 1;
1381 D(p->level--);
1382 return NULL;
1383 }
1384 goto done;
1385 }
1386 p->mark = _mark;
1387 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1388 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
1389 }
1390 { // $
1391 if (p->error_indicator) {
1392 D(p->level--);
1393 return NULL;
1394 }
1395 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
1396 Token * endmarker_var;
1397 if (
1398 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1399 )
1400 {
1401 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
1402 _res = _PyPegen_interactive_exit ( p );
1403 if (_res == NULL && PyErr_Occurred()) {
1404 p->error_indicator = 1;
1405 D(p->level--);
1406 return NULL;
1407 }
1408 goto done;
1409 }
1410 p->mark = _mark;
1411 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1412 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
1413 }
1414 _res = NULL;
1415 done:
1416 D(p->level--);
1417 return _res;
1418}
1419
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001420// simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindoa5634c42020-09-16 19:42:00 +01001421static asdl_stmt_seq*
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001422simple_stmts_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001423{
1424 D(p->level++);
1425 if (p->error_indicator) {
1426 D(p->level--);
1427 return NULL;
1428 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001429 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001430 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001431 { // simple_stmt !';' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001432 if (p->error_indicator) {
1433 D(p->level--);
1434 return NULL;
1435 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001436 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 +01001437 stmt_ty a;
1438 Token * newline_var;
1439 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001440 (a = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001441 &&
1442 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
1443 &&
1444 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1445 )
1446 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001447 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 +01001448 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001449 if (_res == NULL && PyErr_Occurred()) {
1450 p->error_indicator = 1;
1451 D(p->level--);
1452 return NULL;
1453 }
1454 goto done;
1455 }
1456 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001457 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001459 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001460 { // ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001461 if (p->error_indicator) {
1462 D(p->level--);
1463 return NULL;
1464 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001465 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 +01001466 void *_opt_var;
1467 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01001468 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001469 Token * newline_var;
1470 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001471 (a = (asdl_stmt_seq*)_gather_12_rule(p)) // ';'.simple_stmt+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001472 &&
1473 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
1474 &&
1475 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1476 )
1477 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001478 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 +01001479 _res = a;
1480 if (_res == NULL && PyErr_Occurred()) {
1481 p->error_indicator = 1;
1482 D(p->level--);
1483 return NULL;
1484 }
1485 goto done;
1486 }
1487 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001488 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001490 }
1491 _res = NULL;
1492 done:
1493 D(p->level--);
1494 return _res;
1495}
1496
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001497// simple_stmt:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001498// | assignment
1499// | star_expressions
1500// | &'return' return_stmt
1501// | &('import' | 'from') import_stmt
1502// | &'raise' raise_stmt
1503// | 'pass'
1504// | &'del' del_stmt
1505// | &'yield' yield_stmt
1506// | &'assert' assert_stmt
1507// | 'break'
1508// | 'continue'
1509// | &'global' global_stmt
1510// | &'nonlocal' nonlocal_stmt
1511static stmt_ty
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001512simple_stmt_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001513{
1514 D(p->level++);
1515 if (p->error_indicator) {
1516 D(p->level--);
1517 return NULL;
1518 }
1519 stmt_ty _res = NULL;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001520 if (_PyPegen_is_memoized(p, simple_stmt_type, &_res)) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001521 D(p->level--);
1522 return _res;
1523 }
1524 int _mark = p->mark;
1525 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1526 p->error_indicator = 1;
1527 D(p->level--);
1528 return NULL;
1529 }
1530 int _start_lineno = p->tokens[_mark]->lineno;
1531 UNUSED(_start_lineno); // Only used by EXTRA macro
1532 int _start_col_offset = p->tokens[_mark]->col_offset;
1533 UNUSED(_start_col_offset); // Only used by EXTRA macro
1534 { // assignment
1535 if (p->error_indicator) {
1536 D(p->level--);
1537 return NULL;
1538 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001539 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001540 stmt_ty assignment_var;
1541 if (
1542 (assignment_var = assignment_rule(p)) // assignment
1543 )
1544 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001545 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001546 _res = assignment_var;
1547 goto done;
1548 }
1549 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001550 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
1552 }
1553 { // star_expressions
1554 if (p->error_indicator) {
1555 D(p->level--);
1556 return NULL;
1557 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001558 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001559 expr_ty e;
1560 if (
1561 (e = star_expressions_rule(p)) // star_expressions
1562 )
1563 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001564 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 +01001565 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1566 if (_token == NULL) {
1567 D(p->level--);
1568 return NULL;
1569 }
1570 int _end_lineno = _token->end_lineno;
1571 UNUSED(_end_lineno); // Only used by EXTRA macro
1572 int _end_col_offset = _token->end_col_offset;
1573 UNUSED(_end_col_offset); // Only used by EXTRA macro
1574 _res = _Py_Expr ( e , EXTRA );
1575 if (_res == NULL && PyErr_Occurred()) {
1576 p->error_indicator = 1;
1577 D(p->level--);
1578 return NULL;
1579 }
1580 goto done;
1581 }
1582 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001583 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1585 }
1586 { // &'return' return_stmt
1587 if (p->error_indicator) {
1588 D(p->level--);
1589 return NULL;
1590 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001591 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 +01001592 stmt_ty return_stmt_var;
1593 if (
1594 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
1595 &&
1596 (return_stmt_var = return_stmt_rule(p)) // return_stmt
1597 )
1598 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001599 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 +01001600 _res = return_stmt_var;
1601 goto done;
1602 }
1603 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001604 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
1606 }
1607 { // &('import' | 'from') import_stmt
1608 if (p->error_indicator) {
1609 D(p->level--);
1610 return NULL;
1611 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001612 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 +01001613 stmt_ty import_stmt_var;
1614 if (
1615 _PyPegen_lookahead(1, _tmp_14_rule, p)
1616 &&
1617 (import_stmt_var = import_stmt_rule(p)) // import_stmt
1618 )
1619 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001620 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 +01001621 _res = import_stmt_var;
1622 goto done;
1623 }
1624 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001625 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001626 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
1627 }
1628 { // &'raise' raise_stmt
1629 if (p->error_indicator) {
1630 D(p->level--);
1631 return NULL;
1632 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001633 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 +01001634 stmt_ty raise_stmt_var;
1635 if (
1636 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
1637 &&
1638 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
1639 )
1640 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001641 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 +01001642 _res = raise_stmt_var;
1643 goto done;
1644 }
1645 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001646 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001647 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
1648 }
1649 { // 'pass'
1650 if (p->error_indicator) {
1651 D(p->level--);
1652 return NULL;
1653 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001654 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001655 Token * _keyword;
1656 if (
1657 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
1658 )
1659 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001660 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001661 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1662 if (_token == NULL) {
1663 D(p->level--);
1664 return NULL;
1665 }
1666 int _end_lineno = _token->end_lineno;
1667 UNUSED(_end_lineno); // Only used by EXTRA macro
1668 int _end_col_offset = _token->end_col_offset;
1669 UNUSED(_end_col_offset); // Only used by EXTRA macro
1670 _res = _Py_Pass ( EXTRA );
1671 if (_res == NULL && PyErr_Occurred()) {
1672 p->error_indicator = 1;
1673 D(p->level--);
1674 return NULL;
1675 }
1676 goto done;
1677 }
1678 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001679 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001680 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
1681 }
1682 { // &'del' del_stmt
1683 if (p->error_indicator) {
1684 D(p->level--);
1685 return NULL;
1686 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001687 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 +01001688 stmt_ty del_stmt_var;
1689 if (
1690 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
1691 &&
1692 (del_stmt_var = del_stmt_rule(p)) // del_stmt
1693 )
1694 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001695 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 +01001696 _res = del_stmt_var;
1697 goto done;
1698 }
1699 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001700 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001701 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
1702 }
1703 { // &'yield' yield_stmt
1704 if (p->error_indicator) {
1705 D(p->level--);
1706 return NULL;
1707 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001708 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 +01001709 stmt_ty yield_stmt_var;
1710 if (
1711 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
1712 &&
1713 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
1714 )
1715 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001716 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 +01001717 _res = yield_stmt_var;
1718 goto done;
1719 }
1720 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001721 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001722 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
1723 }
1724 { // &'assert' assert_stmt
1725 if (p->error_indicator) {
1726 D(p->level--);
1727 return NULL;
1728 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001729 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 +01001730 stmt_ty assert_stmt_var;
1731 if (
1732 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
1733 &&
1734 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
1735 )
1736 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001737 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 +01001738 _res = assert_stmt_var;
1739 goto done;
1740 }
1741 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001742 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001743 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
1744 }
1745 { // 'break'
1746 if (p->error_indicator) {
1747 D(p->level--);
1748 return NULL;
1749 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001750 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001751 Token * _keyword;
1752 if (
1753 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
1754 )
1755 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001756 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001757 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1758 if (_token == NULL) {
1759 D(p->level--);
1760 return NULL;
1761 }
1762 int _end_lineno = _token->end_lineno;
1763 UNUSED(_end_lineno); // Only used by EXTRA macro
1764 int _end_col_offset = _token->end_col_offset;
1765 UNUSED(_end_col_offset); // Only used by EXTRA macro
1766 _res = _Py_Break ( EXTRA );
1767 if (_res == NULL && PyErr_Occurred()) {
1768 p->error_indicator = 1;
1769 D(p->level--);
1770 return NULL;
1771 }
1772 goto done;
1773 }
1774 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001775 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001776 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
1777 }
1778 { // 'continue'
1779 if (p->error_indicator) {
1780 D(p->level--);
1781 return NULL;
1782 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001783 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001784 Token * _keyword;
1785 if (
1786 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
1787 )
1788 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001789 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001790 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1791 if (_token == NULL) {
1792 D(p->level--);
1793 return NULL;
1794 }
1795 int _end_lineno = _token->end_lineno;
1796 UNUSED(_end_lineno); // Only used by EXTRA macro
1797 int _end_col_offset = _token->end_col_offset;
1798 UNUSED(_end_col_offset); // Only used by EXTRA macro
1799 _res = _Py_Continue ( EXTRA );
1800 if (_res == NULL && PyErr_Occurred()) {
1801 p->error_indicator = 1;
1802 D(p->level--);
1803 return NULL;
1804 }
1805 goto done;
1806 }
1807 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001808 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001809 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
1810 }
1811 { // &'global' global_stmt
1812 if (p->error_indicator) {
1813 D(p->level--);
1814 return NULL;
1815 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001816 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 +01001817 stmt_ty global_stmt_var;
1818 if (
1819 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
1820 &&
1821 (global_stmt_var = global_stmt_rule(p)) // global_stmt
1822 )
1823 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001824 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 +01001825 _res = global_stmt_var;
1826 goto done;
1827 }
1828 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001829 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001830 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
1831 }
1832 { // &'nonlocal' nonlocal_stmt
1833 if (p->error_indicator) {
1834 D(p->level--);
1835 return NULL;
1836 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001837 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 +01001838 stmt_ty nonlocal_stmt_var;
1839 if (
1840 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
1841 &&
1842 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
1843 )
1844 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001845 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 +01001846 _res = nonlocal_stmt_var;
1847 goto done;
1848 }
1849 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001850 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001851 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
1852 }
1853 _res = NULL;
1854 done:
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001855 _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001856 D(p->level--);
1857 return _res;
1858}
1859
1860// compound_stmt:
1861// | &('def' | '@' | ASYNC) function_def
1862// | &'if' if_stmt
1863// | &('class' | '@') class_def
1864// | &('with' | ASYNC) with_stmt
1865// | &('for' | ASYNC) for_stmt
1866// | &'try' try_stmt
1867// | &'while' while_stmt
1868static stmt_ty
1869compound_stmt_rule(Parser *p)
1870{
1871 D(p->level++);
1872 if (p->error_indicator) {
1873 D(p->level--);
1874 return NULL;
1875 }
1876 stmt_ty _res = NULL;
1877 int _mark = p->mark;
1878 { // &('def' | '@' | ASYNC) function_def
1879 if (p->error_indicator) {
1880 D(p->level--);
1881 return NULL;
1882 }
1883 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
1884 stmt_ty function_def_var;
1885 if (
1886 _PyPegen_lookahead(1, _tmp_15_rule, p)
1887 &&
1888 (function_def_var = function_def_rule(p)) // function_def
1889 )
1890 {
1891 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
1892 _res = function_def_var;
1893 goto done;
1894 }
1895 p->mark = _mark;
1896 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1897 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
1898 }
1899 { // &'if' if_stmt
1900 if (p->error_indicator) {
1901 D(p->level--);
1902 return NULL;
1903 }
1904 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
1905 stmt_ty if_stmt_var;
1906 if (
1907 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
1908 &&
1909 (if_stmt_var = if_stmt_rule(p)) // if_stmt
1910 )
1911 {
1912 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
1913 _res = if_stmt_var;
1914 goto done;
1915 }
1916 p->mark = _mark;
1917 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1918 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
1919 }
1920 { // &('class' | '@') class_def
1921 if (p->error_indicator) {
1922 D(p->level--);
1923 return NULL;
1924 }
1925 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
1926 stmt_ty class_def_var;
1927 if (
1928 _PyPegen_lookahead(1, _tmp_16_rule, p)
1929 &&
1930 (class_def_var = class_def_rule(p)) // class_def
1931 )
1932 {
1933 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
1934 _res = class_def_var;
1935 goto done;
1936 }
1937 p->mark = _mark;
1938 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1939 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
1940 }
1941 { // &('with' | ASYNC) with_stmt
1942 if (p->error_indicator) {
1943 D(p->level--);
1944 return NULL;
1945 }
1946 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
1947 stmt_ty with_stmt_var;
1948 if (
1949 _PyPegen_lookahead(1, _tmp_17_rule, p)
1950 &&
1951 (with_stmt_var = with_stmt_rule(p)) // with_stmt
1952 )
1953 {
1954 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
1955 _res = with_stmt_var;
1956 goto done;
1957 }
1958 p->mark = _mark;
1959 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1960 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
1961 }
1962 { // &('for' | ASYNC) for_stmt
1963 if (p->error_indicator) {
1964 D(p->level--);
1965 return NULL;
1966 }
1967 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
1968 stmt_ty for_stmt_var;
1969 if (
1970 _PyPegen_lookahead(1, _tmp_18_rule, p)
1971 &&
1972 (for_stmt_var = for_stmt_rule(p)) // for_stmt
1973 )
1974 {
1975 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
1976 _res = for_stmt_var;
1977 goto done;
1978 }
1979 p->mark = _mark;
1980 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1981 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
1982 }
1983 { // &'try' try_stmt
1984 if (p->error_indicator) {
1985 D(p->level--);
1986 return NULL;
1987 }
1988 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
1989 stmt_ty try_stmt_var;
1990 if (
1991 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
1992 &&
1993 (try_stmt_var = try_stmt_rule(p)) // try_stmt
1994 )
1995 {
1996 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
1997 _res = try_stmt_var;
1998 goto done;
1999 }
2000 p->mark = _mark;
2001 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2002 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
2003 }
2004 { // &'while' while_stmt
2005 if (p->error_indicator) {
2006 D(p->level--);
2007 return NULL;
2008 }
2009 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2010 stmt_ty while_stmt_var;
2011 if (
2012 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
2013 &&
2014 (while_stmt_var = while_stmt_rule(p)) // while_stmt
2015 )
2016 {
2017 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2018 _res = while_stmt_var;
2019 goto done;
2020 }
2021 p->mark = _mark;
2022 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2023 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
2024 }
2025 _res = NULL;
2026 done:
2027 D(p->level--);
2028 return _res;
2029}
2030
2031// assignment:
2032// | NAME ':' expression ['=' annotated_rhs]
2033// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2034// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002035// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002036// | invalid_assignment
2037static stmt_ty
2038assignment_rule(Parser *p)
2039{
2040 D(p->level++);
2041 if (p->error_indicator) {
2042 D(p->level--);
2043 return NULL;
2044 }
2045 stmt_ty _res = NULL;
2046 int _mark = p->mark;
2047 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2048 p->error_indicator = 1;
2049 D(p->level--);
2050 return NULL;
2051 }
2052 int _start_lineno = p->tokens[_mark]->lineno;
2053 UNUSED(_start_lineno); // Only used by EXTRA macro
2054 int _start_col_offset = p->tokens[_mark]->col_offset;
2055 UNUSED(_start_col_offset); // Only used by EXTRA macro
2056 { // NAME ':' expression ['=' annotated_rhs]
2057 if (p->error_indicator) {
2058 D(p->level--);
2059 return NULL;
2060 }
2061 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2062 Token * _literal;
2063 expr_ty a;
2064 expr_ty b;
2065 void *c;
2066 if (
2067 (a = _PyPegen_name_token(p)) // NAME
2068 &&
2069 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2070 &&
2071 (b = expression_rule(p)) // expression
2072 &&
2073 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
2074 )
2075 {
2076 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2077 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2078 if (_token == NULL) {
2079 D(p->level--);
2080 return NULL;
2081 }
2082 int _end_lineno = _token->end_lineno;
2083 UNUSED(_end_lineno); // Only used by EXTRA macro
2084 int _end_col_offset = _token->end_col_offset;
2085 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002086 _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 +01002087 if (_res == NULL && PyErr_Occurred()) {
2088 p->error_indicator = 1;
2089 D(p->level--);
2090 return NULL;
2091 }
2092 goto done;
2093 }
2094 p->mark = _mark;
2095 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2096 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2097 }
2098 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2099 if (p->error_indicator) {
2100 D(p->level--);
2101 return NULL;
2102 }
2103 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2104 Token * _literal;
2105 void *a;
2106 expr_ty b;
2107 void *c;
2108 if (
2109 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
2110 &&
2111 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2112 &&
2113 (b = expression_rule(p)) // expression
2114 &&
2115 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
2116 )
2117 {
2118 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2119 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2120 if (_token == NULL) {
2121 D(p->level--);
2122 return NULL;
2123 }
2124 int _end_lineno = _token->end_lineno;
2125 UNUSED(_end_lineno); // Only used by EXTRA macro
2126 int _end_col_offset = _token->end_col_offset;
2127 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002128 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotations syntax is" , _Py_AnnAssign ( a , b , c , 0 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002129 if (_res == NULL && PyErr_Occurred()) {
2130 p->error_indicator = 1;
2131 D(p->level--);
2132 return NULL;
2133 }
2134 goto done;
2135 }
2136 p->mark = _mark;
2137 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2138 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2139 }
2140 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
2141 if (p->error_indicator) {
2142 D(p->level--);
2143 return NULL;
2144 }
2145 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 +01002146 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002147 void *b;
2148 void *tc;
2149 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01002150 (a = (asdl_expr_seq*)_loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002151 &&
2152 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
2153 &&
2154 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2155 &&
2156 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
2157 )
2158 {
2159 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2160 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2161 if (_token == NULL) {
2162 D(p->level--);
2163 return NULL;
2164 }
2165 int _end_lineno = _token->end_lineno;
2166 UNUSED(_end_lineno); // Only used by EXTRA macro
2167 int _end_col_offset = _token->end_col_offset;
2168 UNUSED(_end_col_offset); // Only used by EXTRA macro
2169 _res = _Py_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
2170 if (_res == NULL && PyErr_Occurred()) {
2171 p->error_indicator = 1;
2172 D(p->level--);
2173 return NULL;
2174 }
2175 goto done;
2176 }
2177 p->mark = _mark;
2178 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2179 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2180 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002181 { // single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002182 if (p->error_indicator) {
2183 D(p->level--);
2184 return NULL;
2185 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002186 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2187 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002188 expr_ty a;
2189 AugOperator* b;
2190 void *c;
2191 if (
2192 (a = single_target_rule(p)) // single_target
2193 &&
2194 (b = augassign_rule(p)) // augassign
2195 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002196 (_cut_var = 1)
2197 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002198 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
2199 )
2200 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002201 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 +01002202 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2203 if (_token == NULL) {
2204 D(p->level--);
2205 return NULL;
2206 }
2207 int _end_lineno = _token->end_lineno;
2208 UNUSED(_end_lineno); // Only used by EXTRA macro
2209 int _end_col_offset = _token->end_col_offset;
2210 UNUSED(_end_col_offset); // Only used by EXTRA macro
2211 _res = _Py_AugAssign ( a , b -> kind , c , EXTRA );
2212 if (_res == NULL && PyErr_Occurred()) {
2213 p->error_indicator = 1;
2214 D(p->level--);
2215 return NULL;
2216 }
2217 goto done;
2218 }
2219 p->mark = _mark;
2220 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002221 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2222 if (_cut_var) {
2223 D(p->level--);
2224 return NULL;
2225 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002226 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002227 if (p->call_invalid_rules) { // invalid_assignment
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002228 if (p->error_indicator) {
2229 D(p->level--);
2230 return NULL;
2231 }
2232 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2233 void *invalid_assignment_var;
2234 if (
2235 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
2236 )
2237 {
2238 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2239 _res = invalid_assignment_var;
2240 goto done;
2241 }
2242 p->mark = _mark;
2243 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2244 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
2245 }
2246 _res = NULL;
2247 done:
2248 D(p->level--);
2249 return _res;
2250}
2251
2252// augassign:
2253// | '+='
2254// | '-='
2255// | '*='
2256// | '@='
2257// | '/='
2258// | '%='
2259// | '&='
2260// | '|='
2261// | '^='
2262// | '<<='
2263// | '>>='
2264// | '**='
2265// | '//='
2266static AugOperator*
2267augassign_rule(Parser *p)
2268{
2269 D(p->level++);
2270 if (p->error_indicator) {
2271 D(p->level--);
2272 return NULL;
2273 }
2274 AugOperator* _res = NULL;
2275 int _mark = p->mark;
2276 { // '+='
2277 if (p->error_indicator) {
2278 D(p->level--);
2279 return NULL;
2280 }
2281 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
2282 Token * _literal;
2283 if (
2284 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
2285 )
2286 {
2287 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
2288 _res = _PyPegen_augoperator ( p , Add );
2289 if (_res == NULL && PyErr_Occurred()) {
2290 p->error_indicator = 1;
2291 D(p->level--);
2292 return NULL;
2293 }
2294 goto done;
2295 }
2296 p->mark = _mark;
2297 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
2299 }
2300 { // '-='
2301 if (p->error_indicator) {
2302 D(p->level--);
2303 return NULL;
2304 }
2305 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
2306 Token * _literal;
2307 if (
2308 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
2309 )
2310 {
2311 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
2312 _res = _PyPegen_augoperator ( p , Sub );
2313 if (_res == NULL && PyErr_Occurred()) {
2314 p->error_indicator = 1;
2315 D(p->level--);
2316 return NULL;
2317 }
2318 goto done;
2319 }
2320 p->mark = _mark;
2321 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2322 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
2323 }
2324 { // '*='
2325 if (p->error_indicator) {
2326 D(p->level--);
2327 return NULL;
2328 }
2329 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
2330 Token * _literal;
2331 if (
2332 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
2333 )
2334 {
2335 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
2336 _res = _PyPegen_augoperator ( p , Mult );
2337 if (_res == NULL && PyErr_Occurred()) {
2338 p->error_indicator = 1;
2339 D(p->level--);
2340 return NULL;
2341 }
2342 goto done;
2343 }
2344 p->mark = _mark;
2345 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2346 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
2347 }
2348 { // '@='
2349 if (p->error_indicator) {
2350 D(p->level--);
2351 return NULL;
2352 }
2353 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
2354 Token * _literal;
2355 if (
2356 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
2357 )
2358 {
2359 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002360 _res = CHECK_VERSION ( AugOperator * , 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002361 if (_res == NULL && PyErr_Occurred()) {
2362 p->error_indicator = 1;
2363 D(p->level--);
2364 return NULL;
2365 }
2366 goto done;
2367 }
2368 p->mark = _mark;
2369 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2370 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
2371 }
2372 { // '/='
2373 if (p->error_indicator) {
2374 D(p->level--);
2375 return NULL;
2376 }
2377 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
2378 Token * _literal;
2379 if (
2380 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
2381 )
2382 {
2383 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
2384 _res = _PyPegen_augoperator ( p , Div );
2385 if (_res == NULL && PyErr_Occurred()) {
2386 p->error_indicator = 1;
2387 D(p->level--);
2388 return NULL;
2389 }
2390 goto done;
2391 }
2392 p->mark = _mark;
2393 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2394 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
2395 }
2396 { // '%='
2397 if (p->error_indicator) {
2398 D(p->level--);
2399 return NULL;
2400 }
2401 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
2402 Token * _literal;
2403 if (
2404 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
2405 )
2406 {
2407 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
2408 _res = _PyPegen_augoperator ( p , Mod );
2409 if (_res == NULL && PyErr_Occurred()) {
2410 p->error_indicator = 1;
2411 D(p->level--);
2412 return NULL;
2413 }
2414 goto done;
2415 }
2416 p->mark = _mark;
2417 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2418 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
2419 }
2420 { // '&='
2421 if (p->error_indicator) {
2422 D(p->level--);
2423 return NULL;
2424 }
2425 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
2426 Token * _literal;
2427 if (
2428 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
2429 )
2430 {
2431 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
2432 _res = _PyPegen_augoperator ( p , BitAnd );
2433 if (_res == NULL && PyErr_Occurred()) {
2434 p->error_indicator = 1;
2435 D(p->level--);
2436 return NULL;
2437 }
2438 goto done;
2439 }
2440 p->mark = _mark;
2441 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2442 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
2443 }
2444 { // '|='
2445 if (p->error_indicator) {
2446 D(p->level--);
2447 return NULL;
2448 }
2449 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
2450 Token * _literal;
2451 if (
2452 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
2453 )
2454 {
2455 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
2456 _res = _PyPegen_augoperator ( p , BitOr );
2457 if (_res == NULL && PyErr_Occurred()) {
2458 p->error_indicator = 1;
2459 D(p->level--);
2460 return NULL;
2461 }
2462 goto done;
2463 }
2464 p->mark = _mark;
2465 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2466 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
2467 }
2468 { // '^='
2469 if (p->error_indicator) {
2470 D(p->level--);
2471 return NULL;
2472 }
2473 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
2474 Token * _literal;
2475 if (
2476 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
2477 )
2478 {
2479 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
2480 _res = _PyPegen_augoperator ( p , BitXor );
2481 if (_res == NULL && PyErr_Occurred()) {
2482 p->error_indicator = 1;
2483 D(p->level--);
2484 return NULL;
2485 }
2486 goto done;
2487 }
2488 p->mark = _mark;
2489 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
2491 }
2492 { // '<<='
2493 if (p->error_indicator) {
2494 D(p->level--);
2495 return NULL;
2496 }
2497 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
2498 Token * _literal;
2499 if (
2500 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
2501 )
2502 {
2503 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
2504 _res = _PyPegen_augoperator ( p , LShift );
2505 if (_res == NULL && PyErr_Occurred()) {
2506 p->error_indicator = 1;
2507 D(p->level--);
2508 return NULL;
2509 }
2510 goto done;
2511 }
2512 p->mark = _mark;
2513 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2514 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
2515 }
2516 { // '>>='
2517 if (p->error_indicator) {
2518 D(p->level--);
2519 return NULL;
2520 }
2521 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
2522 Token * _literal;
2523 if (
2524 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
2525 )
2526 {
2527 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
2528 _res = _PyPegen_augoperator ( p , RShift );
2529 if (_res == NULL && PyErr_Occurred()) {
2530 p->error_indicator = 1;
2531 D(p->level--);
2532 return NULL;
2533 }
2534 goto done;
2535 }
2536 p->mark = _mark;
2537 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2538 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
2539 }
2540 { // '**='
2541 if (p->error_indicator) {
2542 D(p->level--);
2543 return NULL;
2544 }
2545 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
2546 Token * _literal;
2547 if (
2548 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
2549 )
2550 {
2551 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
2552 _res = _PyPegen_augoperator ( p , Pow );
2553 if (_res == NULL && PyErr_Occurred()) {
2554 p->error_indicator = 1;
2555 D(p->level--);
2556 return NULL;
2557 }
2558 goto done;
2559 }
2560 p->mark = _mark;
2561 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
2563 }
2564 { // '//='
2565 if (p->error_indicator) {
2566 D(p->level--);
2567 return NULL;
2568 }
2569 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
2570 Token * _literal;
2571 if (
2572 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
2573 )
2574 {
2575 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
2576 _res = _PyPegen_augoperator ( p , FloorDiv );
2577 if (_res == NULL && PyErr_Occurred()) {
2578 p->error_indicator = 1;
2579 D(p->level--);
2580 return NULL;
2581 }
2582 goto done;
2583 }
2584 p->mark = _mark;
2585 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2586 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
2587 }
2588 _res = NULL;
2589 done:
2590 D(p->level--);
2591 return _res;
2592}
2593
2594// global_stmt: 'global' ','.NAME+
2595static stmt_ty
2596global_stmt_rule(Parser *p)
2597{
2598 D(p->level++);
2599 if (p->error_indicator) {
2600 D(p->level--);
2601 return NULL;
2602 }
2603 stmt_ty _res = NULL;
2604 int _mark = p->mark;
2605 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2606 p->error_indicator = 1;
2607 D(p->level--);
2608 return NULL;
2609 }
2610 int _start_lineno = p->tokens[_mark]->lineno;
2611 UNUSED(_start_lineno); // Only used by EXTRA macro
2612 int _start_col_offset = p->tokens[_mark]->col_offset;
2613 UNUSED(_start_col_offset); // Only used by EXTRA macro
2614 { // 'global' ','.NAME+
2615 if (p->error_indicator) {
2616 D(p->level--);
2617 return NULL;
2618 }
2619 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2620 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002621 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002622 if (
2623 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
2624 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002625 (a = (asdl_expr_seq*)_gather_25_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002626 )
2627 {
2628 D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2629 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2630 if (_token == NULL) {
2631 D(p->level--);
2632 return NULL;
2633 }
2634 int _end_lineno = _token->end_lineno;
2635 UNUSED(_end_lineno); // Only used by EXTRA macro
2636 int _end_col_offset = _token->end_col_offset;
2637 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002638 _res = _Py_Global ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002639 if (_res == NULL && PyErr_Occurred()) {
2640 p->error_indicator = 1;
2641 D(p->level--);
2642 return NULL;
2643 }
2644 goto done;
2645 }
2646 p->mark = _mark;
2647 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2648 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
2649 }
2650 _res = NULL;
2651 done:
2652 D(p->level--);
2653 return _res;
2654}
2655
2656// nonlocal_stmt: 'nonlocal' ','.NAME+
2657static stmt_ty
2658nonlocal_stmt_rule(Parser *p)
2659{
2660 D(p->level++);
2661 if (p->error_indicator) {
2662 D(p->level--);
2663 return NULL;
2664 }
2665 stmt_ty _res = NULL;
2666 int _mark = p->mark;
2667 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2668 p->error_indicator = 1;
2669 D(p->level--);
2670 return NULL;
2671 }
2672 int _start_lineno = p->tokens[_mark]->lineno;
2673 UNUSED(_start_lineno); // Only used by EXTRA macro
2674 int _start_col_offset = p->tokens[_mark]->col_offset;
2675 UNUSED(_start_col_offset); // Only used by EXTRA macro
2676 { // 'nonlocal' ','.NAME+
2677 if (p->error_indicator) {
2678 D(p->level--);
2679 return NULL;
2680 }
2681 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2682 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002683 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002684 if (
2685 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
2686 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002687 (a = (asdl_expr_seq*)_gather_27_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002688 )
2689 {
2690 D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2691 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2692 if (_token == NULL) {
2693 D(p->level--);
2694 return NULL;
2695 }
2696 int _end_lineno = _token->end_lineno;
2697 UNUSED(_end_lineno); // Only used by EXTRA macro
2698 int _end_col_offset = _token->end_col_offset;
2699 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002700 _res = _Py_Nonlocal ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002701 if (_res == NULL && PyErr_Occurred()) {
2702 p->error_indicator = 1;
2703 D(p->level--);
2704 return NULL;
2705 }
2706 goto done;
2707 }
2708 p->mark = _mark;
2709 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2710 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
2711 }
2712 _res = NULL;
2713 done:
2714 D(p->level--);
2715 return _res;
2716}
2717
2718// yield_stmt: yield_expr
2719static stmt_ty
2720yield_stmt_rule(Parser *p)
2721{
2722 D(p->level++);
2723 if (p->error_indicator) {
2724 D(p->level--);
2725 return NULL;
2726 }
2727 stmt_ty _res = NULL;
2728 int _mark = p->mark;
2729 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2730 p->error_indicator = 1;
2731 D(p->level--);
2732 return NULL;
2733 }
2734 int _start_lineno = p->tokens[_mark]->lineno;
2735 UNUSED(_start_lineno); // Only used by EXTRA macro
2736 int _start_col_offset = p->tokens[_mark]->col_offset;
2737 UNUSED(_start_col_offset); // Only used by EXTRA macro
2738 { // yield_expr
2739 if (p->error_indicator) {
2740 D(p->level--);
2741 return NULL;
2742 }
2743 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2744 expr_ty y;
2745 if (
2746 (y = yield_expr_rule(p)) // yield_expr
2747 )
2748 {
2749 D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2750 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2751 if (_token == NULL) {
2752 D(p->level--);
2753 return NULL;
2754 }
2755 int _end_lineno = _token->end_lineno;
2756 UNUSED(_end_lineno); // Only used by EXTRA macro
2757 int _end_col_offset = _token->end_col_offset;
2758 UNUSED(_end_col_offset); // Only used by EXTRA macro
2759 _res = _Py_Expr ( y , EXTRA );
2760 if (_res == NULL && PyErr_Occurred()) {
2761 p->error_indicator = 1;
2762 D(p->level--);
2763 return NULL;
2764 }
2765 goto done;
2766 }
2767 p->mark = _mark;
2768 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
2770 }
2771 _res = NULL;
2772 done:
2773 D(p->level--);
2774 return _res;
2775}
2776
2777// assert_stmt: 'assert' expression [',' expression]
2778static stmt_ty
2779assert_stmt_rule(Parser *p)
2780{
2781 D(p->level++);
2782 if (p->error_indicator) {
2783 D(p->level--);
2784 return NULL;
2785 }
2786 stmt_ty _res = NULL;
2787 int _mark = p->mark;
2788 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2789 p->error_indicator = 1;
2790 D(p->level--);
2791 return NULL;
2792 }
2793 int _start_lineno = p->tokens[_mark]->lineno;
2794 UNUSED(_start_lineno); // Only used by EXTRA macro
2795 int _start_col_offset = p->tokens[_mark]->col_offset;
2796 UNUSED(_start_col_offset); // Only used by EXTRA macro
2797 { // 'assert' expression [',' expression]
2798 if (p->error_indicator) {
2799 D(p->level--);
2800 return NULL;
2801 }
2802 D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
2803 Token * _keyword;
2804 expr_ty a;
2805 void *b;
2806 if (
2807 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
2808 &&
2809 (a = expression_rule(p)) // expression
2810 &&
2811 (b = _tmp_29_rule(p), 1) // [',' expression]
2812 )
2813 {
2814 D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
2815 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2816 if (_token == NULL) {
2817 D(p->level--);
2818 return NULL;
2819 }
2820 int _end_lineno = _token->end_lineno;
2821 UNUSED(_end_lineno); // Only used by EXTRA macro
2822 int _end_col_offset = _token->end_col_offset;
2823 UNUSED(_end_col_offset); // Only used by EXTRA macro
2824 _res = _Py_Assert ( a , b , EXTRA );
2825 if (_res == NULL && PyErr_Occurred()) {
2826 p->error_indicator = 1;
2827 D(p->level--);
2828 return NULL;
2829 }
2830 goto done;
2831 }
2832 p->mark = _mark;
2833 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2834 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
2835 }
2836 _res = NULL;
2837 done:
2838 D(p->level--);
2839 return _res;
2840}
2841
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002842// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002843static stmt_ty
2844del_stmt_rule(Parser *p)
2845{
2846 D(p->level++);
2847 if (p->error_indicator) {
2848 D(p->level--);
2849 return NULL;
2850 }
2851 stmt_ty _res = NULL;
2852 int _mark = p->mark;
2853 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2854 p->error_indicator = 1;
2855 D(p->level--);
2856 return NULL;
2857 }
2858 int _start_lineno = p->tokens[_mark]->lineno;
2859 UNUSED(_start_lineno); // Only used by EXTRA macro
2860 int _start_col_offset = p->tokens[_mark]->col_offset;
2861 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002862 { // 'del' del_targets &(';' | NEWLINE)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002863 if (p->error_indicator) {
2864 D(p->level--);
2865 return NULL;
2866 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002867 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 +01002868 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002869 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002870 if (
2871 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
2872 &&
2873 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002874 &&
2875 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002876 )
2877 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002878 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 +01002879 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2880 if (_token == NULL) {
2881 D(p->level--);
2882 return NULL;
2883 }
2884 int _end_lineno = _token->end_lineno;
2885 UNUSED(_end_lineno); // Only used by EXTRA macro
2886 int _end_col_offset = _token->end_col_offset;
2887 UNUSED(_end_col_offset); // Only used by EXTRA macro
2888 _res = _Py_Delete ( a , EXTRA );
2889 if (_res == NULL && PyErr_Occurred()) {
2890 p->error_indicator = 1;
2891 D(p->level--);
2892 return NULL;
2893 }
2894 goto done;
2895 }
2896 p->mark = _mark;
2897 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002898 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
2899 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002900 if (p->call_invalid_rules) { // invalid_del_stmt
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002901 if (p->error_indicator) {
2902 D(p->level--);
2903 return NULL;
2904 }
2905 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
2906 void *invalid_del_stmt_var;
2907 if (
2908 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
2909 )
2910 {
2911 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
2912 _res = invalid_del_stmt_var;
2913 goto done;
2914 }
2915 p->mark = _mark;
2916 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002918 }
2919 _res = NULL;
2920 done:
2921 D(p->level--);
2922 return _res;
2923}
2924
2925// import_stmt: import_name | import_from
2926static stmt_ty
2927import_stmt_rule(Parser *p)
2928{
2929 D(p->level++);
2930 if (p->error_indicator) {
2931 D(p->level--);
2932 return NULL;
2933 }
2934 stmt_ty _res = NULL;
2935 int _mark = p->mark;
2936 { // import_name
2937 if (p->error_indicator) {
2938 D(p->level--);
2939 return NULL;
2940 }
2941 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
2942 stmt_ty import_name_var;
2943 if (
2944 (import_name_var = import_name_rule(p)) // import_name
2945 )
2946 {
2947 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
2948 _res = import_name_var;
2949 goto done;
2950 }
2951 p->mark = _mark;
2952 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2953 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
2954 }
2955 { // import_from
2956 if (p->error_indicator) {
2957 D(p->level--);
2958 return NULL;
2959 }
2960 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
2961 stmt_ty import_from_var;
2962 if (
2963 (import_from_var = import_from_rule(p)) // import_from
2964 )
2965 {
2966 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
2967 _res = import_from_var;
2968 goto done;
2969 }
2970 p->mark = _mark;
2971 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2972 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
2973 }
2974 _res = NULL;
2975 done:
2976 D(p->level--);
2977 return _res;
2978}
2979
2980// import_name: 'import' dotted_as_names
2981static stmt_ty
2982import_name_rule(Parser *p)
2983{
2984 D(p->level++);
2985 if (p->error_indicator) {
2986 D(p->level--);
2987 return NULL;
2988 }
2989 stmt_ty _res = NULL;
2990 int _mark = p->mark;
2991 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2992 p->error_indicator = 1;
2993 D(p->level--);
2994 return NULL;
2995 }
2996 int _start_lineno = p->tokens[_mark]->lineno;
2997 UNUSED(_start_lineno); // Only used by EXTRA macro
2998 int _start_col_offset = p->tokens[_mark]->col_offset;
2999 UNUSED(_start_col_offset); // Only used by EXTRA macro
3000 { // 'import' dotted_as_names
3001 if (p->error_indicator) {
3002 D(p->level--);
3003 return NULL;
3004 }
3005 D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3006 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003007 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003008 if (
3009 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
3010 &&
3011 (a = dotted_as_names_rule(p)) // dotted_as_names
3012 )
3013 {
3014 D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3015 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3016 if (_token == NULL) {
3017 D(p->level--);
3018 return NULL;
3019 }
3020 int _end_lineno = _token->end_lineno;
3021 UNUSED(_end_lineno); // Only used by EXTRA macro
3022 int _end_col_offset = _token->end_col_offset;
3023 UNUSED(_end_col_offset); // Only used by EXTRA macro
3024 _res = _Py_Import ( a , EXTRA );
3025 if (_res == NULL && PyErr_Occurred()) {
3026 p->error_indicator = 1;
3027 D(p->level--);
3028 return NULL;
3029 }
3030 goto done;
3031 }
3032 p->mark = _mark;
3033 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3034 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
3035 }
3036 _res = NULL;
3037 done:
3038 D(p->level--);
3039 return _res;
3040}
3041
3042// import_from:
3043// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3044// | 'from' (('.' | '...'))+ 'import' import_from_targets
3045static stmt_ty
3046import_from_rule(Parser *p)
3047{
3048 D(p->level++);
3049 if (p->error_indicator) {
3050 D(p->level--);
3051 return NULL;
3052 }
3053 stmt_ty _res = NULL;
3054 int _mark = p->mark;
3055 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3056 p->error_indicator = 1;
3057 D(p->level--);
3058 return NULL;
3059 }
3060 int _start_lineno = p->tokens[_mark]->lineno;
3061 UNUSED(_start_lineno); // Only used by EXTRA macro
3062 int _start_col_offset = p->tokens[_mark]->col_offset;
3063 UNUSED(_start_col_offset); // Only used by EXTRA macro
3064 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3065 if (p->error_indicator) {
3066 D(p->level--);
3067 return NULL;
3068 }
3069 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3070 Token * _keyword;
3071 Token * _keyword_1;
3072 asdl_seq * a;
3073 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003074 asdl_alias_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003075 if (
3076 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3077 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003078 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003079 &&
3080 (b = dotted_name_rule(p)) // dotted_name
3081 &&
3082 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3083 &&
3084 (c = import_from_targets_rule(p)) // import_from_targets
3085 )
3086 {
3087 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3088 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3089 if (_token == NULL) {
3090 D(p->level--);
3091 return NULL;
3092 }
3093 int _end_lineno = _token->end_lineno;
3094 UNUSED(_end_lineno); // Only used by EXTRA macro
3095 int _end_col_offset = _token->end_col_offset;
3096 UNUSED(_end_col_offset); // Only used by EXTRA macro
3097 _res = _Py_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
3098 if (_res == NULL && PyErr_Occurred()) {
3099 p->error_indicator = 1;
3100 D(p->level--);
3101 return NULL;
3102 }
3103 goto done;
3104 }
3105 p->mark = _mark;
3106 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3107 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3108 }
3109 { // 'from' (('.' | '...'))+ 'import' import_from_targets
3110 if (p->error_indicator) {
3111 D(p->level--);
3112 return NULL;
3113 }
3114 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3115 Token * _keyword;
3116 Token * _keyword_1;
3117 asdl_seq * a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003118 asdl_alias_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003119 if (
3120 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3121 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003122 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003123 &&
3124 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3125 &&
3126 (b = import_from_targets_rule(p)) // import_from_targets
3127 )
3128 {
3129 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3130 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3131 if (_token == NULL) {
3132 D(p->level--);
3133 return NULL;
3134 }
3135 int _end_lineno = _token->end_lineno;
3136 UNUSED(_end_lineno); // Only used by EXTRA macro
3137 int _end_col_offset = _token->end_col_offset;
3138 UNUSED(_end_col_offset); // Only used by EXTRA macro
3139 _res = _Py_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
3140 if (_res == NULL && PyErr_Occurred()) {
3141 p->error_indicator = 1;
3142 D(p->level--);
3143 return NULL;
3144 }
3145 goto done;
3146 }
3147 p->mark = _mark;
3148 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3150 }
3151 _res = NULL;
3152 done:
3153 D(p->level--);
3154 return _res;
3155}
3156
3157// import_from_targets:
3158// | '(' import_from_as_names ','? ')'
3159// | import_from_as_names !','
3160// | '*'
3161// | invalid_import_from_targets
Pablo Galindoa5634c42020-09-16 19:42:00 +01003162static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003163import_from_targets_rule(Parser *p)
3164{
3165 D(p->level++);
3166 if (p->error_indicator) {
3167 D(p->level--);
3168 return NULL;
3169 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003170 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003171 int _mark = p->mark;
3172 { // '(' import_from_as_names ','? ')'
3173 if (p->error_indicator) {
3174 D(p->level--);
3175 return NULL;
3176 }
3177 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3178 Token * _literal;
3179 Token * _literal_1;
3180 void *_opt_var;
3181 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01003182 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003183 if (
3184 (_literal = _PyPegen_expect_token(p, 7)) // token='('
3185 &&
3186 (a = import_from_as_names_rule(p)) // import_from_as_names
3187 &&
3188 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
3189 &&
3190 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
3191 )
3192 {
3193 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3194 _res = a;
3195 if (_res == NULL && PyErr_Occurred()) {
3196 p->error_indicator = 1;
3197 D(p->level--);
3198 return NULL;
3199 }
3200 goto done;
3201 }
3202 p->mark = _mark;
3203 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3204 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3205 }
3206 { // import_from_as_names !','
3207 if (p->error_indicator) {
3208 D(p->level--);
3209 return NULL;
3210 }
3211 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 +01003212 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003213 if (
3214 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
3215 &&
3216 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
3217 )
3218 {
3219 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
3220 _res = import_from_as_names_var;
3221 goto done;
3222 }
3223 p->mark = _mark;
3224 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3225 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
3226 }
3227 { // '*'
3228 if (p->error_indicator) {
3229 D(p->level--);
3230 return NULL;
3231 }
3232 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
3233 Token * _literal;
3234 if (
3235 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
3236 )
3237 {
3238 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03003239 _res = ( asdl_alias_seq * ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003240 if (_res == NULL && PyErr_Occurred()) {
3241 p->error_indicator = 1;
3242 D(p->level--);
3243 return NULL;
3244 }
3245 goto done;
3246 }
3247 p->mark = _mark;
3248 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3249 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
3250 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003251 if (p->call_invalid_rules) { // invalid_import_from_targets
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003252 if (p->error_indicator) {
3253 D(p->level--);
3254 return NULL;
3255 }
3256 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3257 void *invalid_import_from_targets_var;
3258 if (
3259 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3260 )
3261 {
3262 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3263 _res = invalid_import_from_targets_var;
3264 goto done;
3265 }
3266 p->mark = _mark;
3267 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3268 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
3269 }
3270 _res = NULL;
3271 done:
3272 D(p->level--);
3273 return _res;
3274}
3275
3276// import_from_as_names: ','.import_from_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003277static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003278import_from_as_names_rule(Parser *p)
3279{
3280 D(p->level++);
3281 if (p->error_indicator) {
3282 D(p->level--);
3283 return NULL;
3284 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003285 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003286 int _mark = p->mark;
3287 { // ','.import_from_as_name+
3288 if (p->error_indicator) {
3289 D(p->level--);
3290 return NULL;
3291 }
3292 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 +01003293 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003294 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003295 (a = (asdl_alias_seq*)_gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003296 )
3297 {
3298 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
3299 _res = a;
3300 if (_res == NULL && PyErr_Occurred()) {
3301 p->error_indicator = 1;
3302 D(p->level--);
3303 return NULL;
3304 }
3305 goto done;
3306 }
3307 p->mark = _mark;
3308 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3309 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
3310 }
3311 _res = NULL;
3312 done:
3313 D(p->level--);
3314 return _res;
3315}
3316
3317// import_from_as_name: NAME ['as' NAME]
3318static alias_ty
3319import_from_as_name_rule(Parser *p)
3320{
3321 D(p->level++);
3322 if (p->error_indicator) {
3323 D(p->level--);
3324 return NULL;
3325 }
3326 alias_ty _res = NULL;
3327 int _mark = p->mark;
3328 { // NAME ['as' NAME]
3329 if (p->error_indicator) {
3330 D(p->level--);
3331 return NULL;
3332 }
3333 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3334 expr_ty a;
3335 void *b;
3336 if (
3337 (a = _PyPegen_name_token(p)) // NAME
3338 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003339 (b = _tmp_35_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003340 )
3341 {
3342 D(fprintf(stderr, "%*c+ import_from_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3343 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3344 if (_res == NULL && PyErr_Occurred()) {
3345 p->error_indicator = 1;
3346 D(p->level--);
3347 return NULL;
3348 }
3349 goto done;
3350 }
3351 p->mark = _mark;
3352 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
3354 }
3355 _res = NULL;
3356 done:
3357 D(p->level--);
3358 return _res;
3359}
3360
3361// dotted_as_names: ','.dotted_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003362static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003363dotted_as_names_rule(Parser *p)
3364{
3365 D(p->level++);
3366 if (p->error_indicator) {
3367 D(p->level--);
3368 return NULL;
3369 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003370 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003371 int _mark = p->mark;
3372 { // ','.dotted_as_name+
3373 if (p->error_indicator) {
3374 D(p->level--);
3375 return NULL;
3376 }
3377 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 +01003378 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003379 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003380 (a = (asdl_alias_seq*)_gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003381 )
3382 {
3383 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
3384 _res = a;
3385 if (_res == NULL && PyErr_Occurred()) {
3386 p->error_indicator = 1;
3387 D(p->level--);
3388 return NULL;
3389 }
3390 goto done;
3391 }
3392 p->mark = _mark;
3393 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3394 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
3395 }
3396 _res = NULL;
3397 done:
3398 D(p->level--);
3399 return _res;
3400}
3401
3402// dotted_as_name: dotted_name ['as' NAME]
3403static alias_ty
3404dotted_as_name_rule(Parser *p)
3405{
3406 D(p->level++);
3407 if (p->error_indicator) {
3408 D(p->level--);
3409 return NULL;
3410 }
3411 alias_ty _res = NULL;
3412 int _mark = p->mark;
3413 { // dotted_name ['as' NAME]
3414 if (p->error_indicator) {
3415 D(p->level--);
3416 return NULL;
3417 }
3418 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3419 expr_ty a;
3420 void *b;
3421 if (
3422 (a = dotted_name_rule(p)) // dotted_name
3423 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003424 (b = _tmp_38_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003425 )
3426 {
3427 D(fprintf(stderr, "%*c+ dotted_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3428 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3429 if (_res == NULL && PyErr_Occurred()) {
3430 p->error_indicator = 1;
3431 D(p->level--);
3432 return NULL;
3433 }
3434 goto done;
3435 }
3436 p->mark = _mark;
3437 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
3439 }
3440 _res = NULL;
3441 done:
3442 D(p->level--);
3443 return _res;
3444}
3445
3446// Left-recursive
3447// dotted_name: dotted_name '.' NAME | NAME
3448static expr_ty dotted_name_raw(Parser *);
3449static expr_ty
3450dotted_name_rule(Parser *p)
3451{
3452 D(p->level++);
3453 expr_ty _res = NULL;
3454 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3455 D(p->level--);
3456 return _res;
3457 }
3458 int _mark = p->mark;
3459 int _resmark = p->mark;
3460 while (1) {
3461 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
3462 if (tmpvar_0) {
3463 D(p->level--);
3464 return _res;
3465 }
3466 p->mark = _mark;
3467 void *_raw = dotted_name_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02003468 if (p->error_indicator)
3469 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003470 if (_raw == NULL || p->mark <= _resmark)
3471 break;
3472 _resmark = p->mark;
3473 _res = _raw;
3474 }
3475 p->mark = _resmark;
3476 D(p->level--);
3477 return _res;
3478}
3479static expr_ty
3480dotted_name_raw(Parser *p)
3481{
3482 D(p->level++);
3483 if (p->error_indicator) {
3484 D(p->level--);
3485 return NULL;
3486 }
3487 expr_ty _res = NULL;
3488 int _mark = p->mark;
3489 { // dotted_name '.' NAME
3490 if (p->error_indicator) {
3491 D(p->level--);
3492 return NULL;
3493 }
3494 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3495 Token * _literal;
3496 expr_ty a;
3497 expr_ty b;
3498 if (
3499 (a = dotted_name_rule(p)) // dotted_name
3500 &&
3501 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
3502 &&
3503 (b = _PyPegen_name_token(p)) // NAME
3504 )
3505 {
3506 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3507 _res = _PyPegen_join_names_with_dot ( p , a , b );
3508 if (_res == NULL && PyErr_Occurred()) {
3509 p->error_indicator = 1;
3510 D(p->level--);
3511 return NULL;
3512 }
3513 goto done;
3514 }
3515 p->mark = _mark;
3516 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3517 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
3518 }
3519 { // NAME
3520 if (p->error_indicator) {
3521 D(p->level--);
3522 return NULL;
3523 }
3524 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
3525 expr_ty name_var;
3526 if (
3527 (name_var = _PyPegen_name_token(p)) // NAME
3528 )
3529 {
3530 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
3531 _res = name_var;
3532 goto done;
3533 }
3534 p->mark = _mark;
3535 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3536 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
3537 }
3538 _res = NULL;
3539 done:
3540 D(p->level--);
3541 return _res;
3542}
3543
3544// if_stmt:
3545// | 'if' named_expression ':' block elif_stmt
3546// | 'if' named_expression ':' block else_block?
3547static stmt_ty
3548if_stmt_rule(Parser *p)
3549{
3550 D(p->level++);
3551 if (p->error_indicator) {
3552 D(p->level--);
3553 return NULL;
3554 }
3555 stmt_ty _res = NULL;
3556 int _mark = p->mark;
3557 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3558 p->error_indicator = 1;
3559 D(p->level--);
3560 return NULL;
3561 }
3562 int _start_lineno = p->tokens[_mark]->lineno;
3563 UNUSED(_start_lineno); // Only used by EXTRA macro
3564 int _start_col_offset = p->tokens[_mark]->col_offset;
3565 UNUSED(_start_col_offset); // Only used by EXTRA macro
3566 { // 'if' named_expression ':' block elif_stmt
3567 if (p->error_indicator) {
3568 D(p->level--);
3569 return NULL;
3570 }
3571 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
3572 Token * _keyword;
3573 Token * _literal;
3574 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003575 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003576 stmt_ty c;
3577 if (
3578 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3579 &&
3580 (a = named_expression_rule(p)) // named_expression
3581 &&
3582 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
3583 &&
3584 (b = block_rule(p)) // block
3585 &&
3586 (c = elif_stmt_rule(p)) // elif_stmt
3587 )
3588 {
3589 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
3590 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3591 if (_token == NULL) {
3592 D(p->level--);
3593 return NULL;
3594 }
3595 int _end_lineno = _token->end_lineno;
3596 UNUSED(_end_lineno); // Only used by EXTRA macro
3597 int _end_col_offset = _token->end_col_offset;
3598 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03003599 _res = _Py_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003600 if (_res == NULL && PyErr_Occurred()) {
3601 p->error_indicator = 1;
3602 D(p->level--);
3603 return NULL;
3604 }
3605 goto done;
3606 }
3607 p->mark = _mark;
3608 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3609 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
3610 }
3611 { // 'if' named_expression ':' block else_block?
3612 if (p->error_indicator) {
3613 D(p->level--);
3614 return NULL;
3615 }
3616 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block else_block?"));
3617 Token * _keyword;
3618 Token * _literal;
3619 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003620 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003621 void *c;
3622 if (
3623 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3624 &&
3625 (a = named_expression_rule(p)) // named_expression
3626 &&
3627 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
3628 &&
3629 (b = block_rule(p)) // block
3630 &&
3631 (c = else_block_rule(p), 1) // else_block?
3632 )
3633 {
3634 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block else_block?"));
3635 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3636 if (_token == NULL) {
3637 D(p->level--);
3638 return NULL;
3639 }
3640 int _end_lineno = _token->end_lineno;
3641 UNUSED(_end_lineno); // Only used by EXTRA macro
3642 int _end_col_offset = _token->end_col_offset;
3643 UNUSED(_end_col_offset); // Only used by EXTRA macro
3644 _res = _Py_If ( a , b , c , EXTRA );
3645 if (_res == NULL && PyErr_Occurred()) {
3646 p->error_indicator = 1;
3647 D(p->level--);
3648 return NULL;
3649 }
3650 goto done;
3651 }
3652 p->mark = _mark;
3653 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3654 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
3655 }
3656 _res = NULL;
3657 done:
3658 D(p->level--);
3659 return _res;
3660}
3661
3662// elif_stmt:
3663// | 'elif' named_expression ':' block elif_stmt
3664// | 'elif' named_expression ':' block else_block?
3665static stmt_ty
3666elif_stmt_rule(Parser *p)
3667{
3668 D(p->level++);
3669 if (p->error_indicator) {
3670 D(p->level--);
3671 return NULL;
3672 }
3673 stmt_ty _res = NULL;
3674 int _mark = p->mark;
3675 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3676 p->error_indicator = 1;
3677 D(p->level--);
3678 return NULL;
3679 }
3680 int _start_lineno = p->tokens[_mark]->lineno;
3681 UNUSED(_start_lineno); // Only used by EXTRA macro
3682 int _start_col_offset = p->tokens[_mark]->col_offset;
3683 UNUSED(_start_col_offset); // Only used by EXTRA macro
3684 { // 'elif' named_expression ':' block elif_stmt
3685 if (p->error_indicator) {
3686 D(p->level--);
3687 return NULL;
3688 }
3689 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
3690 Token * _keyword;
3691 Token * _literal;
3692 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003693 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003694 stmt_ty c;
3695 if (
3696 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
3697 &&
3698 (a = named_expression_rule(p)) // named_expression
3699 &&
3700 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
3701 &&
3702 (b = block_rule(p)) // block
3703 &&
3704 (c = elif_stmt_rule(p)) // elif_stmt
3705 )
3706 {
3707 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
3708 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3709 if (_token == NULL) {
3710 D(p->level--);
3711 return NULL;
3712 }
3713 int _end_lineno = _token->end_lineno;
3714 UNUSED(_end_lineno); // Only used by EXTRA macro
3715 int _end_col_offset = _token->end_col_offset;
3716 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03003717 _res = _Py_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003718 if (_res == NULL && PyErr_Occurred()) {
3719 p->error_indicator = 1;
3720 D(p->level--);
3721 return NULL;
3722 }
3723 goto done;
3724 }
3725 p->mark = _mark;
3726 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3727 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
3728 }
3729 { // 'elif' named_expression ':' block else_block?
3730 if (p->error_indicator) {
3731 D(p->level--);
3732 return NULL;
3733 }
3734 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block else_block?"));
3735 Token * _keyword;
3736 Token * _literal;
3737 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003738 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003739 void *c;
3740 if (
3741 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
3742 &&
3743 (a = named_expression_rule(p)) // named_expression
3744 &&
3745 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
3746 &&
3747 (b = block_rule(p)) // block
3748 &&
3749 (c = else_block_rule(p), 1) // else_block?
3750 )
3751 {
3752 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block else_block?"));
3753 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3754 if (_token == NULL) {
3755 D(p->level--);
3756 return NULL;
3757 }
3758 int _end_lineno = _token->end_lineno;
3759 UNUSED(_end_lineno); // Only used by EXTRA macro
3760 int _end_col_offset = _token->end_col_offset;
3761 UNUSED(_end_col_offset); // Only used by EXTRA macro
3762 _res = _Py_If ( a , b , c , EXTRA );
3763 if (_res == NULL && PyErr_Occurred()) {
3764 p->error_indicator = 1;
3765 D(p->level--);
3766 return NULL;
3767 }
3768 goto done;
3769 }
3770 p->mark = _mark;
3771 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3772 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
3773 }
3774 _res = NULL;
3775 done:
3776 D(p->level--);
3777 return _res;
3778}
3779
3780// else_block: 'else' ':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01003781static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003782else_block_rule(Parser *p)
3783{
3784 D(p->level++);
3785 if (p->error_indicator) {
3786 D(p->level--);
3787 return NULL;
3788 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003789 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003790 int _mark = p->mark;
3791 { // 'else' ':' block
3792 if (p->error_indicator) {
3793 D(p->level--);
3794 return NULL;
3795 }
3796 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' block"));
3797 Token * _keyword;
3798 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003799 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003800 if (
3801 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
3802 &&
3803 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
3804 &&
3805 (b = block_rule(p)) // block
3806 )
3807 {
3808 D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' ':' block"));
3809 _res = b;
3810 if (_res == NULL && PyErr_Occurred()) {
3811 p->error_indicator = 1;
3812 D(p->level--);
3813 return NULL;
3814 }
3815 goto done;
3816 }
3817 p->mark = _mark;
3818 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
3819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' block"));
3820 }
3821 _res = NULL;
3822 done:
3823 D(p->level--);
3824 return _res;
3825}
3826
3827// while_stmt: 'while' named_expression ':' block else_block?
3828static stmt_ty
3829while_stmt_rule(Parser *p)
3830{
3831 D(p->level++);
3832 if (p->error_indicator) {
3833 D(p->level--);
3834 return NULL;
3835 }
3836 stmt_ty _res = NULL;
3837 int _mark = p->mark;
3838 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3839 p->error_indicator = 1;
3840 D(p->level--);
3841 return NULL;
3842 }
3843 int _start_lineno = p->tokens[_mark]->lineno;
3844 UNUSED(_start_lineno); // Only used by EXTRA macro
3845 int _start_col_offset = p->tokens[_mark]->col_offset;
3846 UNUSED(_start_col_offset); // Only used by EXTRA macro
3847 { // 'while' named_expression ':' block else_block?
3848 if (p->error_indicator) {
3849 D(p->level--);
3850 return NULL;
3851 }
3852 D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' block else_block?"));
3853 Token * _keyword;
3854 Token * _literal;
3855 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003856 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003857 void *c;
3858 if (
3859 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
3860 &&
3861 (a = named_expression_rule(p)) // named_expression
3862 &&
3863 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
3864 &&
3865 (b = block_rule(p)) // block
3866 &&
3867 (c = else_block_rule(p), 1) // else_block?
3868 )
3869 {
3870 D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' block else_block?"));
3871 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3872 if (_token == NULL) {
3873 D(p->level--);
3874 return NULL;
3875 }
3876 int _end_lineno = _token->end_lineno;
3877 UNUSED(_end_lineno); // Only used by EXTRA macro
3878 int _end_col_offset = _token->end_col_offset;
3879 UNUSED(_end_col_offset); // Only used by EXTRA macro
3880 _res = _Py_While ( a , b , c , EXTRA );
3881 if (_res == NULL && PyErr_Occurred()) {
3882 p->error_indicator = 1;
3883 D(p->level--);
3884 return NULL;
3885 }
3886 goto done;
3887 }
3888 p->mark = _mark;
3889 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3890 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
3891 }
3892 _res = NULL;
3893 done:
3894 D(p->level--);
3895 return _res;
3896}
3897
3898// for_stmt:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003899// | 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
3900// | ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
3901// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003902static stmt_ty
3903for_stmt_rule(Parser *p)
3904{
3905 D(p->level++);
3906 if (p->error_indicator) {
3907 D(p->level--);
3908 return NULL;
3909 }
3910 stmt_ty _res = NULL;
3911 int _mark = p->mark;
3912 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3913 p->error_indicator = 1;
3914 D(p->level--);
3915 return NULL;
3916 }
3917 int _start_lineno = p->tokens[_mark]->lineno;
3918 UNUSED(_start_lineno); // Only used by EXTRA macro
3919 int _start_col_offset = p->tokens[_mark]->col_offset;
3920 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003921 { // 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003922 if (p->error_indicator) {
3923 D(p->level--);
3924 return NULL;
3925 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003926 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?"));
3927 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003928 Token * _keyword;
3929 Token * _keyword_1;
3930 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003931 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003932 void *el;
3933 expr_ty ex;
3934 expr_ty t;
3935 void *tc;
3936 if (
3937 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
3938 &&
3939 (t = star_targets_rule(p)) // star_targets
3940 &&
3941 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
3942 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003943 (_cut_var = 1)
3944 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003945 (ex = star_expressions_rule(p)) // star_expressions
3946 &&
3947 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
3948 &&
3949 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
3950 &&
3951 (b = block_rule(p)) // block
3952 &&
3953 (el = else_block_rule(p), 1) // else_block?
3954 )
3955 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003956 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 +01003957 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3958 if (_token == NULL) {
3959 D(p->level--);
3960 return NULL;
3961 }
3962 int _end_lineno = _token->end_lineno;
3963 UNUSED(_end_lineno); // Only used by EXTRA macro
3964 int _end_col_offset = _token->end_col_offset;
3965 UNUSED(_end_col_offset); // Only used by EXTRA macro
3966 _res = _Py_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
3967 if (_res == NULL && PyErr_Occurred()) {
3968 p->error_indicator = 1;
3969 D(p->level--);
3970 return NULL;
3971 }
3972 goto done;
3973 }
3974 p->mark = _mark;
3975 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003976 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
3977 if (_cut_var) {
3978 D(p->level--);
3979 return NULL;
3980 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003981 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003982 { // ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003983 if (p->error_indicator) {
3984 D(p->level--);
3985 return NULL;
3986 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003987 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?"));
3988 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003989 Token * _keyword;
3990 Token * _keyword_1;
3991 Token * _literal;
3992 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003993 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003994 void *el;
3995 expr_ty ex;
3996 expr_ty t;
3997 void *tc;
3998 if (
3999 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4000 &&
4001 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4002 &&
4003 (t = star_targets_rule(p)) // star_targets
4004 &&
4005 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4006 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004007 (_cut_var = 1)
4008 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004009 (ex = star_expressions_rule(p)) // star_expressions
4010 &&
4011 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4012 &&
4013 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4014 &&
4015 (b = block_rule(p)) // block
4016 &&
4017 (el = else_block_rule(p), 1) // else_block?
4018 )
4019 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004020 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 +01004021 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4022 if (_token == NULL) {
4023 D(p->level--);
4024 return NULL;
4025 }
4026 int _end_lineno = _token->end_lineno;
4027 UNUSED(_end_lineno); // Only used by EXTRA macro
4028 int _end_col_offset = _token->end_col_offset;
4029 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03004030 _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 +01004031 if (_res == NULL && PyErr_Occurred()) {
4032 p->error_indicator = 1;
4033 D(p->level--);
4034 return NULL;
4035 }
4036 goto done;
4037 }
4038 p->mark = _mark;
4039 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004040 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
4041 if (_cut_var) {
4042 D(p->level--);
4043 return NULL;
4044 }
4045 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004046 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004047 if (p->error_indicator) {
4048 D(p->level--);
4049 return NULL;
4050 }
4051 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4052 void *invalid_for_target_var;
4053 if (
4054 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4055 )
4056 {
4057 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4058 _res = invalid_for_target_var;
4059 goto done;
4060 }
4061 p->mark = _mark;
4062 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004064 }
4065 _res = NULL;
4066 done:
4067 D(p->level--);
4068 return _res;
4069}
4070
4071// with_stmt:
4072// | 'with' '(' ','.with_item+ ','? ')' ':' block
4073// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
4074// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4075// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
4076static stmt_ty
4077with_stmt_rule(Parser *p)
4078{
4079 D(p->level++);
4080 if (p->error_indicator) {
4081 D(p->level--);
4082 return NULL;
4083 }
4084 stmt_ty _res = NULL;
4085 int _mark = p->mark;
4086 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4087 p->error_indicator = 1;
4088 D(p->level--);
4089 return NULL;
4090 }
4091 int _start_lineno = p->tokens[_mark]->lineno;
4092 UNUSED(_start_lineno); // Only used by EXTRA macro
4093 int _start_col_offset = p->tokens[_mark]->col_offset;
4094 UNUSED(_start_col_offset); // Only used by EXTRA macro
4095 { // 'with' '(' ','.with_item+ ','? ')' ':' block
4096 if (p->error_indicator) {
4097 D(p->level--);
4098 return NULL;
4099 }
4100 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4101 Token * _keyword;
4102 Token * _literal;
4103 Token * _literal_1;
4104 Token * _literal_2;
4105 void *_opt_var;
4106 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004107 asdl_withitem_seq* a;
4108 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004109 if (
4110 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4111 &&
4112 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4113 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004114 (a = (asdl_withitem_seq*)_gather_39_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004115 &&
4116 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4117 &&
4118 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4119 &&
4120 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4121 &&
4122 (b = block_rule(p)) // block
4123 )
4124 {
4125 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4126 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4127 if (_token == NULL) {
4128 D(p->level--);
4129 return NULL;
4130 }
4131 int _end_lineno = _token->end_lineno;
4132 UNUSED(_end_lineno); // Only used by EXTRA macro
4133 int _end_col_offset = _token->end_col_offset;
4134 UNUSED(_end_col_offset); // Only used by EXTRA macro
4135 _res = _Py_With ( a , b , NULL , EXTRA );
4136 if (_res == NULL && PyErr_Occurred()) {
4137 p->error_indicator = 1;
4138 D(p->level--);
4139 return NULL;
4140 }
4141 goto done;
4142 }
4143 p->mark = _mark;
4144 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4145 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4146 }
4147 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
4148 if (p->error_indicator) {
4149 D(p->level--);
4150 return NULL;
4151 }
4152 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4153 Token * _keyword;
4154 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004155 asdl_withitem_seq* a;
4156 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004157 void *tc;
4158 if (
4159 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4160 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004161 (a = (asdl_withitem_seq*)_gather_41_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004162 &&
4163 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4164 &&
4165 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4166 &&
4167 (b = block_rule(p)) // block
4168 )
4169 {
4170 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4171 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4172 if (_token == NULL) {
4173 D(p->level--);
4174 return NULL;
4175 }
4176 int _end_lineno = _token->end_lineno;
4177 UNUSED(_end_lineno); // Only used by EXTRA macro
4178 int _end_col_offset = _token->end_col_offset;
4179 UNUSED(_end_col_offset); // Only used by EXTRA macro
4180 _res = _Py_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
4181 if (_res == NULL && PyErr_Occurred()) {
4182 p->error_indicator = 1;
4183 D(p->level--);
4184 return NULL;
4185 }
4186 goto done;
4187 }
4188 p->mark = _mark;
4189 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4191 }
4192 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4193 if (p->error_indicator) {
4194 D(p->level--);
4195 return NULL;
4196 }
4197 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4198 Token * _keyword;
4199 Token * _literal;
4200 Token * _literal_1;
4201 Token * _literal_2;
4202 void *_opt_var;
4203 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004204 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004205 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004206 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004207 if (
4208 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4209 &&
4210 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4211 &&
4212 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4213 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004214 (a = (asdl_withitem_seq*)_gather_43_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004215 &&
4216 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4217 &&
4218 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4219 &&
4220 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4221 &&
4222 (b = block_rule(p)) // block
4223 )
4224 {
4225 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4226 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4227 if (_token == NULL) {
4228 D(p->level--);
4229 return NULL;
4230 }
4231 int _end_lineno = _token->end_lineno;
4232 UNUSED(_end_lineno); // Only used by EXTRA macro
4233 int _end_col_offset = _token->end_col_offset;
4234 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03004235 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NULL , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004236 if (_res == NULL && PyErr_Occurred()) {
4237 p->error_indicator = 1;
4238 D(p->level--);
4239 return NULL;
4240 }
4241 goto done;
4242 }
4243 p->mark = _mark;
4244 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4245 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4246 }
4247 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
4248 if (p->error_indicator) {
4249 D(p->level--);
4250 return NULL;
4251 }
4252 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4253 Token * _keyword;
4254 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004255 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004256 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004257 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004258 void *tc;
4259 if (
4260 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4261 &&
4262 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4263 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004264 (a = (asdl_withitem_seq*)_gather_45_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004265 &&
4266 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4267 &&
4268 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4269 &&
4270 (b = block_rule(p)) // block
4271 )
4272 {
4273 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4274 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4275 if (_token == NULL) {
4276 D(p->level--);
4277 return NULL;
4278 }
4279 int _end_lineno = _token->end_lineno;
4280 UNUSED(_end_lineno); // Only used by EXTRA macro
4281 int _end_col_offset = _token->end_col_offset;
4282 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03004283 _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 +01004284 if (_res == NULL && PyErr_Occurred()) {
4285 p->error_indicator = 1;
4286 D(p->level--);
4287 return NULL;
4288 }
4289 goto done;
4290 }
4291 p->mark = _mark;
4292 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4293 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4294 }
4295 _res = NULL;
4296 done:
4297 D(p->level--);
4298 return _res;
4299}
4300
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004301// with_item:
4302// | expression 'as' star_target &(',' | ')' | ':')
4303// | invalid_with_item
4304// | expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004305static withitem_ty
4306with_item_rule(Parser *p)
4307{
4308 D(p->level++);
4309 if (p->error_indicator) {
4310 D(p->level--);
4311 return NULL;
4312 }
4313 withitem_ty _res = NULL;
4314 int _mark = p->mark;
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004315 { // expression 'as' star_target &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004316 if (p->error_indicator) {
4317 D(p->level--);
4318 return NULL;
4319 }
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004320 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 +03004321 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004322 expr_ty e;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004323 expr_ty t;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004324 if (
4325 (e = expression_rule(p)) // expression
4326 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004327 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4328 &&
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004329 (t = star_target_rule(p)) // star_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004330 &&
4331 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004332 )
4333 {
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004334 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 +03004335 _res = _Py_withitem ( e , t , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004336 if (_res == NULL && PyErr_Occurred()) {
4337 p->error_indicator = 1;
4338 D(p->level--);
4339 return NULL;
4340 }
4341 goto done;
4342 }
4343 p->mark = _mark;
4344 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004345 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004346 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004347 if (p->call_invalid_rules) { // invalid_with_item
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004348 if (p->error_indicator) {
4349 D(p->level--);
4350 return NULL;
4351 }
4352 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4353 void *invalid_with_item_var;
4354 if (
4355 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4356 )
4357 {
4358 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4359 _res = invalid_with_item_var;
4360 goto done;
4361 }
4362 p->mark = _mark;
4363 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4364 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4365 }
4366 { // expression
4367 if (p->error_indicator) {
4368 D(p->level--);
4369 return NULL;
4370 }
4371 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4372 expr_ty e;
4373 if (
4374 (e = expression_rule(p)) // expression
4375 )
4376 {
4377 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
4378 _res = _Py_withitem ( e , NULL , p -> arena );
4379 if (_res == NULL && PyErr_Occurred()) {
4380 p->error_indicator = 1;
4381 D(p->level--);
4382 return NULL;
4383 }
4384 goto done;
4385 }
4386 p->mark = _mark;
4387 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4388 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004389 }
4390 _res = NULL;
4391 done:
4392 D(p->level--);
4393 return _res;
4394}
4395
4396// try_stmt:
4397// | 'try' ':' block finally_block
4398// | 'try' ':' block except_block+ else_block? finally_block?
4399static stmt_ty
4400try_stmt_rule(Parser *p)
4401{
4402 D(p->level++);
4403 if (p->error_indicator) {
4404 D(p->level--);
4405 return NULL;
4406 }
4407 stmt_ty _res = NULL;
4408 int _mark = p->mark;
4409 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4410 p->error_indicator = 1;
4411 D(p->level--);
4412 return NULL;
4413 }
4414 int _start_lineno = p->tokens[_mark]->lineno;
4415 UNUSED(_start_lineno); // Only used by EXTRA macro
4416 int _start_col_offset = p->tokens[_mark]->col_offset;
4417 UNUSED(_start_col_offset); // Only used by EXTRA macro
4418 { // 'try' ':' block finally_block
4419 if (p->error_indicator) {
4420 D(p->level--);
4421 return NULL;
4422 }
4423 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' block finally_block"));
4424 Token * _keyword;
4425 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004426 asdl_stmt_seq* b;
4427 asdl_stmt_seq* f;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004428 if (
4429 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4430 &&
4431 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4432 &&
4433 (b = block_rule(p)) // block
4434 &&
4435 (f = finally_block_rule(p)) // finally_block
4436 )
4437 {
4438 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block finally_block"));
4439 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4440 if (_token == NULL) {
4441 D(p->level--);
4442 return NULL;
4443 }
4444 int _end_lineno = _token->end_lineno;
4445 UNUSED(_end_lineno); // Only used by EXTRA macro
4446 int _end_col_offset = _token->end_col_offset;
4447 UNUSED(_end_col_offset); // Only used by EXTRA macro
4448 _res = _Py_Try ( b , NULL , NULL , f , EXTRA );
4449 if (_res == NULL && PyErr_Occurred()) {
4450 p->error_indicator = 1;
4451 D(p->level--);
4452 return NULL;
4453 }
4454 goto done;
4455 }
4456 p->mark = _mark;
4457 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block finally_block"));
4459 }
4460 { // 'try' ':' block except_block+ else_block? finally_block?
4461 if (p->error_indicator) {
4462 D(p->level--);
4463 return NULL;
4464 }
4465 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' block except_block+ else_block? finally_block?"));
4466 Token * _keyword;
4467 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004468 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004469 void *el;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004470 asdl_excepthandler_seq* ex;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004471 void *f;
4472 if (
4473 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4474 &&
4475 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4476 &&
4477 (b = block_rule(p)) // block
4478 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004479 (ex = (asdl_excepthandler_seq*)_loop1_48_rule(p)) // except_block+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004480 &&
4481 (el = else_block_rule(p), 1) // else_block?
4482 &&
4483 (f = finally_block_rule(p), 1) // finally_block?
4484 )
4485 {
4486 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block except_block+ else_block? finally_block?"));
4487 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4488 if (_token == NULL) {
4489 D(p->level--);
4490 return NULL;
4491 }
4492 int _end_lineno = _token->end_lineno;
4493 UNUSED(_end_lineno); // Only used by EXTRA macro
4494 int _end_col_offset = _token->end_col_offset;
4495 UNUSED(_end_col_offset); // Only used by EXTRA macro
4496 _res = _Py_Try ( b , ex , el , f , EXTRA );
4497 if (_res == NULL && PyErr_Occurred()) {
4498 p->error_indicator = 1;
4499 D(p->level--);
4500 return NULL;
4501 }
4502 goto done;
4503 }
4504 p->mark = _mark;
4505 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block except_block+ else_block? finally_block?"));
4507 }
4508 _res = NULL;
4509 done:
4510 D(p->level--);
4511 return _res;
4512}
4513
4514// except_block: 'except' expression ['as' NAME] ':' block | 'except' ':' block
4515static excepthandler_ty
4516except_block_rule(Parser *p)
4517{
4518 D(p->level++);
4519 if (p->error_indicator) {
4520 D(p->level--);
4521 return NULL;
4522 }
4523 excepthandler_ty _res = NULL;
4524 int _mark = p->mark;
4525 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4526 p->error_indicator = 1;
4527 D(p->level--);
4528 return NULL;
4529 }
4530 int _start_lineno = p->tokens[_mark]->lineno;
4531 UNUSED(_start_lineno); // Only used by EXTRA macro
4532 int _start_col_offset = p->tokens[_mark]->col_offset;
4533 UNUSED(_start_col_offset); // Only used by EXTRA macro
4534 { // 'except' expression ['as' NAME] ':' block
4535 if (p->error_indicator) {
4536 D(p->level--);
4537 return NULL;
4538 }
4539 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
4540 Token * _keyword;
4541 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004542 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004543 expr_ty e;
4544 void *t;
4545 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004546 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004547 &&
4548 (e = expression_rule(p)) // expression
4549 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004550 (t = _tmp_49_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004551 &&
4552 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4553 &&
4554 (b = block_rule(p)) // block
4555 )
4556 {
4557 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
4558 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4559 if (_token == NULL) {
4560 D(p->level--);
4561 return NULL;
4562 }
4563 int _end_lineno = _token->end_lineno;
4564 UNUSED(_end_lineno); // Only used by EXTRA macro
4565 int _end_col_offset = _token->end_col_offset;
4566 UNUSED(_end_col_offset); // Only used by EXTRA macro
4567 _res = _Py_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
4568 if (_res == NULL && PyErr_Occurred()) {
4569 p->error_indicator = 1;
4570 D(p->level--);
4571 return NULL;
4572 }
4573 goto done;
4574 }
4575 p->mark = _mark;
4576 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4577 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
4578 }
4579 { // 'except' ':' block
4580 if (p->error_indicator) {
4581 D(p->level--);
4582 return NULL;
4583 }
4584 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
4585 Token * _keyword;
4586 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004587 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004588 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004589 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004590 &&
4591 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4592 &&
4593 (b = block_rule(p)) // block
4594 )
4595 {
4596 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
4597 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4598 if (_token == NULL) {
4599 D(p->level--);
4600 return NULL;
4601 }
4602 int _end_lineno = _token->end_lineno;
4603 UNUSED(_end_lineno); // Only used by EXTRA macro
4604 int _end_col_offset = _token->end_col_offset;
4605 UNUSED(_end_col_offset); // Only used by EXTRA macro
4606 _res = _Py_ExceptHandler ( NULL , NULL , b , EXTRA );
4607 if (_res == NULL && PyErr_Occurred()) {
4608 p->error_indicator = 1;
4609 D(p->level--);
4610 return NULL;
4611 }
4612 goto done;
4613 }
4614 p->mark = _mark;
4615 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
4617 }
4618 _res = NULL;
4619 done:
4620 D(p->level--);
4621 return _res;
4622}
4623
4624// finally_block: 'finally' ':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01004625static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004626finally_block_rule(Parser *p)
4627{
4628 D(p->level++);
4629 if (p->error_indicator) {
4630 D(p->level--);
4631 return NULL;
4632 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01004633 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004634 int _mark = p->mark;
4635 { // 'finally' ':' block
4636 if (p->error_indicator) {
4637 D(p->level--);
4638 return NULL;
4639 }
4640 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
4641 Token * _keyword;
4642 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004643 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004644 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004645 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004646 &&
4647 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4648 &&
4649 (a = block_rule(p)) // block
4650 )
4651 {
4652 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
4653 _res = a;
4654 if (_res == NULL && PyErr_Occurred()) {
4655 p->error_indicator = 1;
4656 D(p->level--);
4657 return NULL;
4658 }
4659 goto done;
4660 }
4661 p->mark = _mark;
4662 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
4663 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' block"));
4664 }
4665 _res = NULL;
4666 done:
4667 D(p->level--);
4668 return _res;
4669}
4670
4671// return_stmt: 'return' star_expressions?
4672static stmt_ty
4673return_stmt_rule(Parser *p)
4674{
4675 D(p->level++);
4676 if (p->error_indicator) {
4677 D(p->level--);
4678 return NULL;
4679 }
4680 stmt_ty _res = NULL;
4681 int _mark = p->mark;
4682 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4683 p->error_indicator = 1;
4684 D(p->level--);
4685 return NULL;
4686 }
4687 int _start_lineno = p->tokens[_mark]->lineno;
4688 UNUSED(_start_lineno); // Only used by EXTRA macro
4689 int _start_col_offset = p->tokens[_mark]->col_offset;
4690 UNUSED(_start_col_offset); // Only used by EXTRA macro
4691 { // 'return' star_expressions?
4692 if (p->error_indicator) {
4693 D(p->level--);
4694 return NULL;
4695 }
4696 D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
4697 Token * _keyword;
4698 void *a;
4699 if (
4700 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
4701 &&
4702 (a = star_expressions_rule(p), 1) // star_expressions?
4703 )
4704 {
4705 D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
4706 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4707 if (_token == NULL) {
4708 D(p->level--);
4709 return NULL;
4710 }
4711 int _end_lineno = _token->end_lineno;
4712 UNUSED(_end_lineno); // Only used by EXTRA macro
4713 int _end_col_offset = _token->end_col_offset;
4714 UNUSED(_end_col_offset); // Only used by EXTRA macro
4715 _res = _Py_Return ( a , EXTRA );
4716 if (_res == NULL && PyErr_Occurred()) {
4717 p->error_indicator = 1;
4718 D(p->level--);
4719 return NULL;
4720 }
4721 goto done;
4722 }
4723 p->mark = _mark;
4724 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4725 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
4726 }
4727 _res = NULL;
4728 done:
4729 D(p->level--);
4730 return _res;
4731}
4732
4733// raise_stmt: 'raise' expression ['from' expression] | 'raise'
4734static stmt_ty
4735raise_stmt_rule(Parser *p)
4736{
4737 D(p->level++);
4738 if (p->error_indicator) {
4739 D(p->level--);
4740 return NULL;
4741 }
4742 stmt_ty _res = NULL;
4743 int _mark = p->mark;
4744 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4745 p->error_indicator = 1;
4746 D(p->level--);
4747 return NULL;
4748 }
4749 int _start_lineno = p->tokens[_mark]->lineno;
4750 UNUSED(_start_lineno); // Only used by EXTRA macro
4751 int _start_col_offset = p->tokens[_mark]->col_offset;
4752 UNUSED(_start_col_offset); // Only used by EXTRA macro
4753 { // 'raise' expression ['from' expression]
4754 if (p->error_indicator) {
4755 D(p->level--);
4756 return NULL;
4757 }
4758 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
4759 Token * _keyword;
4760 expr_ty a;
4761 void *b;
4762 if (
4763 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
4764 &&
4765 (a = expression_rule(p)) // expression
4766 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004767 (b = _tmp_50_rule(p), 1) // ['from' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004768 )
4769 {
4770 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
4771 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4772 if (_token == NULL) {
4773 D(p->level--);
4774 return NULL;
4775 }
4776 int _end_lineno = _token->end_lineno;
4777 UNUSED(_end_lineno); // Only used by EXTRA macro
4778 int _end_col_offset = _token->end_col_offset;
4779 UNUSED(_end_col_offset); // Only used by EXTRA macro
4780 _res = _Py_Raise ( a , b , EXTRA );
4781 if (_res == NULL && PyErr_Occurred()) {
4782 p->error_indicator = 1;
4783 D(p->level--);
4784 return NULL;
4785 }
4786 goto done;
4787 }
4788 p->mark = _mark;
4789 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4790 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
4791 }
4792 { // 'raise'
4793 if (p->error_indicator) {
4794 D(p->level--);
4795 return NULL;
4796 }
4797 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
4798 Token * _keyword;
4799 if (
4800 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
4801 )
4802 {
4803 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
4804 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4805 if (_token == NULL) {
4806 D(p->level--);
4807 return NULL;
4808 }
4809 int _end_lineno = _token->end_lineno;
4810 UNUSED(_end_lineno); // Only used by EXTRA macro
4811 int _end_col_offset = _token->end_col_offset;
4812 UNUSED(_end_col_offset); // Only used by EXTRA macro
4813 _res = _Py_Raise ( NULL , NULL , EXTRA );
4814 if (_res == NULL && PyErr_Occurred()) {
4815 p->error_indicator = 1;
4816 D(p->level--);
4817 return NULL;
4818 }
4819 goto done;
4820 }
4821 p->mark = _mark;
4822 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4823 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
4824 }
4825 _res = NULL;
4826 done:
4827 D(p->level--);
4828 return _res;
4829}
4830
4831// function_def: decorators function_def_raw | function_def_raw
4832static stmt_ty
4833function_def_rule(Parser *p)
4834{
4835 D(p->level++);
4836 if (p->error_indicator) {
4837 D(p->level--);
4838 return NULL;
4839 }
4840 stmt_ty _res = NULL;
4841 int _mark = p->mark;
4842 { // decorators function_def_raw
4843 if (p->error_indicator) {
4844 D(p->level--);
4845 return NULL;
4846 }
4847 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 +01004848 asdl_expr_seq* d;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004849 stmt_ty f;
4850 if (
4851 (d = decorators_rule(p)) // decorators
4852 &&
4853 (f = function_def_raw_rule(p)) // function_def_raw
4854 )
4855 {
4856 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
4857 _res = _PyPegen_function_def_decorators ( p , d , f );
4858 if (_res == NULL && PyErr_Occurred()) {
4859 p->error_indicator = 1;
4860 D(p->level--);
4861 return NULL;
4862 }
4863 goto done;
4864 }
4865 p->mark = _mark;
4866 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4867 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
4868 }
4869 { // function_def_raw
4870 if (p->error_indicator) {
4871 D(p->level--);
4872 return NULL;
4873 }
4874 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
4875 stmt_ty function_def_raw_var;
4876 if (
4877 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
4878 )
4879 {
4880 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
4881 _res = function_def_raw_var;
4882 goto done;
4883 }
4884 p->mark = _mark;
4885 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4886 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
4887 }
4888 _res = NULL;
4889 done:
4890 D(p->level--);
4891 return _res;
4892}
4893
4894// function_def_raw:
4895// | 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
4896// | ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
4897static stmt_ty
4898function_def_raw_rule(Parser *p)
4899{
4900 D(p->level++);
4901 if (p->error_indicator) {
4902 D(p->level--);
4903 return NULL;
4904 }
4905 stmt_ty _res = NULL;
4906 int _mark = p->mark;
4907 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4908 p->error_indicator = 1;
4909 D(p->level--);
4910 return NULL;
4911 }
4912 int _start_lineno = p->tokens[_mark]->lineno;
4913 UNUSED(_start_lineno); // Only used by EXTRA macro
4914 int _start_col_offset = p->tokens[_mark]->col_offset;
4915 UNUSED(_start_col_offset); // Only used by EXTRA macro
4916 { // 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
4917 if (p->error_indicator) {
4918 D(p->level--);
4919 return NULL;
4920 }
4921 D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
4922 Token * _keyword;
4923 Token * _literal;
4924 Token * _literal_1;
4925 Token * _literal_2;
4926 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004927 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004928 expr_ty n;
4929 void *params;
4930 void *tc;
4931 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004932 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004933 &&
4934 (n = _PyPegen_name_token(p)) // NAME
4935 &&
4936 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4937 &&
4938 (params = params_rule(p), 1) // params?
4939 &&
4940 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4941 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004942 (a = _tmp_51_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004943 &&
4944 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4945 &&
4946 (tc = func_type_comment_rule(p), 1) // func_type_comment?
4947 &&
4948 (b = block_rule(p)) // block
4949 )
4950 {
4951 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"));
4952 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4953 if (_token == NULL) {
4954 D(p->level--);
4955 return NULL;
4956 }
4957 int _end_lineno = _token->end_lineno;
4958 UNUSED(_end_lineno); // Only used by EXTRA macro
4959 int _end_col_offset = _token->end_col_offset;
4960 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03004961 _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 +01004962 if (_res == NULL && PyErr_Occurred()) {
4963 p->error_indicator = 1;
4964 D(p->level--);
4965 return NULL;
4966 }
4967 goto done;
4968 }
4969 p->mark = _mark;
4970 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
4971 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
4972 }
4973 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
4974 if (p->error_indicator) {
4975 D(p->level--);
4976 return NULL;
4977 }
4978 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"));
4979 Token * _keyword;
4980 Token * _literal;
4981 Token * _literal_1;
4982 Token * _literal_2;
4983 void *a;
4984 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004985 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004986 expr_ty n;
4987 void *params;
4988 void *tc;
4989 if (
4990 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4991 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004992 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004993 &&
4994 (n = _PyPegen_name_token(p)) // NAME
4995 &&
4996 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4997 &&
4998 (params = params_rule(p), 1) // params?
4999 &&
5000 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
5001 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005002 (a = _tmp_52_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005003 &&
5004 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
5005 &&
5006 (tc = func_type_comment_rule(p), 1) // func_type_comment?
5007 &&
5008 (b = block_rule(p)) // block
5009 )
5010 {
5011 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"));
5012 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5013 if (_token == NULL) {
5014 D(p->level--);
5015 return NULL;
5016 }
5017 int _end_lineno = _token->end_lineno;
5018 UNUSED(_end_lineno); // Only used by EXTRA macro
5019 int _end_col_offset = _token->end_col_offset;
5020 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03005021 _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 +01005022 if (_res == NULL && PyErr_Occurred()) {
5023 p->error_indicator = 1;
5024 D(p->level--);
5025 return NULL;
5026 }
5027 goto done;
5028 }
5029 p->mark = _mark;
5030 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
5031 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
5032 }
5033 _res = NULL;
5034 done:
5035 D(p->level--);
5036 return _res;
5037}
5038
5039// func_type_comment:
5040// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
5041// | invalid_double_type_comments
5042// | TYPE_COMMENT
5043static Token*
5044func_type_comment_rule(Parser *p)
5045{
5046 D(p->level++);
5047 if (p->error_indicator) {
5048 D(p->level--);
5049 return NULL;
5050 }
5051 Token* _res = NULL;
5052 int _mark = p->mark;
5053 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
5054 if (p->error_indicator) {
5055 D(p->level--);
5056 return NULL;
5057 }
5058 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
5059 Token * newline_var;
5060 Token * t;
5061 if (
5062 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
5063 &&
5064 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
5065 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005066 _PyPegen_lookahead(1, _tmp_53_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005067 )
5068 {
5069 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
5070 _res = t;
5071 if (_res == NULL && PyErr_Occurred()) {
5072 p->error_indicator = 1;
5073 D(p->level--);
5074 return NULL;
5075 }
5076 goto done;
5077 }
5078 p->mark = _mark;
5079 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5080 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
5081 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02005082 if (p->call_invalid_rules) { // invalid_double_type_comments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005083 if (p->error_indicator) {
5084 D(p->level--);
5085 return NULL;
5086 }
5087 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
5088 void *invalid_double_type_comments_var;
5089 if (
5090 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
5091 )
5092 {
5093 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
5094 _res = invalid_double_type_comments_var;
5095 goto done;
5096 }
5097 p->mark = _mark;
5098 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5099 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
5100 }
5101 { // TYPE_COMMENT
5102 if (p->error_indicator) {
5103 D(p->level--);
5104 return NULL;
5105 }
5106 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
5107 Token * type_comment_var;
5108 if (
5109 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
5110 )
5111 {
5112 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
5113 _res = type_comment_var;
5114 goto done;
5115 }
5116 p->mark = _mark;
5117 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5118 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
5119 }
5120 _res = NULL;
5121 done:
5122 D(p->level--);
5123 return _res;
5124}
5125
5126// params: invalid_parameters | parameters
5127static arguments_ty
5128params_rule(Parser *p)
5129{
5130 D(p->level++);
5131 if (p->error_indicator) {
5132 D(p->level--);
5133 return NULL;
5134 }
5135 arguments_ty _res = NULL;
5136 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02005137 if (p->call_invalid_rules) { // invalid_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005138 if (p->error_indicator) {
5139 D(p->level--);
5140 return NULL;
5141 }
5142 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
5143 void *invalid_parameters_var;
5144 if (
5145 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
5146 )
5147 {
5148 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
5149 _res = invalid_parameters_var;
5150 goto done;
5151 }
5152 p->mark = _mark;
5153 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
5154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
5155 }
5156 { // parameters
5157 if (p->error_indicator) {
5158 D(p->level--);
5159 return NULL;
5160 }
5161 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
5162 arguments_ty parameters_var;
5163 if (
5164 (parameters_var = parameters_rule(p)) // parameters
5165 )
5166 {
5167 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
5168 _res = parameters_var;
5169 goto done;
5170 }
5171 p->mark = _mark;
5172 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
5173 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
5174 }
5175 _res = NULL;
5176 done:
5177 D(p->level--);
5178 return _res;
5179}
5180
5181// parameters:
5182// | slash_no_default param_no_default* param_with_default* star_etc?
5183// | slash_with_default param_with_default* star_etc?
5184// | param_no_default+ param_with_default* star_etc?
5185// | param_with_default+ star_etc?
5186// | star_etc
5187static arguments_ty
5188parameters_rule(Parser *p)
5189{
5190 D(p->level++);
5191 if (p->error_indicator) {
5192 D(p->level--);
5193 return NULL;
5194 }
5195 arguments_ty _res = NULL;
5196 int _mark = p->mark;
5197 { // slash_no_default param_no_default* param_with_default* star_etc?
5198 if (p->error_indicator) {
5199 D(p->level--);
5200 return NULL;
5201 }
5202 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 +01005203 asdl_arg_seq* a;
5204 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005205 asdl_seq * c;
5206 void *d;
5207 if (
5208 (a = slash_no_default_rule(p)) // slash_no_default
5209 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01005210 (b = (asdl_arg_seq*)_loop0_54_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005211 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005212 (c = _loop0_55_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005213 &&
5214 (d = star_etc_rule(p), 1) // star_etc?
5215 )
5216 {
5217 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?"));
5218 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
5219 if (_res == NULL && PyErr_Occurred()) {
5220 p->error_indicator = 1;
5221 D(p->level--);
5222 return NULL;
5223 }
5224 goto done;
5225 }
5226 p->mark = _mark;
5227 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5228 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
5229 }
5230 { // slash_with_default param_with_default* star_etc?
5231 if (p->error_indicator) {
5232 D(p->level--);
5233 return NULL;
5234 }
5235 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
5236 SlashWithDefault* a;
5237 asdl_seq * b;
5238 void *c;
5239 if (
5240 (a = slash_with_default_rule(p)) // slash_with_default
5241 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005242 (b = _loop0_56_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005243 &&
5244 (c = star_etc_rule(p), 1) // star_etc?
5245 )
5246 {
5247 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
5248 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
5249 if (_res == NULL && PyErr_Occurred()) {
5250 p->error_indicator = 1;
5251 D(p->level--);
5252 return NULL;
5253 }
5254 goto done;
5255 }
5256 p->mark = _mark;
5257 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5258 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
5259 }
5260 { // param_no_default+ param_with_default* star_etc?
5261 if (p->error_indicator) {
5262 D(p->level--);
5263 return NULL;
5264 }
5265 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 +01005266 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005267 asdl_seq * b;
5268 void *c;
5269 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01005270 (a = (asdl_arg_seq*)_loop1_57_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005271 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005272 (b = _loop0_58_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005273 &&
5274 (c = star_etc_rule(p), 1) // star_etc?
5275 )
5276 {
5277 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
5278 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
5279 if (_res == NULL && PyErr_Occurred()) {
5280 p->error_indicator = 1;
5281 D(p->level--);
5282 return NULL;
5283 }
5284 goto done;
5285 }
5286 p->mark = _mark;
5287 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5288 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
5289 }
5290 { // param_with_default+ star_etc?
5291 if (p->error_indicator) {
5292 D(p->level--);
5293 return NULL;
5294 }
5295 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
5296 asdl_seq * a;
5297 void *b;
5298 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005299 (a = _loop1_59_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005300 &&
5301 (b = star_etc_rule(p), 1) // star_etc?
5302 )
5303 {
5304 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
5305 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
5306 if (_res == NULL && PyErr_Occurred()) {
5307 p->error_indicator = 1;
5308 D(p->level--);
5309 return NULL;
5310 }
5311 goto done;
5312 }
5313 p->mark = _mark;
5314 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5315 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
5316 }
5317 { // star_etc
5318 if (p->error_indicator) {
5319 D(p->level--);
5320 return NULL;
5321 }
5322 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
5323 StarEtc* a;
5324 if (
5325 (a = star_etc_rule(p)) // star_etc
5326 )
5327 {
5328 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
5329 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
5330 if (_res == NULL && PyErr_Occurred()) {
5331 p->error_indicator = 1;
5332 D(p->level--);
5333 return NULL;
5334 }
5335 goto done;
5336 }
5337 p->mark = _mark;
5338 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5339 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
5340 }
5341 _res = NULL;
5342 done:
5343 D(p->level--);
5344 return _res;
5345}
5346
5347// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoa5634c42020-09-16 19:42:00 +01005348static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005349slash_no_default_rule(Parser *p)
5350{
5351 D(p->level++);
5352 if (p->error_indicator) {
5353 D(p->level--);
5354 return NULL;
5355 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01005356 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005357 int _mark = p->mark;
5358 { // param_no_default+ '/' ','
5359 if (p->error_indicator) {
5360 D(p->level--);
5361 return NULL;
5362 }
5363 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
5364 Token * _literal;
5365 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005366 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005367 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01005368 (a = (asdl_arg_seq*)_loop1_60_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005369 &&
5370 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
5371 &&
5372 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
5373 )
5374 {
5375 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
5376 _res = a;
5377 if (_res == NULL && PyErr_Occurred()) {
5378 p->error_indicator = 1;
5379 D(p->level--);
5380 return NULL;
5381 }
5382 goto done;
5383 }
5384 p->mark = _mark;
5385 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5386 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
5387 }
5388 { // param_no_default+ '/' &')'
5389 if (p->error_indicator) {
5390 D(p->level--);
5391 return NULL;
5392 }
5393 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
5394 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005395 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005396 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01005397 (a = (asdl_arg_seq*)_loop1_61_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005398 &&
5399 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
5400 &&
5401 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5402 )
5403 {
5404 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
5405 _res = a;
5406 if (_res == NULL && PyErr_Occurred()) {
5407 p->error_indicator = 1;
5408 D(p->level--);
5409 return NULL;
5410 }
5411 goto done;
5412 }
5413 p->mark = _mark;
5414 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5415 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
5416 }
5417 _res = NULL;
5418 done:
5419 D(p->level--);
5420 return _res;
5421}
5422
5423// slash_with_default:
5424// | param_no_default* param_with_default+ '/' ','
5425// | param_no_default* param_with_default+ '/' &')'
5426static SlashWithDefault*
5427slash_with_default_rule(Parser *p)
5428{
5429 D(p->level++);
5430 if (p->error_indicator) {
5431 D(p->level--);
5432 return NULL;
5433 }
5434 SlashWithDefault* _res = NULL;
5435 int _mark = p->mark;
5436 { // param_no_default* param_with_default+ '/' ','
5437 if (p->error_indicator) {
5438 D(p->level--);
5439 return NULL;
5440 }
5441 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
5442 Token * _literal;
5443 Token * _literal_1;
5444 asdl_seq * a;
5445 asdl_seq * b;
5446 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005447 (a = _loop0_62_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005448 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005449 (b = _loop1_63_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005450 &&
5451 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
5452 &&
5453 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
5454 )
5455 {
5456 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 +01005457 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005458 if (_res == NULL && PyErr_Occurred()) {
5459 p->error_indicator = 1;
5460 D(p->level--);
5461 return NULL;
5462 }
5463 goto done;
5464 }
5465 p->mark = _mark;
5466 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5467 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
5468 }
5469 { // param_no_default* param_with_default+ '/' &')'
5470 if (p->error_indicator) {
5471 D(p->level--);
5472 return NULL;
5473 }
5474 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
5475 Token * _literal;
5476 asdl_seq * a;
5477 asdl_seq * b;
5478 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005479 (a = _loop0_64_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005480 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005481 (b = _loop1_65_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005482 &&
5483 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
5484 &&
5485 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5486 )
5487 {
5488 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 +01005489 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005490 if (_res == NULL && PyErr_Occurred()) {
5491 p->error_indicator = 1;
5492 D(p->level--);
5493 return NULL;
5494 }
5495 goto done;
5496 }
5497 p->mark = _mark;
5498 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5499 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
5500 }
5501 _res = NULL;
5502 done:
5503 D(p->level--);
5504 return _res;
5505}
5506
5507// star_etc:
5508// | '*' param_no_default param_maybe_default* kwds?
5509// | '*' ',' param_maybe_default+ kwds?
5510// | kwds
5511// | invalid_star_etc
5512static StarEtc*
5513star_etc_rule(Parser *p)
5514{
5515 D(p->level++);
5516 if (p->error_indicator) {
5517 D(p->level--);
5518 return NULL;
5519 }
5520 StarEtc* _res = NULL;
5521 int _mark = p->mark;
5522 { // '*' param_no_default param_maybe_default* kwds?
5523 if (p->error_indicator) {
5524 D(p->level--);
5525 return NULL;
5526 }
5527 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
5528 Token * _literal;
5529 arg_ty a;
5530 asdl_seq * b;
5531 void *c;
5532 if (
5533 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
5534 &&
5535 (a = param_no_default_rule(p)) // param_no_default
5536 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005537 (b = _loop0_66_rule(p)) // param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005538 &&
5539 (c = kwds_rule(p), 1) // kwds?
5540 )
5541 {
5542 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
5543 _res = _PyPegen_star_etc ( p , a , b , c );
5544 if (_res == NULL && PyErr_Occurred()) {
5545 p->error_indicator = 1;
5546 D(p->level--);
5547 return NULL;
5548 }
5549 goto done;
5550 }
5551 p->mark = _mark;
5552 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5553 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
5554 }
5555 { // '*' ',' param_maybe_default+ kwds?
5556 if (p->error_indicator) {
5557 D(p->level--);
5558 return NULL;
5559 }
5560 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
5561 Token * _literal;
5562 Token * _literal_1;
5563 asdl_seq * b;
5564 void *c;
5565 if (
5566 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
5567 &&
5568 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
5569 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005570 (b = _loop1_67_rule(p)) // param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005571 &&
5572 (c = kwds_rule(p), 1) // kwds?
5573 )
5574 {
5575 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
5576 _res = _PyPegen_star_etc ( p , NULL , b , c );
5577 if (_res == NULL && PyErr_Occurred()) {
5578 p->error_indicator = 1;
5579 D(p->level--);
5580 return NULL;
5581 }
5582 goto done;
5583 }
5584 p->mark = _mark;
5585 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5586 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
5587 }
5588 { // kwds
5589 if (p->error_indicator) {
5590 D(p->level--);
5591 return NULL;
5592 }
5593 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
5594 arg_ty a;
5595 if (
5596 (a = kwds_rule(p)) // kwds
5597 )
5598 {
5599 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
5600 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
5601 if (_res == NULL && PyErr_Occurred()) {
5602 p->error_indicator = 1;
5603 D(p->level--);
5604 return NULL;
5605 }
5606 goto done;
5607 }
5608 p->mark = _mark;
5609 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5610 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
5611 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02005612 if (p->call_invalid_rules) { // invalid_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005613 if (p->error_indicator) {
5614 D(p->level--);
5615 return NULL;
5616 }
5617 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
5618 void *invalid_star_etc_var;
5619 if (
5620 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
5621 )
5622 {
5623 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
5624 _res = invalid_star_etc_var;
5625 goto done;
5626 }
5627 p->mark = _mark;
5628 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5629 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
5630 }
5631 _res = NULL;
5632 done:
5633 D(p->level--);
5634 return _res;
5635}
5636
5637// kwds: '**' param_no_default
5638static arg_ty
5639kwds_rule(Parser *p)
5640{
5641 D(p->level++);
5642 if (p->error_indicator) {
5643 D(p->level--);
5644 return NULL;
5645 }
5646 arg_ty _res = NULL;
5647 int _mark = p->mark;
5648 { // '**' param_no_default
5649 if (p->error_indicator) {
5650 D(p->level--);
5651 return NULL;
5652 }
5653 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
5654 Token * _literal;
5655 arg_ty a;
5656 if (
5657 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
5658 &&
5659 (a = param_no_default_rule(p)) // param_no_default
5660 )
5661 {
5662 D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
5663 _res = a;
5664 if (_res == NULL && PyErr_Occurred()) {
5665 p->error_indicator = 1;
5666 D(p->level--);
5667 return NULL;
5668 }
5669 goto done;
5670 }
5671 p->mark = _mark;
5672 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
5673 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
5674 }
5675 _res = NULL;
5676 done:
5677 D(p->level--);
5678 return _res;
5679}
5680
5681// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
5682static arg_ty
5683param_no_default_rule(Parser *p)
5684{
5685 D(p->level++);
5686 if (p->error_indicator) {
5687 D(p->level--);
5688 return NULL;
5689 }
5690 arg_ty _res = NULL;
5691 int _mark = p->mark;
5692 { // param ',' TYPE_COMMENT?
5693 if (p->error_indicator) {
5694 D(p->level--);
5695 return NULL;
5696 }
5697 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
5698 Token * _literal;
5699 arg_ty a;
5700 void *tc;
5701 if (
5702 (a = param_rule(p)) // param
5703 &&
5704 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5705 &&
5706 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5707 )
5708 {
5709 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
5710 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5711 if (_res == NULL && PyErr_Occurred()) {
5712 p->error_indicator = 1;
5713 D(p->level--);
5714 return NULL;
5715 }
5716 goto done;
5717 }
5718 p->mark = _mark;
5719 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5720 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
5721 }
5722 { // param TYPE_COMMENT? &')'
5723 if (p->error_indicator) {
5724 D(p->level--);
5725 return NULL;
5726 }
5727 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
5728 arg_ty a;
5729 void *tc;
5730 if (
5731 (a = param_rule(p)) // param
5732 &&
5733 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5734 &&
5735 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5736 )
5737 {
5738 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
5739 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5740 if (_res == NULL && PyErr_Occurred()) {
5741 p->error_indicator = 1;
5742 D(p->level--);
5743 return NULL;
5744 }
5745 goto done;
5746 }
5747 p->mark = _mark;
5748 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5749 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
5750 }
5751 _res = NULL;
5752 done:
5753 D(p->level--);
5754 return _res;
5755}
5756
5757// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
5758static NameDefaultPair*
5759param_with_default_rule(Parser *p)
5760{
5761 D(p->level++);
5762 if (p->error_indicator) {
5763 D(p->level--);
5764 return NULL;
5765 }
5766 NameDefaultPair* _res = NULL;
5767 int _mark = p->mark;
5768 { // param default ',' TYPE_COMMENT?
5769 if (p->error_indicator) {
5770 D(p->level--);
5771 return NULL;
5772 }
5773 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
5774 Token * _literal;
5775 arg_ty a;
5776 expr_ty c;
5777 void *tc;
5778 if (
5779 (a = param_rule(p)) // param
5780 &&
5781 (c = default_rule(p)) // default
5782 &&
5783 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5784 &&
5785 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5786 )
5787 {
5788 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
5789 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5790 if (_res == NULL && PyErr_Occurred()) {
5791 p->error_indicator = 1;
5792 D(p->level--);
5793 return NULL;
5794 }
5795 goto done;
5796 }
5797 p->mark = _mark;
5798 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
5800 }
5801 { // param default TYPE_COMMENT? &')'
5802 if (p->error_indicator) {
5803 D(p->level--);
5804 return NULL;
5805 }
5806 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
5807 arg_ty a;
5808 expr_ty c;
5809 void *tc;
5810 if (
5811 (a = param_rule(p)) // param
5812 &&
5813 (c = default_rule(p)) // default
5814 &&
5815 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5816 &&
5817 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5818 )
5819 {
5820 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
5821 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5822 if (_res == NULL && PyErr_Occurred()) {
5823 p->error_indicator = 1;
5824 D(p->level--);
5825 return NULL;
5826 }
5827 goto done;
5828 }
5829 p->mark = _mark;
5830 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5831 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
5832 }
5833 _res = NULL;
5834 done:
5835 D(p->level--);
5836 return _res;
5837}
5838
5839// param_maybe_default:
5840// | param default? ',' TYPE_COMMENT?
5841// | param default? TYPE_COMMENT? &')'
5842static NameDefaultPair*
5843param_maybe_default_rule(Parser *p)
5844{
5845 D(p->level++);
5846 if (p->error_indicator) {
5847 D(p->level--);
5848 return NULL;
5849 }
5850 NameDefaultPair* _res = NULL;
5851 int _mark = p->mark;
5852 { // param default? ',' TYPE_COMMENT?
5853 if (p->error_indicator) {
5854 D(p->level--);
5855 return NULL;
5856 }
5857 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
5858 Token * _literal;
5859 arg_ty a;
5860 void *c;
5861 void *tc;
5862 if (
5863 (a = param_rule(p)) // param
5864 &&
5865 (c = default_rule(p), 1) // default?
5866 &&
5867 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5868 &&
5869 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5870 )
5871 {
5872 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
5873 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5874 if (_res == NULL && PyErr_Occurred()) {
5875 p->error_indicator = 1;
5876 D(p->level--);
5877 return NULL;
5878 }
5879 goto done;
5880 }
5881 p->mark = _mark;
5882 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5883 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
5884 }
5885 { // param default? TYPE_COMMENT? &')'
5886 if (p->error_indicator) {
5887 D(p->level--);
5888 return NULL;
5889 }
5890 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
5891 arg_ty a;
5892 void *c;
5893 void *tc;
5894 if (
5895 (a = param_rule(p)) // param
5896 &&
5897 (c = default_rule(p), 1) // default?
5898 &&
5899 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5900 &&
5901 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5902 )
5903 {
5904 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
5905 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5906 if (_res == NULL && PyErr_Occurred()) {
5907 p->error_indicator = 1;
5908 D(p->level--);
5909 return NULL;
5910 }
5911 goto done;
5912 }
5913 p->mark = _mark;
5914 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5915 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
5916 }
5917 _res = NULL;
5918 done:
5919 D(p->level--);
5920 return _res;
5921}
5922
5923// param: NAME annotation?
5924static arg_ty
5925param_rule(Parser *p)
5926{
5927 D(p->level++);
5928 if (p->error_indicator) {
5929 D(p->level--);
5930 return NULL;
5931 }
5932 arg_ty _res = NULL;
5933 int _mark = p->mark;
5934 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5935 p->error_indicator = 1;
5936 D(p->level--);
5937 return NULL;
5938 }
5939 int _start_lineno = p->tokens[_mark]->lineno;
5940 UNUSED(_start_lineno); // Only used by EXTRA macro
5941 int _start_col_offset = p->tokens[_mark]->col_offset;
5942 UNUSED(_start_col_offset); // Only used by EXTRA macro
5943 { // NAME annotation?
5944 if (p->error_indicator) {
5945 D(p->level--);
5946 return NULL;
5947 }
5948 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
5949 expr_ty a;
5950 void *b;
5951 if (
5952 (a = _PyPegen_name_token(p)) // NAME
5953 &&
5954 (b = annotation_rule(p), 1) // annotation?
5955 )
5956 {
5957 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
5958 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5959 if (_token == NULL) {
5960 D(p->level--);
5961 return NULL;
5962 }
5963 int _end_lineno = _token->end_lineno;
5964 UNUSED(_end_lineno); // Only used by EXTRA macro
5965 int _end_col_offset = _token->end_col_offset;
5966 UNUSED(_end_col_offset); // Only used by EXTRA macro
5967 _res = _Py_arg ( a -> v . Name . id , b , NULL , EXTRA );
5968 if (_res == NULL && PyErr_Occurred()) {
5969 p->error_indicator = 1;
5970 D(p->level--);
5971 return NULL;
5972 }
5973 goto done;
5974 }
5975 p->mark = _mark;
5976 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
5977 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
5978 }
5979 _res = NULL;
5980 done:
5981 D(p->level--);
5982 return _res;
5983}
5984
5985// annotation: ':' expression
5986static expr_ty
5987annotation_rule(Parser *p)
5988{
5989 D(p->level++);
5990 if (p->error_indicator) {
5991 D(p->level--);
5992 return NULL;
5993 }
5994 expr_ty _res = NULL;
5995 int _mark = p->mark;
5996 { // ':' expression
5997 if (p->error_indicator) {
5998 D(p->level--);
5999 return NULL;
6000 }
6001 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
6002 Token * _literal;
6003 expr_ty a;
6004 if (
6005 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
6006 &&
6007 (a = expression_rule(p)) // expression
6008 )
6009 {
6010 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
6011 _res = a;
6012 if (_res == NULL && PyErr_Occurred()) {
6013 p->error_indicator = 1;
6014 D(p->level--);
6015 return NULL;
6016 }
6017 goto done;
6018 }
6019 p->mark = _mark;
6020 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
6021 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
6022 }
6023 _res = NULL;
6024 done:
6025 D(p->level--);
6026 return _res;
6027}
6028
6029// default: '=' expression
6030static expr_ty
6031default_rule(Parser *p)
6032{
6033 D(p->level++);
6034 if (p->error_indicator) {
6035 D(p->level--);
6036 return NULL;
6037 }
6038 expr_ty _res = NULL;
6039 int _mark = p->mark;
6040 { // '=' expression
6041 if (p->error_indicator) {
6042 D(p->level--);
6043 return NULL;
6044 }
6045 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
6046 Token * _literal;
6047 expr_ty a;
6048 if (
6049 (_literal = _PyPegen_expect_token(p, 22)) // token='='
6050 &&
6051 (a = expression_rule(p)) // expression
6052 )
6053 {
6054 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
6055 _res = a;
6056 if (_res == NULL && PyErr_Occurred()) {
6057 p->error_indicator = 1;
6058 D(p->level--);
6059 return NULL;
6060 }
6061 goto done;
6062 }
6063 p->mark = _mark;
6064 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
6065 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
6066 }
6067 _res = NULL;
6068 done:
6069 D(p->level--);
6070 return _res;
6071}
6072
6073// decorators: (('@' named_expression NEWLINE))+
Pablo Galindoa5634c42020-09-16 19:42:00 +01006074static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006075decorators_rule(Parser *p)
6076{
6077 D(p->level++);
6078 if (p->error_indicator) {
6079 D(p->level--);
6080 return NULL;
6081 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01006082 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006083 int _mark = p->mark;
6084 { // (('@' named_expression NEWLINE))+
6085 if (p->error_indicator) {
6086 D(p->level--);
6087 return NULL;
6088 }
6089 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01006090 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006091 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01006092 (a = (asdl_expr_seq*)_loop1_68_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006093 )
6094 {
6095 D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
6096 _res = a;
6097 if (_res == NULL && PyErr_Occurred()) {
6098 p->error_indicator = 1;
6099 D(p->level--);
6100 return NULL;
6101 }
6102 goto done;
6103 }
6104 p->mark = _mark;
6105 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
6106 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
6107 }
6108 _res = NULL;
6109 done:
6110 D(p->level--);
6111 return _res;
6112}
6113
6114// class_def: decorators class_def_raw | class_def_raw
6115static stmt_ty
6116class_def_rule(Parser *p)
6117{
6118 D(p->level++);
6119 if (p->error_indicator) {
6120 D(p->level--);
6121 return NULL;
6122 }
6123 stmt_ty _res = NULL;
6124 int _mark = p->mark;
6125 { // decorators class_def_raw
6126 if (p->error_indicator) {
6127 D(p->level--);
6128 return NULL;
6129 }
6130 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 +01006131 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006132 stmt_ty b;
6133 if (
6134 (a = decorators_rule(p)) // decorators
6135 &&
6136 (b = class_def_raw_rule(p)) // class_def_raw
6137 )
6138 {
6139 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
6140 _res = _PyPegen_class_def_decorators ( p , a , b );
6141 if (_res == NULL && PyErr_Occurred()) {
6142 p->error_indicator = 1;
6143 D(p->level--);
6144 return NULL;
6145 }
6146 goto done;
6147 }
6148 p->mark = _mark;
6149 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
6150 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
6151 }
6152 { // class_def_raw
6153 if (p->error_indicator) {
6154 D(p->level--);
6155 return NULL;
6156 }
6157 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
6158 stmt_ty class_def_raw_var;
6159 if (
6160 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
6161 )
6162 {
6163 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
6164 _res = class_def_raw_var;
6165 goto done;
6166 }
6167 p->mark = _mark;
6168 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
6169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
6170 }
6171 _res = NULL;
6172 done:
6173 D(p->level--);
6174 return _res;
6175}
6176
6177// class_def_raw: 'class' NAME ['(' arguments? ')'] ':' block
6178static stmt_ty
6179class_def_raw_rule(Parser *p)
6180{
6181 D(p->level++);
6182 if (p->error_indicator) {
6183 D(p->level--);
6184 return NULL;
6185 }
6186 stmt_ty _res = NULL;
6187 int _mark = p->mark;
6188 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6189 p->error_indicator = 1;
6190 D(p->level--);
6191 return NULL;
6192 }
6193 int _start_lineno = p->tokens[_mark]->lineno;
6194 UNUSED(_start_lineno); // Only used by EXTRA macro
6195 int _start_col_offset = p->tokens[_mark]->col_offset;
6196 UNUSED(_start_col_offset); // Only used by EXTRA macro
6197 { // 'class' NAME ['(' arguments? ')'] ':' block
6198 if (p->error_indicator) {
6199 D(p->level--);
6200 return NULL;
6201 }
6202 D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
6203 Token * _keyword;
6204 Token * _literal;
6205 expr_ty a;
6206 void *b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01006207 asdl_stmt_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006208 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006209 (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006210 &&
6211 (a = _PyPegen_name_token(p)) // NAME
6212 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006213 (b = _tmp_69_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006214 &&
6215 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
6216 &&
6217 (c = block_rule(p)) // block
6218 )
6219 {
6220 D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
6221 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6222 if (_token == NULL) {
6223 D(p->level--);
6224 return NULL;
6225 }
6226 int _end_lineno = _token->end_lineno;
6227 UNUSED(_end_lineno); // Only used by EXTRA macro
6228 int _end_col_offset = _token->end_col_offset;
6229 UNUSED(_end_col_offset); // Only used by EXTRA macro
6230 _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 );
6231 if (_res == NULL && PyErr_Occurred()) {
6232 p->error_indicator = 1;
6233 D(p->level--);
6234 return NULL;
6235 }
6236 goto done;
6237 }
6238 p->mark = _mark;
6239 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
6240 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
6241 }
6242 _res = NULL;
6243 done:
6244 D(p->level--);
6245 return _res;
6246}
6247
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006248// block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block
Pablo Galindoa5634c42020-09-16 19:42:00 +01006249static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006250block_rule(Parser *p)
6251{
6252 D(p->level++);
6253 if (p->error_indicator) {
6254 D(p->level--);
6255 return NULL;
6256 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01006257 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006258 if (_PyPegen_is_memoized(p, block_type, &_res)) {
6259 D(p->level--);
6260 return _res;
6261 }
6262 int _mark = p->mark;
6263 { // NEWLINE INDENT statements DEDENT
6264 if (p->error_indicator) {
6265 D(p->level--);
6266 return NULL;
6267 }
6268 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 +01006269 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006270 Token * dedent_var;
6271 Token * indent_var;
6272 Token * newline_var;
6273 if (
6274 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
6275 &&
6276 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
6277 &&
6278 (a = statements_rule(p)) // statements
6279 &&
6280 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
6281 )
6282 {
6283 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
6284 _res = a;
6285 if (_res == NULL && PyErr_Occurred()) {
6286 p->error_indicator = 1;
6287 D(p->level--);
6288 return NULL;
6289 }
6290 goto done;
6291 }
6292 p->mark = _mark;
6293 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6294 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
6295 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006296 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006297 if (p->error_indicator) {
6298 D(p->level--);
6299 return NULL;
6300 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006301 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
6302 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006303 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006304 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006305 )
6306 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006307 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
6308 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006309 goto done;
6310 }
6311 p->mark = _mark;
6312 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006313 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006314 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02006315 if (p->call_invalid_rules) { // invalid_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006316 if (p->error_indicator) {
6317 D(p->level--);
6318 return NULL;
6319 }
6320 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
6321 void *invalid_block_var;
6322 if (
6323 (invalid_block_var = invalid_block_rule(p)) // invalid_block
6324 )
6325 {
6326 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
6327 _res = invalid_block_var;
6328 goto done;
6329 }
6330 p->mark = _mark;
6331 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6332 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
6333 }
6334 _res = NULL;
6335 done:
6336 _PyPegen_insert_memo(p, _mark, block_type, _res);
6337 D(p->level--);
6338 return _res;
6339}
6340
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006341// star_expressions:
6342// | star_expression ((',' star_expression))+ ','?
6343// | star_expression ','
6344// | star_expression
6345static expr_ty
6346star_expressions_rule(Parser *p)
6347{
6348 D(p->level++);
6349 if (p->error_indicator) {
6350 D(p->level--);
6351 return NULL;
6352 }
6353 expr_ty _res = NULL;
6354 int _mark = p->mark;
6355 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6356 p->error_indicator = 1;
6357 D(p->level--);
6358 return NULL;
6359 }
6360 int _start_lineno = p->tokens[_mark]->lineno;
6361 UNUSED(_start_lineno); // Only used by EXTRA macro
6362 int _start_col_offset = p->tokens[_mark]->col_offset;
6363 UNUSED(_start_col_offset); // Only used by EXTRA macro
6364 { // star_expression ((',' star_expression))+ ','?
6365 if (p->error_indicator) {
6366 D(p->level--);
6367 return NULL;
6368 }
6369 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
6370 void *_opt_var;
6371 UNUSED(_opt_var); // Silence compiler warnings
6372 expr_ty a;
6373 asdl_seq * b;
6374 if (
6375 (a = star_expression_rule(p)) // star_expression
6376 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00006377 (b = _loop1_70_rule(p)) // ((',' star_expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006378 &&
6379 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6380 )
6381 {
6382 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
6383 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6384 if (_token == NULL) {
6385 D(p->level--);
6386 return NULL;
6387 }
6388 int _end_lineno = _token->end_lineno;
6389 UNUSED(_end_lineno); // Only used by EXTRA macro
6390 int _end_col_offset = _token->end_col_offset;
6391 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03006392 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006393 if (_res == NULL && PyErr_Occurred()) {
6394 p->error_indicator = 1;
6395 D(p->level--);
6396 return NULL;
6397 }
6398 goto done;
6399 }
6400 p->mark = _mark;
6401 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6402 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
6403 }
6404 { // 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 ','"));
6410 Token * _literal;
6411 expr_ty a;
6412 if (
6413 (a = star_expression_rule(p)) // star_expression
6414 &&
6415 (_literal = _PyPegen_expect_token(p, 12)) // token=','
6416 )
6417 {
6418 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
6419 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6420 if (_token == NULL) {
6421 D(p->level--);
6422 return NULL;
6423 }
6424 int _end_lineno = _token->end_lineno;
6425 UNUSED(_end_lineno); // Only used by EXTRA macro
6426 int _end_col_offset = _token->end_col_offset;
6427 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03006428 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006429 if (_res == NULL && PyErr_Occurred()) {
6430 p->error_indicator = 1;
6431 D(p->level--);
6432 return NULL;
6433 }
6434 goto done;
6435 }
6436 p->mark = _mark;
6437 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
6439 }
6440 { // star_expression
6441 if (p->error_indicator) {
6442 D(p->level--);
6443 return NULL;
6444 }
6445 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
6446 expr_ty star_expression_var;
6447 if (
6448 (star_expression_var = star_expression_rule(p)) // star_expression
6449 )
6450 {
6451 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
6452 _res = star_expression_var;
6453 goto done;
6454 }
6455 p->mark = _mark;
6456 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6457 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
6458 }
6459 _res = NULL;
6460 done:
6461 D(p->level--);
6462 return _res;
6463}
6464
6465// star_expression: '*' bitwise_or | expression
6466static expr_ty
6467star_expression_rule(Parser *p)
6468{
6469 D(p->level++);
6470 if (p->error_indicator) {
6471 D(p->level--);
6472 return NULL;
6473 }
6474 expr_ty _res = NULL;
6475 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
6476 D(p->level--);
6477 return _res;
6478 }
6479 int _mark = p->mark;
6480 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6481 p->error_indicator = 1;
6482 D(p->level--);
6483 return NULL;
6484 }
6485 int _start_lineno = p->tokens[_mark]->lineno;
6486 UNUSED(_start_lineno); // Only used by EXTRA macro
6487 int _start_col_offset = p->tokens[_mark]->col_offset;
6488 UNUSED(_start_col_offset); // Only used by EXTRA macro
6489 { // '*' bitwise_or
6490 if (p->error_indicator) {
6491 D(p->level--);
6492 return NULL;
6493 }
6494 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
6495 Token * _literal;
6496 expr_ty a;
6497 if (
6498 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
6499 &&
6500 (a = bitwise_or_rule(p)) // bitwise_or
6501 )
6502 {
6503 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
6504 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6505 if (_token == NULL) {
6506 D(p->level--);
6507 return NULL;
6508 }
6509 int _end_lineno = _token->end_lineno;
6510 UNUSED(_end_lineno); // Only used by EXTRA macro
6511 int _end_col_offset = _token->end_col_offset;
6512 UNUSED(_end_col_offset); // Only used by EXTRA macro
6513 _res = _Py_Starred ( a , Load , EXTRA );
6514 if (_res == NULL && PyErr_Occurred()) {
6515 p->error_indicator = 1;
6516 D(p->level--);
6517 return NULL;
6518 }
6519 goto done;
6520 }
6521 p->mark = _mark;
6522 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
6523 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
6524 }
6525 { // expression
6526 if (p->error_indicator) {
6527 D(p->level--);
6528 return NULL;
6529 }
6530 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
6531 expr_ty expression_var;
6532 if (
6533 (expression_var = expression_rule(p)) // expression
6534 )
6535 {
6536 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
6537 _res = expression_var;
6538 goto done;
6539 }
6540 p->mark = _mark;
6541 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
6542 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
6543 }
6544 _res = NULL;
6545 done:
6546 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
6547 D(p->level--);
6548 return _res;
6549}
6550
6551// star_named_expressions: ','.star_named_expression+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +01006552static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006553star_named_expressions_rule(Parser *p)
6554{
6555 D(p->level++);
6556 if (p->error_indicator) {
6557 D(p->level--);
6558 return NULL;
6559 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01006560 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006561 int _mark = p->mark;
6562 { // ','.star_named_expression+ ','?
6563 if (p->error_indicator) {
6564 D(p->level--);
6565 return NULL;
6566 }
6567 D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
6568 void *_opt_var;
6569 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01006570 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006571 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00006572 (a = (asdl_expr_seq*)_gather_71_rule(p)) // ','.star_named_expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006573 &&
6574 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6575 )
6576 {
6577 D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
6578 _res = a;
6579 if (_res == NULL && PyErr_Occurred()) {
6580 p->error_indicator = 1;
6581 D(p->level--);
6582 return NULL;
6583 }
6584 goto done;
6585 }
6586 p->mark = _mark;
6587 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6588 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
6589 }
6590 _res = NULL;
6591 done:
6592 D(p->level--);
6593 return _res;
6594}
6595
6596// star_named_expression: '*' bitwise_or | named_expression
6597static expr_ty
6598star_named_expression_rule(Parser *p)
6599{
6600 D(p->level++);
6601 if (p->error_indicator) {
6602 D(p->level--);
6603 return NULL;
6604 }
6605 expr_ty _res = NULL;
6606 int _mark = p->mark;
6607 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6608 p->error_indicator = 1;
6609 D(p->level--);
6610 return NULL;
6611 }
6612 int _start_lineno = p->tokens[_mark]->lineno;
6613 UNUSED(_start_lineno); // Only used by EXTRA macro
6614 int _start_col_offset = p->tokens[_mark]->col_offset;
6615 UNUSED(_start_col_offset); // Only used by EXTRA macro
6616 { // '*' bitwise_or
6617 if (p->error_indicator) {
6618 D(p->level--);
6619 return NULL;
6620 }
6621 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
6622 Token * _literal;
6623 expr_ty a;
6624 if (
6625 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
6626 &&
6627 (a = bitwise_or_rule(p)) // bitwise_or
6628 )
6629 {
6630 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
6631 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6632 if (_token == NULL) {
6633 D(p->level--);
6634 return NULL;
6635 }
6636 int _end_lineno = _token->end_lineno;
6637 UNUSED(_end_lineno); // Only used by EXTRA macro
6638 int _end_col_offset = _token->end_col_offset;
6639 UNUSED(_end_col_offset); // Only used by EXTRA macro
6640 _res = _Py_Starred ( a , Load , EXTRA );
6641 if (_res == NULL && PyErr_Occurred()) {
6642 p->error_indicator = 1;
6643 D(p->level--);
6644 return NULL;
6645 }
6646 goto done;
6647 }
6648 p->mark = _mark;
6649 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6650 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
6651 }
6652 { // named_expression
6653 if (p->error_indicator) {
6654 D(p->level--);
6655 return NULL;
6656 }
6657 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
6658 expr_ty named_expression_var;
6659 if (
6660 (named_expression_var = named_expression_rule(p)) // named_expression
6661 )
6662 {
6663 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
6664 _res = named_expression_var;
6665 goto done;
6666 }
6667 p->mark = _mark;
6668 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
6670 }
6671 _res = NULL;
6672 done:
6673 D(p->level--);
6674 return _res;
6675}
6676
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006677// named_expression: NAME ':=' ~ expression | expression !':=' | invalid_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006678static expr_ty
6679named_expression_rule(Parser *p)
6680{
6681 D(p->level++);
6682 if (p->error_indicator) {
6683 D(p->level--);
6684 return NULL;
6685 }
6686 expr_ty _res = NULL;
6687 int _mark = p->mark;
6688 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6689 p->error_indicator = 1;
6690 D(p->level--);
6691 return NULL;
6692 }
6693 int _start_lineno = p->tokens[_mark]->lineno;
6694 UNUSED(_start_lineno); // Only used by EXTRA macro
6695 int _start_col_offset = p->tokens[_mark]->col_offset;
6696 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006697 { // NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006698 if (p->error_indicator) {
6699 D(p->level--);
6700 return NULL;
6701 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006702 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
6703 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006704 Token * _literal;
6705 expr_ty a;
6706 expr_ty b;
6707 if (
6708 (a = _PyPegen_name_token(p)) // NAME
6709 &&
6710 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
6711 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006712 (_cut_var = 1)
6713 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006714 (b = expression_rule(p)) // expression
6715 )
6716 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006717 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 +01006718 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6719 if (_token == NULL) {
6720 D(p->level--);
6721 return NULL;
6722 }
6723 int _end_lineno = _token->end_lineno;
6724 UNUSED(_end_lineno); // Only used by EXTRA macro
6725 int _end_col_offset = _token->end_col_offset;
6726 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03006727 _res = _Py_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006728 if (_res == NULL && PyErr_Occurred()) {
6729 p->error_indicator = 1;
6730 D(p->level--);
6731 return NULL;
6732 }
6733 goto done;
6734 }
6735 p->mark = _mark;
6736 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006737 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
6738 if (_cut_var) {
6739 D(p->level--);
6740 return NULL;
6741 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006742 }
6743 { // expression !':='
6744 if (p->error_indicator) {
6745 D(p->level--);
6746 return NULL;
6747 }
6748 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
6749 expr_ty expression_var;
6750 if (
6751 (expression_var = expression_rule(p)) // expression
6752 &&
6753 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
6754 )
6755 {
6756 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
6757 _res = expression_var;
6758 goto done;
6759 }
6760 p->mark = _mark;
6761 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6762 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
6763 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02006764 if (p->call_invalid_rules) { // invalid_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006765 if (p->error_indicator) {
6766 D(p->level--);
6767 return NULL;
6768 }
6769 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
6770 void *invalid_named_expression_var;
6771 if (
6772 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
6773 )
6774 {
6775 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
6776 _res = invalid_named_expression_var;
6777 goto done;
6778 }
6779 p->mark = _mark;
6780 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6781 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
6782 }
6783 _res = NULL;
6784 done:
6785 D(p->level--);
6786 return _res;
6787}
6788
6789// annotated_rhs: yield_expr | star_expressions
6790static expr_ty
6791annotated_rhs_rule(Parser *p)
6792{
6793 D(p->level++);
6794 if (p->error_indicator) {
6795 D(p->level--);
6796 return NULL;
6797 }
6798 expr_ty _res = NULL;
6799 int _mark = p->mark;
6800 { // yield_expr
6801 if (p->error_indicator) {
6802 D(p->level--);
6803 return NULL;
6804 }
6805 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
6806 expr_ty yield_expr_var;
6807 if (
6808 (yield_expr_var = yield_expr_rule(p)) // yield_expr
6809 )
6810 {
6811 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
6812 _res = yield_expr_var;
6813 goto done;
6814 }
6815 p->mark = _mark;
6816 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
6817 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
6818 }
6819 { // star_expressions
6820 if (p->error_indicator) {
6821 D(p->level--);
6822 return NULL;
6823 }
6824 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
6825 expr_ty star_expressions_var;
6826 if (
6827 (star_expressions_var = star_expressions_rule(p)) // star_expressions
6828 )
6829 {
6830 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
6831 _res = star_expressions_var;
6832 goto done;
6833 }
6834 p->mark = _mark;
6835 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
6836 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
6837 }
6838 _res = NULL;
6839 done:
6840 D(p->level--);
6841 return _res;
6842}
6843
6844// expressions: expression ((',' expression))+ ','? | expression ',' | expression
6845static expr_ty
6846expressions_rule(Parser *p)
6847{
6848 D(p->level++);
6849 if (p->error_indicator) {
6850 D(p->level--);
6851 return NULL;
6852 }
6853 expr_ty _res = NULL;
6854 int _mark = p->mark;
6855 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6856 p->error_indicator = 1;
6857 D(p->level--);
6858 return NULL;
6859 }
6860 int _start_lineno = p->tokens[_mark]->lineno;
6861 UNUSED(_start_lineno); // Only used by EXTRA macro
6862 int _start_col_offset = p->tokens[_mark]->col_offset;
6863 UNUSED(_start_col_offset); // Only used by EXTRA macro
6864 { // expression ((',' expression))+ ','?
6865 if (p->error_indicator) {
6866 D(p->level--);
6867 return NULL;
6868 }
6869 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
6870 void *_opt_var;
6871 UNUSED(_opt_var); // Silence compiler warnings
6872 expr_ty a;
6873 asdl_seq * b;
6874 if (
6875 (a = expression_rule(p)) // expression
6876 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00006877 (b = _loop1_73_rule(p)) // ((',' expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006878 &&
6879 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6880 )
6881 {
6882 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
6883 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6884 if (_token == NULL) {
6885 D(p->level--);
6886 return NULL;
6887 }
6888 int _end_lineno = _token->end_lineno;
6889 UNUSED(_end_lineno); // Only used by EXTRA macro
6890 int _end_col_offset = _token->end_col_offset;
6891 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03006892 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006893 if (_res == NULL && PyErr_Occurred()) {
6894 p->error_indicator = 1;
6895 D(p->level--);
6896 return NULL;
6897 }
6898 goto done;
6899 }
6900 p->mark = _mark;
6901 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6902 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
6903 }
6904 { // 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 ','"));
6910 Token * _literal;
6911 expr_ty a;
6912 if (
6913 (a = expression_rule(p)) // expression
6914 &&
6915 (_literal = _PyPegen_expect_token(p, 12)) // token=','
6916 )
6917 {
6918 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
6919 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6920 if (_token == NULL) {
6921 D(p->level--);
6922 return NULL;
6923 }
6924 int _end_lineno = _token->end_lineno;
6925 UNUSED(_end_lineno); // Only used by EXTRA macro
6926 int _end_col_offset = _token->end_col_offset;
6927 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03006928 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006929 if (_res == NULL && PyErr_Occurred()) {
6930 p->error_indicator = 1;
6931 D(p->level--);
6932 return NULL;
6933 }
6934 goto done;
6935 }
6936 p->mark = _mark;
6937 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6938 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
6939 }
6940 { // expression
6941 if (p->error_indicator) {
6942 D(p->level--);
6943 return NULL;
6944 }
6945 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
6946 expr_ty expression_var;
6947 if (
6948 (expression_var = expression_rule(p)) // expression
6949 )
6950 {
6951 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
6952 _res = expression_var;
6953 goto done;
6954 }
6955 p->mark = _mark;
6956 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6957 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
6958 }
6959 _res = NULL;
6960 done:
6961 D(p->level--);
6962 return _res;
6963}
6964
6965// expression: disjunction 'if' disjunction 'else' expression | disjunction | lambdef
6966static expr_ty
6967expression_rule(Parser *p)
6968{
6969 D(p->level++);
6970 if (p->error_indicator) {
6971 D(p->level--);
6972 return NULL;
6973 }
6974 expr_ty _res = NULL;
6975 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
6976 D(p->level--);
6977 return _res;
6978 }
6979 int _mark = p->mark;
6980 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6981 p->error_indicator = 1;
6982 D(p->level--);
6983 return NULL;
6984 }
6985 int _start_lineno = p->tokens[_mark]->lineno;
6986 UNUSED(_start_lineno); // Only used by EXTRA macro
6987 int _start_col_offset = p->tokens[_mark]->col_offset;
6988 UNUSED(_start_col_offset); // Only used by EXTRA macro
6989 { // disjunction 'if' disjunction 'else' expression
6990 if (p->error_indicator) {
6991 D(p->level--);
6992 return NULL;
6993 }
6994 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
6995 Token * _keyword;
6996 Token * _keyword_1;
6997 expr_ty a;
6998 expr_ty b;
6999 expr_ty c;
7000 if (
7001 (a = disjunction_rule(p)) // disjunction
7002 &&
7003 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
7004 &&
7005 (b = disjunction_rule(p)) // disjunction
7006 &&
7007 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
7008 &&
7009 (c = expression_rule(p)) // expression
7010 )
7011 {
7012 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
7013 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7014 if (_token == NULL) {
7015 D(p->level--);
7016 return NULL;
7017 }
7018 int _end_lineno = _token->end_lineno;
7019 UNUSED(_end_lineno); // Only used by EXTRA macro
7020 int _end_col_offset = _token->end_col_offset;
7021 UNUSED(_end_col_offset); // Only used by EXTRA macro
7022 _res = _Py_IfExp ( b , a , c , EXTRA );
7023 if (_res == NULL && PyErr_Occurred()) {
7024 p->error_indicator = 1;
7025 D(p->level--);
7026 return NULL;
7027 }
7028 goto done;
7029 }
7030 p->mark = _mark;
7031 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7032 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
7033 }
7034 { // disjunction
7035 if (p->error_indicator) {
7036 D(p->level--);
7037 return NULL;
7038 }
7039 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
7040 expr_ty disjunction_var;
7041 if (
7042 (disjunction_var = disjunction_rule(p)) // disjunction
7043 )
7044 {
7045 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
7046 _res = disjunction_var;
7047 goto done;
7048 }
7049 p->mark = _mark;
7050 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7051 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
7052 }
7053 { // lambdef
7054 if (p->error_indicator) {
7055 D(p->level--);
7056 return NULL;
7057 }
7058 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
7059 expr_ty lambdef_var;
7060 if (
7061 (lambdef_var = lambdef_rule(p)) // lambdef
7062 )
7063 {
7064 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
7065 _res = lambdef_var;
7066 goto done;
7067 }
7068 p->mark = _mark;
7069 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
7071 }
7072 _res = NULL;
7073 done:
7074 _PyPegen_insert_memo(p, _mark, expression_type, _res);
7075 D(p->level--);
7076 return _res;
7077}
7078
7079// lambdef: 'lambda' lambda_params? ':' expression
7080static expr_ty
7081lambdef_rule(Parser *p)
7082{
7083 D(p->level++);
7084 if (p->error_indicator) {
7085 D(p->level--);
7086 return NULL;
7087 }
7088 expr_ty _res = NULL;
7089 int _mark = p->mark;
7090 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7091 p->error_indicator = 1;
7092 D(p->level--);
7093 return NULL;
7094 }
7095 int _start_lineno = p->tokens[_mark]->lineno;
7096 UNUSED(_start_lineno); // Only used by EXTRA macro
7097 int _start_col_offset = p->tokens[_mark]->col_offset;
7098 UNUSED(_start_col_offset); // Only used by EXTRA macro
7099 { // 'lambda' lambda_params? ':' expression
7100 if (p->error_indicator) {
7101 D(p->level--);
7102 return NULL;
7103 }
7104 D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
7105 Token * _keyword;
7106 Token * _literal;
7107 void *a;
7108 expr_ty b;
7109 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03007110 (_keyword = _PyPegen_expect_token(p, 525)) // token='lambda'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007111 &&
7112 (a = lambda_params_rule(p), 1) // lambda_params?
7113 &&
7114 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
7115 &&
7116 (b = expression_rule(p)) // expression
7117 )
7118 {
7119 D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
7120 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7121 if (_token == NULL) {
7122 D(p->level--);
7123 return NULL;
7124 }
7125 int _end_lineno = _token->end_lineno;
7126 UNUSED(_end_lineno); // Only used by EXTRA macro
7127 int _end_col_offset = _token->end_col_offset;
7128 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03007129 _res = _Py_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007130 if (_res == NULL && PyErr_Occurred()) {
7131 p->error_indicator = 1;
7132 D(p->level--);
7133 return NULL;
7134 }
7135 goto done;
7136 }
7137 p->mark = _mark;
7138 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
7139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
7140 }
7141 _res = NULL;
7142 done:
7143 D(p->level--);
7144 return _res;
7145}
7146
7147// lambda_params: invalid_lambda_parameters | lambda_parameters
7148static arguments_ty
7149lambda_params_rule(Parser *p)
7150{
7151 D(p->level++);
7152 if (p->error_indicator) {
7153 D(p->level--);
7154 return NULL;
7155 }
7156 arguments_ty _res = NULL;
7157 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02007158 if (p->call_invalid_rules) { // invalid_lambda_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007159 if (p->error_indicator) {
7160 D(p->level--);
7161 return NULL;
7162 }
7163 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
7164 void *invalid_lambda_parameters_var;
7165 if (
7166 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
7167 )
7168 {
7169 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
7170 _res = invalid_lambda_parameters_var;
7171 goto done;
7172 }
7173 p->mark = _mark;
7174 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
7175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
7176 }
7177 { // lambda_parameters
7178 if (p->error_indicator) {
7179 D(p->level--);
7180 return NULL;
7181 }
7182 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
7183 arguments_ty lambda_parameters_var;
7184 if (
7185 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
7186 )
7187 {
7188 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
7189 _res = lambda_parameters_var;
7190 goto done;
7191 }
7192 p->mark = _mark;
7193 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
7194 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
7195 }
7196 _res = NULL;
7197 done:
7198 D(p->level--);
7199 return _res;
7200}
7201
7202// lambda_parameters:
7203// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
7204// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
7205// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
7206// | lambda_param_with_default+ lambda_star_etc?
7207// | lambda_star_etc
7208static arguments_ty
7209lambda_parameters_rule(Parser *p)
7210{
7211 D(p->level++);
7212 if (p->error_indicator) {
7213 D(p->level--);
7214 return NULL;
7215 }
7216 arguments_ty _res = NULL;
7217 int _mark = p->mark;
7218 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
7219 if (p->error_indicator) {
7220 D(p->level--);
7221 return NULL;
7222 }
7223 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 +01007224 asdl_arg_seq* a;
7225 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007226 asdl_seq * c;
7227 void *d;
7228 if (
7229 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
7230 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007231 (b = (asdl_arg_seq*)_loop0_74_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007232 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007233 (c = _loop0_75_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007234 &&
7235 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
7236 )
7237 {
7238 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?"));
7239 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
7240 if (_res == NULL && PyErr_Occurred()) {
7241 p->error_indicator = 1;
7242 D(p->level--);
7243 return NULL;
7244 }
7245 goto done;
7246 }
7247 p->mark = _mark;
7248 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7249 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
7250 }
7251 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
7252 if (p->error_indicator) {
7253 D(p->level--);
7254 return NULL;
7255 }
7256 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?"));
7257 SlashWithDefault* a;
7258 asdl_seq * b;
7259 void *c;
7260 if (
7261 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
7262 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007263 (b = _loop0_76_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007264 &&
7265 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
7266 )
7267 {
7268 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?"));
7269 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
7270 if (_res == NULL && PyErr_Occurred()) {
7271 p->error_indicator = 1;
7272 D(p->level--);
7273 return NULL;
7274 }
7275 goto done;
7276 }
7277 p->mark = _mark;
7278 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7279 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
7280 }
7281 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
7282 if (p->error_indicator) {
7283 D(p->level--);
7284 return NULL;
7285 }
7286 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 +01007287 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007288 asdl_seq * b;
7289 void *c;
7290 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007291 (a = (asdl_arg_seq*)_loop1_77_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007292 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007293 (b = _loop0_78_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007294 &&
7295 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
7296 )
7297 {
7298 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?"));
7299 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
7300 if (_res == NULL && PyErr_Occurred()) {
7301 p->error_indicator = 1;
7302 D(p->level--);
7303 return NULL;
7304 }
7305 goto done;
7306 }
7307 p->mark = _mark;
7308 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7309 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
7310 }
7311 { // lambda_param_with_default+ lambda_star_etc?
7312 if (p->error_indicator) {
7313 D(p->level--);
7314 return NULL;
7315 }
7316 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
7317 asdl_seq * a;
7318 void *b;
7319 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007320 (a = _loop1_79_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007321 &&
7322 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
7323 )
7324 {
7325 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
7326 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
7327 if (_res == NULL && PyErr_Occurred()) {
7328 p->error_indicator = 1;
7329 D(p->level--);
7330 return NULL;
7331 }
7332 goto done;
7333 }
7334 p->mark = _mark;
7335 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
7337 }
7338 { // lambda_star_etc
7339 if (p->error_indicator) {
7340 D(p->level--);
7341 return NULL;
7342 }
7343 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
7344 StarEtc* a;
7345 if (
7346 (a = lambda_star_etc_rule(p)) // lambda_star_etc
7347 )
7348 {
7349 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
7350 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
7351 if (_res == NULL && PyErr_Occurred()) {
7352 p->error_indicator = 1;
7353 D(p->level--);
7354 return NULL;
7355 }
7356 goto done;
7357 }
7358 p->mark = _mark;
7359 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7360 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
7361 }
7362 _res = NULL;
7363 done:
7364 D(p->level--);
7365 return _res;
7366}
7367
7368// lambda_slash_no_default:
7369// | lambda_param_no_default+ '/' ','
7370// | lambda_param_no_default+ '/' &':'
Pablo Galindoa5634c42020-09-16 19:42:00 +01007371static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007372lambda_slash_no_default_rule(Parser *p)
7373{
7374 D(p->level++);
7375 if (p->error_indicator) {
7376 D(p->level--);
7377 return NULL;
7378 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01007379 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007380 int _mark = p->mark;
7381 { // lambda_param_no_default+ '/' ','
7382 if (p->error_indicator) {
7383 D(p->level--);
7384 return NULL;
7385 }
7386 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
7387 Token * _literal;
7388 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007389 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007390 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007391 (a = (asdl_arg_seq*)_loop1_80_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007392 &&
7393 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7394 &&
7395 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7396 )
7397 {
7398 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
7399 _res = a;
7400 if (_res == NULL && PyErr_Occurred()) {
7401 p->error_indicator = 1;
7402 D(p->level--);
7403 return NULL;
7404 }
7405 goto done;
7406 }
7407 p->mark = _mark;
7408 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7409 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
7410 }
7411 { // lambda_param_no_default+ '/' &':'
7412 if (p->error_indicator) {
7413 D(p->level--);
7414 return NULL;
7415 }
7416 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
7417 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007418 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007419 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007420 (a = (asdl_arg_seq*)_loop1_81_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007421 &&
7422 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7423 &&
7424 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
7425 )
7426 {
7427 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
7428 _res = a;
7429 if (_res == NULL && PyErr_Occurred()) {
7430 p->error_indicator = 1;
7431 D(p->level--);
7432 return NULL;
7433 }
7434 goto done;
7435 }
7436 p->mark = _mark;
7437 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
7439 }
7440 _res = NULL;
7441 done:
7442 D(p->level--);
7443 return _res;
7444}
7445
7446// lambda_slash_with_default:
7447// | lambda_param_no_default* lambda_param_with_default+ '/' ','
7448// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
7449static SlashWithDefault*
7450lambda_slash_with_default_rule(Parser *p)
7451{
7452 D(p->level++);
7453 if (p->error_indicator) {
7454 D(p->level--);
7455 return NULL;
7456 }
7457 SlashWithDefault* _res = NULL;
7458 int _mark = p->mark;
7459 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
7460 if (p->error_indicator) {
7461 D(p->level--);
7462 return NULL;
7463 }
7464 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+ '/' ','"));
7465 Token * _literal;
7466 Token * _literal_1;
7467 asdl_seq * a;
7468 asdl_seq * b;
7469 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007470 (a = _loop0_82_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007471 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007472 (b = _loop1_83_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007473 &&
7474 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7475 &&
7476 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7477 )
7478 {
7479 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 +01007480 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007481 if (_res == NULL && PyErr_Occurred()) {
7482 p->error_indicator = 1;
7483 D(p->level--);
7484 return NULL;
7485 }
7486 goto done;
7487 }
7488 p->mark = _mark;
7489 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
7491 }
7492 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
7493 if (p->error_indicator) {
7494 D(p->level--);
7495 return NULL;
7496 }
7497 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+ '/' &':'"));
7498 Token * _literal;
7499 asdl_seq * a;
7500 asdl_seq * b;
7501 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007502 (a = _loop0_84_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007503 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007504 (b = _loop1_85_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007505 &&
7506 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7507 &&
7508 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
7509 )
7510 {
7511 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 +01007512 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007513 if (_res == NULL && PyErr_Occurred()) {
7514 p->error_indicator = 1;
7515 D(p->level--);
7516 return NULL;
7517 }
7518 goto done;
7519 }
7520 p->mark = _mark;
7521 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7522 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
7523 }
7524 _res = NULL;
7525 done:
7526 D(p->level--);
7527 return _res;
7528}
7529
7530// lambda_star_etc:
7531// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
7532// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
7533// | lambda_kwds
7534// | invalid_lambda_star_etc
7535static StarEtc*
7536lambda_star_etc_rule(Parser *p)
7537{
7538 D(p->level++);
7539 if (p->error_indicator) {
7540 D(p->level--);
7541 return NULL;
7542 }
7543 StarEtc* _res = NULL;
7544 int _mark = p->mark;
7545 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
7546 if (p->error_indicator) {
7547 D(p->level--);
7548 return NULL;
7549 }
7550 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?"));
7551 Token * _literal;
7552 arg_ty a;
7553 asdl_seq * b;
7554 void *c;
7555 if (
7556 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7557 &&
7558 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
7559 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007560 (b = _loop0_86_rule(p)) // lambda_param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007561 &&
7562 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
7563 )
7564 {
7565 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?"));
7566 _res = _PyPegen_star_etc ( p , a , b , c );
7567 if (_res == NULL && PyErr_Occurred()) {
7568 p->error_indicator = 1;
7569 D(p->level--);
7570 return NULL;
7571 }
7572 goto done;
7573 }
7574 p->mark = _mark;
7575 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7576 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
7577 }
7578 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
7579 if (p->error_indicator) {
7580 D(p->level--);
7581 return NULL;
7582 }
7583 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
7584 Token * _literal;
7585 Token * _literal_1;
7586 asdl_seq * b;
7587 void *c;
7588 if (
7589 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7590 &&
7591 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7592 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007593 (b = _loop1_87_rule(p)) // lambda_param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007594 &&
7595 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
7596 )
7597 {
7598 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
7599 _res = _PyPegen_star_etc ( p , NULL , b , c );
7600 if (_res == NULL && PyErr_Occurred()) {
7601 p->error_indicator = 1;
7602 D(p->level--);
7603 return NULL;
7604 }
7605 goto done;
7606 }
7607 p->mark = _mark;
7608 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7609 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
7610 }
7611 { // lambda_kwds
7612 if (p->error_indicator) {
7613 D(p->level--);
7614 return NULL;
7615 }
7616 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
7617 arg_ty a;
7618 if (
7619 (a = lambda_kwds_rule(p)) // lambda_kwds
7620 )
7621 {
7622 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
7623 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
7624 if (_res == NULL && PyErr_Occurred()) {
7625 p->error_indicator = 1;
7626 D(p->level--);
7627 return NULL;
7628 }
7629 goto done;
7630 }
7631 p->mark = _mark;
7632 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7633 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
7634 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02007635 if (p->call_invalid_rules) { // invalid_lambda_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007636 if (p->error_indicator) {
7637 D(p->level--);
7638 return NULL;
7639 }
7640 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
7641 void *invalid_lambda_star_etc_var;
7642 if (
7643 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
7644 )
7645 {
7646 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
7647 _res = invalid_lambda_star_etc_var;
7648 goto done;
7649 }
7650 p->mark = _mark;
7651 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7652 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
7653 }
7654 _res = NULL;
7655 done:
7656 D(p->level--);
7657 return _res;
7658}
7659
7660// lambda_kwds: '**' lambda_param_no_default
7661static arg_ty
7662lambda_kwds_rule(Parser *p)
7663{
7664 D(p->level++);
7665 if (p->error_indicator) {
7666 D(p->level--);
7667 return NULL;
7668 }
7669 arg_ty _res = NULL;
7670 int _mark = p->mark;
7671 { // '**' lambda_param_no_default
7672 if (p->error_indicator) {
7673 D(p->level--);
7674 return NULL;
7675 }
7676 D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
7677 Token * _literal;
7678 arg_ty a;
7679 if (
7680 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
7681 &&
7682 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
7683 )
7684 {
7685 D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
7686 _res = a;
7687 if (_res == NULL && PyErr_Occurred()) {
7688 p->error_indicator = 1;
7689 D(p->level--);
7690 return NULL;
7691 }
7692 goto done;
7693 }
7694 p->mark = _mark;
7695 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
7696 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
7697 }
7698 _res = NULL;
7699 done:
7700 D(p->level--);
7701 return _res;
7702}
7703
7704// lambda_param_no_default: lambda_param ',' | lambda_param &':'
7705static arg_ty
7706lambda_param_no_default_rule(Parser *p)
7707{
7708 D(p->level++);
7709 if (p->error_indicator) {
7710 D(p->level--);
7711 return NULL;
7712 }
7713 arg_ty _res = NULL;
7714 int _mark = p->mark;
7715 { // lambda_param ','
7716 if (p->error_indicator) {
7717 D(p->level--);
7718 return NULL;
7719 }
7720 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
7721 Token * _literal;
7722 arg_ty a;
7723 if (
7724 (a = lambda_param_rule(p)) // lambda_param
7725 &&
7726 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7727 )
7728 {
7729 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
7730 _res = a;
7731 if (_res == NULL && PyErr_Occurred()) {
7732 p->error_indicator = 1;
7733 D(p->level--);
7734 return NULL;
7735 }
7736 goto done;
7737 }
7738 p->mark = _mark;
7739 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7740 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
7741 }
7742 { // lambda_param &':'
7743 if (p->error_indicator) {
7744 D(p->level--);
7745 return NULL;
7746 }
7747 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
7748 arg_ty a;
7749 if (
7750 (a = lambda_param_rule(p)) // lambda_param
7751 &&
7752 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
7753 )
7754 {
7755 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
7756 _res = a;
7757 if (_res == NULL && PyErr_Occurred()) {
7758 p->error_indicator = 1;
7759 D(p->level--);
7760 return NULL;
7761 }
7762 goto done;
7763 }
7764 p->mark = _mark;
7765 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7766 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
7767 }
7768 _res = NULL;
7769 done:
7770 D(p->level--);
7771 return _res;
7772}
7773
7774// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
7775static NameDefaultPair*
7776lambda_param_with_default_rule(Parser *p)
7777{
7778 D(p->level++);
7779 if (p->error_indicator) {
7780 D(p->level--);
7781 return NULL;
7782 }
7783 NameDefaultPair* _res = NULL;
7784 int _mark = p->mark;
7785 { // lambda_param default ','
7786 if (p->error_indicator) {
7787 D(p->level--);
7788 return NULL;
7789 }
7790 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
7791 Token * _literal;
7792 arg_ty a;
7793 expr_ty c;
7794 if (
7795 (a = lambda_param_rule(p)) // lambda_param
7796 &&
7797 (c = default_rule(p)) // default
7798 &&
7799 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7800 )
7801 {
7802 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
7803 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7804 if (_res == NULL && PyErr_Occurred()) {
7805 p->error_indicator = 1;
7806 D(p->level--);
7807 return NULL;
7808 }
7809 goto done;
7810 }
7811 p->mark = _mark;
7812 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7813 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
7814 }
7815 { // lambda_param default &':'
7816 if (p->error_indicator) {
7817 D(p->level--);
7818 return NULL;
7819 }
7820 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
7821 arg_ty a;
7822 expr_ty c;
7823 if (
7824 (a = lambda_param_rule(p)) // lambda_param
7825 &&
7826 (c = default_rule(p)) // default
7827 &&
7828 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
7829 )
7830 {
7831 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
7832 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7833 if (_res == NULL && PyErr_Occurred()) {
7834 p->error_indicator = 1;
7835 D(p->level--);
7836 return NULL;
7837 }
7838 goto done;
7839 }
7840 p->mark = _mark;
7841 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7842 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
7843 }
7844 _res = NULL;
7845 done:
7846 D(p->level--);
7847 return _res;
7848}
7849
7850// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
7851static NameDefaultPair*
7852lambda_param_maybe_default_rule(Parser *p)
7853{
7854 D(p->level++);
7855 if (p->error_indicator) {
7856 D(p->level--);
7857 return NULL;
7858 }
7859 NameDefaultPair* _res = NULL;
7860 int _mark = p->mark;
7861 { // lambda_param default? ','
7862 if (p->error_indicator) {
7863 D(p->level--);
7864 return NULL;
7865 }
7866 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
7867 Token * _literal;
7868 arg_ty a;
7869 void *c;
7870 if (
7871 (a = lambda_param_rule(p)) // lambda_param
7872 &&
7873 (c = default_rule(p), 1) // default?
7874 &&
7875 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7876 )
7877 {
7878 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
7879 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7880 if (_res == NULL && PyErr_Occurred()) {
7881 p->error_indicator = 1;
7882 D(p->level--);
7883 return NULL;
7884 }
7885 goto done;
7886 }
7887 p->mark = _mark;
7888 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
7889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
7890 }
7891 { // lambda_param default? &':'
7892 if (p->error_indicator) {
7893 D(p->level--);
7894 return NULL;
7895 }
7896 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
7897 arg_ty a;
7898 void *c;
7899 if (
7900 (a = lambda_param_rule(p)) // lambda_param
7901 &&
7902 (c = default_rule(p), 1) // default?
7903 &&
7904 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
7905 )
7906 {
7907 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
7908 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7909 if (_res == NULL && PyErr_Occurred()) {
7910 p->error_indicator = 1;
7911 D(p->level--);
7912 return NULL;
7913 }
7914 goto done;
7915 }
7916 p->mark = _mark;
7917 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
7918 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
7919 }
7920 _res = NULL;
7921 done:
7922 D(p->level--);
7923 return _res;
7924}
7925
7926// lambda_param: NAME
7927static arg_ty
7928lambda_param_rule(Parser *p)
7929{
7930 D(p->level++);
7931 if (p->error_indicator) {
7932 D(p->level--);
7933 return NULL;
7934 }
7935 arg_ty _res = NULL;
7936 int _mark = p->mark;
7937 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7938 p->error_indicator = 1;
7939 D(p->level--);
7940 return NULL;
7941 }
7942 int _start_lineno = p->tokens[_mark]->lineno;
7943 UNUSED(_start_lineno); // Only used by EXTRA macro
7944 int _start_col_offset = p->tokens[_mark]->col_offset;
7945 UNUSED(_start_col_offset); // Only used by EXTRA macro
7946 { // NAME
7947 if (p->error_indicator) {
7948 D(p->level--);
7949 return NULL;
7950 }
7951 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
7952 expr_ty a;
7953 if (
7954 (a = _PyPegen_name_token(p)) // NAME
7955 )
7956 {
7957 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
7958 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7959 if (_token == NULL) {
7960 D(p->level--);
7961 return NULL;
7962 }
7963 int _end_lineno = _token->end_lineno;
7964 UNUSED(_end_lineno); // Only used by EXTRA macro
7965 int _end_col_offset = _token->end_col_offset;
7966 UNUSED(_end_col_offset); // Only used by EXTRA macro
7967 _res = _Py_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
7968 if (_res == NULL && PyErr_Occurred()) {
7969 p->error_indicator = 1;
7970 D(p->level--);
7971 return NULL;
7972 }
7973 goto done;
7974 }
7975 p->mark = _mark;
7976 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
7977 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
7978 }
7979 _res = NULL;
7980 done:
7981 D(p->level--);
7982 return _res;
7983}
7984
7985// disjunction: conjunction (('or' conjunction))+ | conjunction
7986static expr_ty
7987disjunction_rule(Parser *p)
7988{
7989 D(p->level++);
7990 if (p->error_indicator) {
7991 D(p->level--);
7992 return NULL;
7993 }
7994 expr_ty _res = NULL;
7995 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
7996 D(p->level--);
7997 return _res;
7998 }
7999 int _mark = p->mark;
8000 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8001 p->error_indicator = 1;
8002 D(p->level--);
8003 return NULL;
8004 }
8005 int _start_lineno = p->tokens[_mark]->lineno;
8006 UNUSED(_start_lineno); // Only used by EXTRA macro
8007 int _start_col_offset = p->tokens[_mark]->col_offset;
8008 UNUSED(_start_col_offset); // Only used by EXTRA macro
8009 { // conjunction (('or' conjunction))+
8010 if (p->error_indicator) {
8011 D(p->level--);
8012 return NULL;
8013 }
8014 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
8015 expr_ty a;
8016 asdl_seq * b;
8017 if (
8018 (a = conjunction_rule(p)) // conjunction
8019 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00008020 (b = _loop1_88_rule(p)) // (('or' conjunction))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008021 )
8022 {
8023 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
8024 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8025 if (_token == NULL) {
8026 D(p->level--);
8027 return NULL;
8028 }
8029 int _end_lineno = _token->end_lineno;
8030 UNUSED(_end_lineno); // Only used by EXTRA macro
8031 int _end_col_offset = _token->end_col_offset;
8032 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03008033 _res = _Py_BoolOp ( Or , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008034 if (_res == NULL && PyErr_Occurred()) {
8035 p->error_indicator = 1;
8036 D(p->level--);
8037 return NULL;
8038 }
8039 goto done;
8040 }
8041 p->mark = _mark;
8042 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
8043 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
8044 }
8045 { // conjunction
8046 if (p->error_indicator) {
8047 D(p->level--);
8048 return NULL;
8049 }
8050 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
8051 expr_ty conjunction_var;
8052 if (
8053 (conjunction_var = conjunction_rule(p)) // conjunction
8054 )
8055 {
8056 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
8057 _res = conjunction_var;
8058 goto done;
8059 }
8060 p->mark = _mark;
8061 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
8062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
8063 }
8064 _res = NULL;
8065 done:
8066 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
8067 D(p->level--);
8068 return _res;
8069}
8070
8071// conjunction: inversion (('and' inversion))+ | inversion
8072static expr_ty
8073conjunction_rule(Parser *p)
8074{
8075 D(p->level++);
8076 if (p->error_indicator) {
8077 D(p->level--);
8078 return NULL;
8079 }
8080 expr_ty _res = NULL;
8081 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
8082 D(p->level--);
8083 return _res;
8084 }
8085 int _mark = p->mark;
8086 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8087 p->error_indicator = 1;
8088 D(p->level--);
8089 return NULL;
8090 }
8091 int _start_lineno = p->tokens[_mark]->lineno;
8092 UNUSED(_start_lineno); // Only used by EXTRA macro
8093 int _start_col_offset = p->tokens[_mark]->col_offset;
8094 UNUSED(_start_col_offset); // Only used by EXTRA macro
8095 { // inversion (('and' inversion))+
8096 if (p->error_indicator) {
8097 D(p->level--);
8098 return NULL;
8099 }
8100 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
8101 expr_ty a;
8102 asdl_seq * b;
8103 if (
8104 (a = inversion_rule(p)) // inversion
8105 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00008106 (b = _loop1_89_rule(p)) // (('and' inversion))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008107 )
8108 {
8109 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
8110 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8111 if (_token == NULL) {
8112 D(p->level--);
8113 return NULL;
8114 }
8115 int _end_lineno = _token->end_lineno;
8116 UNUSED(_end_lineno); // Only used by EXTRA macro
8117 int _end_col_offset = _token->end_col_offset;
8118 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03008119 _res = _Py_BoolOp ( And , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008120 if (_res == NULL && PyErr_Occurred()) {
8121 p->error_indicator = 1;
8122 D(p->level--);
8123 return NULL;
8124 }
8125 goto done;
8126 }
8127 p->mark = _mark;
8128 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
8129 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
8130 }
8131 { // inversion
8132 if (p->error_indicator) {
8133 D(p->level--);
8134 return NULL;
8135 }
8136 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
8137 expr_ty inversion_var;
8138 if (
8139 (inversion_var = inversion_rule(p)) // inversion
8140 )
8141 {
8142 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
8143 _res = inversion_var;
8144 goto done;
8145 }
8146 p->mark = _mark;
8147 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
8148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
8149 }
8150 _res = NULL;
8151 done:
8152 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
8153 D(p->level--);
8154 return _res;
8155}
8156
8157// inversion: 'not' inversion | comparison
8158static expr_ty
8159inversion_rule(Parser *p)
8160{
8161 D(p->level++);
8162 if (p->error_indicator) {
8163 D(p->level--);
8164 return NULL;
8165 }
8166 expr_ty _res = NULL;
8167 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
8168 D(p->level--);
8169 return _res;
8170 }
8171 int _mark = p->mark;
8172 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8173 p->error_indicator = 1;
8174 D(p->level--);
8175 return NULL;
8176 }
8177 int _start_lineno = p->tokens[_mark]->lineno;
8178 UNUSED(_start_lineno); // Only used by EXTRA macro
8179 int _start_col_offset = p->tokens[_mark]->col_offset;
8180 UNUSED(_start_col_offset); // Only used by EXTRA macro
8181 { // 'not' inversion
8182 if (p->error_indicator) {
8183 D(p->level--);
8184 return NULL;
8185 }
8186 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
8187 Token * _keyword;
8188 expr_ty a;
8189 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03008190 (_keyword = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008191 &&
8192 (a = inversion_rule(p)) // inversion
8193 )
8194 {
8195 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
8196 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8197 if (_token == NULL) {
8198 D(p->level--);
8199 return NULL;
8200 }
8201 int _end_lineno = _token->end_lineno;
8202 UNUSED(_end_lineno); // Only used by EXTRA macro
8203 int _end_col_offset = _token->end_col_offset;
8204 UNUSED(_end_col_offset); // Only used by EXTRA macro
8205 _res = _Py_UnaryOp ( Not , a , EXTRA );
8206 if (_res == NULL && PyErr_Occurred()) {
8207 p->error_indicator = 1;
8208 D(p->level--);
8209 return NULL;
8210 }
8211 goto done;
8212 }
8213 p->mark = _mark;
8214 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
8215 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
8216 }
8217 { // comparison
8218 if (p->error_indicator) {
8219 D(p->level--);
8220 return NULL;
8221 }
8222 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
8223 expr_ty comparison_var;
8224 if (
8225 (comparison_var = comparison_rule(p)) // comparison
8226 )
8227 {
8228 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
8229 _res = comparison_var;
8230 goto done;
8231 }
8232 p->mark = _mark;
8233 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
8234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
8235 }
8236 _res = NULL;
8237 done:
8238 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
8239 D(p->level--);
8240 return _res;
8241}
8242
8243// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
8244static expr_ty
8245comparison_rule(Parser *p)
8246{
8247 D(p->level++);
8248 if (p->error_indicator) {
8249 D(p->level--);
8250 return NULL;
8251 }
8252 expr_ty _res = NULL;
8253 int _mark = p->mark;
8254 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8255 p->error_indicator = 1;
8256 D(p->level--);
8257 return NULL;
8258 }
8259 int _start_lineno = p->tokens[_mark]->lineno;
8260 UNUSED(_start_lineno); // Only used by EXTRA macro
8261 int _start_col_offset = p->tokens[_mark]->col_offset;
8262 UNUSED(_start_col_offset); // Only used by EXTRA macro
8263 { // bitwise_or compare_op_bitwise_or_pair+
8264 if (p->error_indicator) {
8265 D(p->level--);
8266 return NULL;
8267 }
8268 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
8269 expr_ty a;
8270 asdl_seq * b;
8271 if (
8272 (a = bitwise_or_rule(p)) // bitwise_or
8273 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00008274 (b = _loop1_90_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008275 )
8276 {
8277 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
8278 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8279 if (_token == NULL) {
8280 D(p->level--);
8281 return NULL;
8282 }
8283 int _end_lineno = _token->end_lineno;
8284 UNUSED(_end_lineno); // Only used by EXTRA macro
8285 int _end_col_offset = _token->end_col_offset;
8286 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03008287 _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 +01008288 if (_res == NULL && PyErr_Occurred()) {
8289 p->error_indicator = 1;
8290 D(p->level--);
8291 return NULL;
8292 }
8293 goto done;
8294 }
8295 p->mark = _mark;
8296 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
8297 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
8298 }
8299 { // bitwise_or
8300 if (p->error_indicator) {
8301 D(p->level--);
8302 return NULL;
8303 }
8304 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
8305 expr_ty bitwise_or_var;
8306 if (
8307 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
8308 )
8309 {
8310 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
8311 _res = bitwise_or_var;
8312 goto done;
8313 }
8314 p->mark = _mark;
8315 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
8316 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
8317 }
8318 _res = NULL;
8319 done:
8320 D(p->level--);
8321 return _res;
8322}
8323
8324// compare_op_bitwise_or_pair:
8325// | eq_bitwise_or
8326// | noteq_bitwise_or
8327// | lte_bitwise_or
8328// | lt_bitwise_or
8329// | gte_bitwise_or
8330// | gt_bitwise_or
8331// | notin_bitwise_or
8332// | in_bitwise_or
8333// | isnot_bitwise_or
8334// | is_bitwise_or
8335static CmpopExprPair*
8336compare_op_bitwise_or_pair_rule(Parser *p)
8337{
8338 D(p->level++);
8339 if (p->error_indicator) {
8340 D(p->level--);
8341 return NULL;
8342 }
8343 CmpopExprPair* _res = NULL;
8344 int _mark = p->mark;
8345 { // eq_bitwise_or
8346 if (p->error_indicator) {
8347 D(p->level--);
8348 return NULL;
8349 }
8350 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
8351 CmpopExprPair* eq_bitwise_or_var;
8352 if (
8353 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
8354 )
8355 {
8356 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
8357 _res = eq_bitwise_or_var;
8358 goto done;
8359 }
8360 p->mark = _mark;
8361 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
8363 }
8364 { // noteq_bitwise_or
8365 if (p->error_indicator) {
8366 D(p->level--);
8367 return NULL;
8368 }
8369 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
8370 CmpopExprPair* noteq_bitwise_or_var;
8371 if (
8372 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
8373 )
8374 {
8375 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
8376 _res = noteq_bitwise_or_var;
8377 goto done;
8378 }
8379 p->mark = _mark;
8380 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8381 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
8382 }
8383 { // lte_bitwise_or
8384 if (p->error_indicator) {
8385 D(p->level--);
8386 return NULL;
8387 }
8388 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
8389 CmpopExprPair* lte_bitwise_or_var;
8390 if (
8391 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
8392 )
8393 {
8394 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
8395 _res = lte_bitwise_or_var;
8396 goto done;
8397 }
8398 p->mark = _mark;
8399 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8400 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
8401 }
8402 { // lt_bitwise_or
8403 if (p->error_indicator) {
8404 D(p->level--);
8405 return NULL;
8406 }
8407 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
8408 CmpopExprPair* lt_bitwise_or_var;
8409 if (
8410 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
8411 )
8412 {
8413 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
8414 _res = lt_bitwise_or_var;
8415 goto done;
8416 }
8417 p->mark = _mark;
8418 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8419 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
8420 }
8421 { // gte_bitwise_or
8422 if (p->error_indicator) {
8423 D(p->level--);
8424 return NULL;
8425 }
8426 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
8427 CmpopExprPair* gte_bitwise_or_var;
8428 if (
8429 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
8430 )
8431 {
8432 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
8433 _res = gte_bitwise_or_var;
8434 goto done;
8435 }
8436 p->mark = _mark;
8437 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
8439 }
8440 { // gt_bitwise_or
8441 if (p->error_indicator) {
8442 D(p->level--);
8443 return NULL;
8444 }
8445 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
8446 CmpopExprPair* gt_bitwise_or_var;
8447 if (
8448 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
8449 )
8450 {
8451 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
8452 _res = gt_bitwise_or_var;
8453 goto done;
8454 }
8455 p->mark = _mark;
8456 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8457 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
8458 }
8459 { // notin_bitwise_or
8460 if (p->error_indicator) {
8461 D(p->level--);
8462 return NULL;
8463 }
8464 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
8465 CmpopExprPair* notin_bitwise_or_var;
8466 if (
8467 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
8468 )
8469 {
8470 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
8471 _res = notin_bitwise_or_var;
8472 goto done;
8473 }
8474 p->mark = _mark;
8475 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8476 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
8477 }
8478 { // in_bitwise_or
8479 if (p->error_indicator) {
8480 D(p->level--);
8481 return NULL;
8482 }
8483 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
8484 CmpopExprPair* in_bitwise_or_var;
8485 if (
8486 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
8487 )
8488 {
8489 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
8490 _res = in_bitwise_or_var;
8491 goto done;
8492 }
8493 p->mark = _mark;
8494 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8495 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
8496 }
8497 { // isnot_bitwise_or
8498 if (p->error_indicator) {
8499 D(p->level--);
8500 return NULL;
8501 }
8502 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
8503 CmpopExprPair* isnot_bitwise_or_var;
8504 if (
8505 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
8506 )
8507 {
8508 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
8509 _res = isnot_bitwise_or_var;
8510 goto done;
8511 }
8512 p->mark = _mark;
8513 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8514 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
8515 }
8516 { // is_bitwise_or
8517 if (p->error_indicator) {
8518 D(p->level--);
8519 return NULL;
8520 }
8521 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
8522 CmpopExprPair* is_bitwise_or_var;
8523 if (
8524 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
8525 )
8526 {
8527 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
8528 _res = is_bitwise_or_var;
8529 goto done;
8530 }
8531 p->mark = _mark;
8532 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8533 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
8534 }
8535 _res = NULL;
8536 done:
8537 D(p->level--);
8538 return _res;
8539}
8540
8541// eq_bitwise_or: '==' bitwise_or
8542static CmpopExprPair*
8543eq_bitwise_or_rule(Parser *p)
8544{
8545 D(p->level++);
8546 if (p->error_indicator) {
8547 D(p->level--);
8548 return NULL;
8549 }
8550 CmpopExprPair* _res = NULL;
8551 int _mark = p->mark;
8552 { // '==' bitwise_or
8553 if (p->error_indicator) {
8554 D(p->level--);
8555 return NULL;
8556 }
8557 D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
8558 Token * _literal;
8559 expr_ty a;
8560 if (
8561 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
8562 &&
8563 (a = bitwise_or_rule(p)) // bitwise_or
8564 )
8565 {
8566 D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
8567 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
8568 if (_res == NULL && PyErr_Occurred()) {
8569 p->error_indicator = 1;
8570 D(p->level--);
8571 return NULL;
8572 }
8573 goto done;
8574 }
8575 p->mark = _mark;
8576 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8577 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
8578 }
8579 _res = NULL;
8580 done:
8581 D(p->level--);
8582 return _res;
8583}
8584
8585// noteq_bitwise_or: ('!=') bitwise_or
8586static CmpopExprPair*
8587noteq_bitwise_or_rule(Parser *p)
8588{
8589 D(p->level++);
8590 if (p->error_indicator) {
8591 D(p->level--);
8592 return NULL;
8593 }
8594 CmpopExprPair* _res = NULL;
8595 int _mark = p->mark;
8596 { // ('!=') bitwise_or
8597 if (p->error_indicator) {
8598 D(p->level--);
8599 return NULL;
8600 }
8601 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 +00008602 void *_tmp_91_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008603 expr_ty a;
8604 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00008605 (_tmp_91_var = _tmp_91_rule(p)) // '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008606 &&
8607 (a = bitwise_or_rule(p)) // bitwise_or
8608 )
8609 {
8610 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
8611 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
8612 if (_res == NULL && PyErr_Occurred()) {
8613 p->error_indicator = 1;
8614 D(p->level--);
8615 return NULL;
8616 }
8617 goto done;
8618 }
8619 p->mark = _mark;
8620 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8621 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
8622 }
8623 _res = NULL;
8624 done:
8625 D(p->level--);
8626 return _res;
8627}
8628
8629// lte_bitwise_or: '<=' bitwise_or
8630static CmpopExprPair*
8631lte_bitwise_or_rule(Parser *p)
8632{
8633 D(p->level++);
8634 if (p->error_indicator) {
8635 D(p->level--);
8636 return NULL;
8637 }
8638 CmpopExprPair* _res = NULL;
8639 int _mark = p->mark;
8640 { // '<=' bitwise_or
8641 if (p->error_indicator) {
8642 D(p->level--);
8643 return NULL;
8644 }
8645 D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
8646 Token * _literal;
8647 expr_ty a;
8648 if (
8649 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
8650 &&
8651 (a = bitwise_or_rule(p)) // bitwise_or
8652 )
8653 {
8654 D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
8655 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
8656 if (_res == NULL && PyErr_Occurred()) {
8657 p->error_indicator = 1;
8658 D(p->level--);
8659 return NULL;
8660 }
8661 goto done;
8662 }
8663 p->mark = _mark;
8664 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8665 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
8666 }
8667 _res = NULL;
8668 done:
8669 D(p->level--);
8670 return _res;
8671}
8672
8673// lt_bitwise_or: '<' bitwise_or
8674static CmpopExprPair*
8675lt_bitwise_or_rule(Parser *p)
8676{
8677 D(p->level++);
8678 if (p->error_indicator) {
8679 D(p->level--);
8680 return NULL;
8681 }
8682 CmpopExprPair* _res = NULL;
8683 int _mark = p->mark;
8684 { // '<' bitwise_or
8685 if (p->error_indicator) {
8686 D(p->level--);
8687 return NULL;
8688 }
8689 D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
8690 Token * _literal;
8691 expr_ty a;
8692 if (
8693 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
8694 &&
8695 (a = bitwise_or_rule(p)) // bitwise_or
8696 )
8697 {
8698 D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
8699 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
8700 if (_res == NULL && PyErr_Occurred()) {
8701 p->error_indicator = 1;
8702 D(p->level--);
8703 return NULL;
8704 }
8705 goto done;
8706 }
8707 p->mark = _mark;
8708 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8709 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
8710 }
8711 _res = NULL;
8712 done:
8713 D(p->level--);
8714 return _res;
8715}
8716
8717// gte_bitwise_or: '>=' bitwise_or
8718static CmpopExprPair*
8719gte_bitwise_or_rule(Parser *p)
8720{
8721 D(p->level++);
8722 if (p->error_indicator) {
8723 D(p->level--);
8724 return NULL;
8725 }
8726 CmpopExprPair* _res = NULL;
8727 int _mark = p->mark;
8728 { // '>=' bitwise_or
8729 if (p->error_indicator) {
8730 D(p->level--);
8731 return NULL;
8732 }
8733 D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
8734 Token * _literal;
8735 expr_ty a;
8736 if (
8737 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
8738 &&
8739 (a = bitwise_or_rule(p)) // bitwise_or
8740 )
8741 {
8742 D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
8743 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
8744 if (_res == NULL && PyErr_Occurred()) {
8745 p->error_indicator = 1;
8746 D(p->level--);
8747 return NULL;
8748 }
8749 goto done;
8750 }
8751 p->mark = _mark;
8752 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8753 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
8754 }
8755 _res = NULL;
8756 done:
8757 D(p->level--);
8758 return _res;
8759}
8760
8761// gt_bitwise_or: '>' bitwise_or
8762static CmpopExprPair*
8763gt_bitwise_or_rule(Parser *p)
8764{
8765 D(p->level++);
8766 if (p->error_indicator) {
8767 D(p->level--);
8768 return NULL;
8769 }
8770 CmpopExprPair* _res = NULL;
8771 int _mark = p->mark;
8772 { // '>' bitwise_or
8773 if (p->error_indicator) {
8774 D(p->level--);
8775 return NULL;
8776 }
8777 D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
8778 Token * _literal;
8779 expr_ty a;
8780 if (
8781 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
8782 &&
8783 (a = bitwise_or_rule(p)) // bitwise_or
8784 )
8785 {
8786 D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
8787 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
8788 if (_res == NULL && PyErr_Occurred()) {
8789 p->error_indicator = 1;
8790 D(p->level--);
8791 return NULL;
8792 }
8793 goto done;
8794 }
8795 p->mark = _mark;
8796 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8797 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
8798 }
8799 _res = NULL;
8800 done:
8801 D(p->level--);
8802 return _res;
8803}
8804
8805// notin_bitwise_or: 'not' 'in' bitwise_or
8806static CmpopExprPair*
8807notin_bitwise_or_rule(Parser *p)
8808{
8809 D(p->level++);
8810 if (p->error_indicator) {
8811 D(p->level--);
8812 return NULL;
8813 }
8814 CmpopExprPair* _res = NULL;
8815 int _mark = p->mark;
8816 { // 'not' 'in' bitwise_or
8817 if (p->error_indicator) {
8818 D(p->level--);
8819 return NULL;
8820 }
8821 D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
8822 Token * _keyword;
8823 Token * _keyword_1;
8824 expr_ty a;
8825 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03008826 (_keyword = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008827 &&
8828 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
8829 &&
8830 (a = bitwise_or_rule(p)) // bitwise_or
8831 )
8832 {
8833 D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
8834 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
8835 if (_res == NULL && PyErr_Occurred()) {
8836 p->error_indicator = 1;
8837 D(p->level--);
8838 return NULL;
8839 }
8840 goto done;
8841 }
8842 p->mark = _mark;
8843 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8844 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
8845 }
8846 _res = NULL;
8847 done:
8848 D(p->level--);
8849 return _res;
8850}
8851
8852// in_bitwise_or: 'in' bitwise_or
8853static CmpopExprPair*
8854in_bitwise_or_rule(Parser *p)
8855{
8856 D(p->level++);
8857 if (p->error_indicator) {
8858 D(p->level--);
8859 return NULL;
8860 }
8861 CmpopExprPair* _res = NULL;
8862 int _mark = p->mark;
8863 { // 'in' bitwise_or
8864 if (p->error_indicator) {
8865 D(p->level--);
8866 return NULL;
8867 }
8868 D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
8869 Token * _keyword;
8870 expr_ty a;
8871 if (
8872 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
8873 &&
8874 (a = bitwise_or_rule(p)) // bitwise_or
8875 )
8876 {
8877 D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
8878 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
8879 if (_res == NULL && PyErr_Occurred()) {
8880 p->error_indicator = 1;
8881 D(p->level--);
8882 return NULL;
8883 }
8884 goto done;
8885 }
8886 p->mark = _mark;
8887 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8888 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
8889 }
8890 _res = NULL;
8891 done:
8892 D(p->level--);
8893 return _res;
8894}
8895
8896// isnot_bitwise_or: 'is' 'not' bitwise_or
8897static CmpopExprPair*
8898isnot_bitwise_or_rule(Parser *p)
8899{
8900 D(p->level++);
8901 if (p->error_indicator) {
8902 D(p->level--);
8903 return NULL;
8904 }
8905 CmpopExprPair* _res = NULL;
8906 int _mark = p->mark;
8907 { // 'is' 'not' bitwise_or
8908 if (p->error_indicator) {
8909 D(p->level--);
8910 return NULL;
8911 }
8912 D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
8913 Token * _keyword;
8914 Token * _keyword_1;
8915 expr_ty a;
8916 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03008917 (_keyword = _PyPegen_expect_token(p, 527)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008918 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03008919 (_keyword_1 = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008920 &&
8921 (a = bitwise_or_rule(p)) // bitwise_or
8922 )
8923 {
8924 D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
8925 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
8926 if (_res == NULL && PyErr_Occurred()) {
8927 p->error_indicator = 1;
8928 D(p->level--);
8929 return NULL;
8930 }
8931 goto done;
8932 }
8933 p->mark = _mark;
8934 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8935 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
8936 }
8937 _res = NULL;
8938 done:
8939 D(p->level--);
8940 return _res;
8941}
8942
8943// is_bitwise_or: 'is' bitwise_or
8944static CmpopExprPair*
8945is_bitwise_or_rule(Parser *p)
8946{
8947 D(p->level++);
8948 if (p->error_indicator) {
8949 D(p->level--);
8950 return NULL;
8951 }
8952 CmpopExprPair* _res = NULL;
8953 int _mark = p->mark;
8954 { // 'is' bitwise_or
8955 if (p->error_indicator) {
8956 D(p->level--);
8957 return NULL;
8958 }
8959 D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
8960 Token * _keyword;
8961 expr_ty a;
8962 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03008963 (_keyword = _PyPegen_expect_token(p, 527)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008964 &&
8965 (a = bitwise_or_rule(p)) // bitwise_or
8966 )
8967 {
8968 D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
8969 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
8970 if (_res == NULL && PyErr_Occurred()) {
8971 p->error_indicator = 1;
8972 D(p->level--);
8973 return NULL;
8974 }
8975 goto done;
8976 }
8977 p->mark = _mark;
8978 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8979 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
8980 }
8981 _res = NULL;
8982 done:
8983 D(p->level--);
8984 return _res;
8985}
8986
8987// Left-recursive
8988// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
8989static expr_ty bitwise_or_raw(Parser *);
8990static expr_ty
8991bitwise_or_rule(Parser *p)
8992{
8993 D(p->level++);
8994 expr_ty _res = NULL;
8995 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
8996 D(p->level--);
8997 return _res;
8998 }
8999 int _mark = p->mark;
9000 int _resmark = p->mark;
9001 while (1) {
9002 int tmpvar_1 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
9003 if (tmpvar_1) {
9004 D(p->level--);
9005 return _res;
9006 }
9007 p->mark = _mark;
9008 void *_raw = bitwise_or_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009009 if (p->error_indicator)
9010 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009011 if (_raw == NULL || p->mark <= _resmark)
9012 break;
9013 _resmark = p->mark;
9014 _res = _raw;
9015 }
9016 p->mark = _resmark;
9017 D(p->level--);
9018 return _res;
9019}
9020static expr_ty
9021bitwise_or_raw(Parser *p)
9022{
9023 D(p->level++);
9024 if (p->error_indicator) {
9025 D(p->level--);
9026 return NULL;
9027 }
9028 expr_ty _res = NULL;
9029 int _mark = p->mark;
9030 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9031 p->error_indicator = 1;
9032 D(p->level--);
9033 return NULL;
9034 }
9035 int _start_lineno = p->tokens[_mark]->lineno;
9036 UNUSED(_start_lineno); // Only used by EXTRA macro
9037 int _start_col_offset = p->tokens[_mark]->col_offset;
9038 UNUSED(_start_col_offset); // Only used by EXTRA macro
9039 { // bitwise_or '|' bitwise_xor
9040 if (p->error_indicator) {
9041 D(p->level--);
9042 return NULL;
9043 }
9044 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
9045 Token * _literal;
9046 expr_ty a;
9047 expr_ty b;
9048 if (
9049 (a = bitwise_or_rule(p)) // bitwise_or
9050 &&
9051 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
9052 &&
9053 (b = bitwise_xor_rule(p)) // bitwise_xor
9054 )
9055 {
9056 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
9057 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9058 if (_token == NULL) {
9059 D(p->level--);
9060 return NULL;
9061 }
9062 int _end_lineno = _token->end_lineno;
9063 UNUSED(_end_lineno); // Only used by EXTRA macro
9064 int _end_col_offset = _token->end_col_offset;
9065 UNUSED(_end_col_offset); // Only used by EXTRA macro
9066 _res = _Py_BinOp ( a , BitOr , b , EXTRA );
9067 if (_res == NULL && PyErr_Occurred()) {
9068 p->error_indicator = 1;
9069 D(p->level--);
9070 return NULL;
9071 }
9072 goto done;
9073 }
9074 p->mark = _mark;
9075 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9076 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
9077 }
9078 { // bitwise_xor
9079 if (p->error_indicator) {
9080 D(p->level--);
9081 return NULL;
9082 }
9083 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
9084 expr_ty bitwise_xor_var;
9085 if (
9086 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
9087 )
9088 {
9089 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
9090 _res = bitwise_xor_var;
9091 goto done;
9092 }
9093 p->mark = _mark;
9094 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9095 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
9096 }
9097 _res = NULL;
9098 done:
9099 D(p->level--);
9100 return _res;
9101}
9102
9103// Left-recursive
9104// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
9105static expr_ty bitwise_xor_raw(Parser *);
9106static expr_ty
9107bitwise_xor_rule(Parser *p)
9108{
9109 D(p->level++);
9110 expr_ty _res = NULL;
9111 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
9112 D(p->level--);
9113 return _res;
9114 }
9115 int _mark = p->mark;
9116 int _resmark = p->mark;
9117 while (1) {
9118 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
9119 if (tmpvar_2) {
9120 D(p->level--);
9121 return _res;
9122 }
9123 p->mark = _mark;
9124 void *_raw = bitwise_xor_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009125 if (p->error_indicator)
9126 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009127 if (_raw == NULL || p->mark <= _resmark)
9128 break;
9129 _resmark = p->mark;
9130 _res = _raw;
9131 }
9132 p->mark = _resmark;
9133 D(p->level--);
9134 return _res;
9135}
9136static expr_ty
9137bitwise_xor_raw(Parser *p)
9138{
9139 D(p->level++);
9140 if (p->error_indicator) {
9141 D(p->level--);
9142 return NULL;
9143 }
9144 expr_ty _res = NULL;
9145 int _mark = p->mark;
9146 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9147 p->error_indicator = 1;
9148 D(p->level--);
9149 return NULL;
9150 }
9151 int _start_lineno = p->tokens[_mark]->lineno;
9152 UNUSED(_start_lineno); // Only used by EXTRA macro
9153 int _start_col_offset = p->tokens[_mark]->col_offset;
9154 UNUSED(_start_col_offset); // Only used by EXTRA macro
9155 { // bitwise_xor '^' bitwise_and
9156 if (p->error_indicator) {
9157 D(p->level--);
9158 return NULL;
9159 }
9160 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
9161 Token * _literal;
9162 expr_ty a;
9163 expr_ty b;
9164 if (
9165 (a = bitwise_xor_rule(p)) // bitwise_xor
9166 &&
9167 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
9168 &&
9169 (b = bitwise_and_rule(p)) // bitwise_and
9170 )
9171 {
9172 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
9173 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9174 if (_token == NULL) {
9175 D(p->level--);
9176 return NULL;
9177 }
9178 int _end_lineno = _token->end_lineno;
9179 UNUSED(_end_lineno); // Only used by EXTRA macro
9180 int _end_col_offset = _token->end_col_offset;
9181 UNUSED(_end_col_offset); // Only used by EXTRA macro
9182 _res = _Py_BinOp ( a , BitXor , b , EXTRA );
9183 if (_res == NULL && PyErr_Occurred()) {
9184 p->error_indicator = 1;
9185 D(p->level--);
9186 return NULL;
9187 }
9188 goto done;
9189 }
9190 p->mark = _mark;
9191 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
9192 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
9193 }
9194 { // bitwise_and
9195 if (p->error_indicator) {
9196 D(p->level--);
9197 return NULL;
9198 }
9199 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
9200 expr_ty bitwise_and_var;
9201 if (
9202 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
9203 )
9204 {
9205 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
9206 _res = bitwise_and_var;
9207 goto done;
9208 }
9209 p->mark = _mark;
9210 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
9211 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
9212 }
9213 _res = NULL;
9214 done:
9215 D(p->level--);
9216 return _res;
9217}
9218
9219// Left-recursive
9220// bitwise_and: bitwise_and '&' shift_expr | shift_expr
9221static expr_ty bitwise_and_raw(Parser *);
9222static expr_ty
9223bitwise_and_rule(Parser *p)
9224{
9225 D(p->level++);
9226 expr_ty _res = NULL;
9227 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
9228 D(p->level--);
9229 return _res;
9230 }
9231 int _mark = p->mark;
9232 int _resmark = p->mark;
9233 while (1) {
9234 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
9235 if (tmpvar_3) {
9236 D(p->level--);
9237 return _res;
9238 }
9239 p->mark = _mark;
9240 void *_raw = bitwise_and_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009241 if (p->error_indicator)
9242 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009243 if (_raw == NULL || p->mark <= _resmark)
9244 break;
9245 _resmark = p->mark;
9246 _res = _raw;
9247 }
9248 p->mark = _resmark;
9249 D(p->level--);
9250 return _res;
9251}
9252static expr_ty
9253bitwise_and_raw(Parser *p)
9254{
9255 D(p->level++);
9256 if (p->error_indicator) {
9257 D(p->level--);
9258 return NULL;
9259 }
9260 expr_ty _res = NULL;
9261 int _mark = p->mark;
9262 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9263 p->error_indicator = 1;
9264 D(p->level--);
9265 return NULL;
9266 }
9267 int _start_lineno = p->tokens[_mark]->lineno;
9268 UNUSED(_start_lineno); // Only used by EXTRA macro
9269 int _start_col_offset = p->tokens[_mark]->col_offset;
9270 UNUSED(_start_col_offset); // Only used by EXTRA macro
9271 { // bitwise_and '&' shift_expr
9272 if (p->error_indicator) {
9273 D(p->level--);
9274 return NULL;
9275 }
9276 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
9277 Token * _literal;
9278 expr_ty a;
9279 expr_ty b;
9280 if (
9281 (a = bitwise_and_rule(p)) // bitwise_and
9282 &&
9283 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
9284 &&
9285 (b = shift_expr_rule(p)) // shift_expr
9286 )
9287 {
9288 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
9289 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9290 if (_token == NULL) {
9291 D(p->level--);
9292 return NULL;
9293 }
9294 int _end_lineno = _token->end_lineno;
9295 UNUSED(_end_lineno); // Only used by EXTRA macro
9296 int _end_col_offset = _token->end_col_offset;
9297 UNUSED(_end_col_offset); // Only used by EXTRA macro
9298 _res = _Py_BinOp ( a , BitAnd , b , EXTRA );
9299 if (_res == NULL && PyErr_Occurred()) {
9300 p->error_indicator = 1;
9301 D(p->level--);
9302 return NULL;
9303 }
9304 goto done;
9305 }
9306 p->mark = _mark;
9307 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
9308 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
9309 }
9310 { // shift_expr
9311 if (p->error_indicator) {
9312 D(p->level--);
9313 return NULL;
9314 }
9315 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
9316 expr_ty shift_expr_var;
9317 if (
9318 (shift_expr_var = shift_expr_rule(p)) // shift_expr
9319 )
9320 {
9321 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
9322 _res = shift_expr_var;
9323 goto done;
9324 }
9325 p->mark = _mark;
9326 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
9327 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
9328 }
9329 _res = NULL;
9330 done:
9331 D(p->level--);
9332 return _res;
9333}
9334
9335// Left-recursive
9336// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
9337static expr_ty shift_expr_raw(Parser *);
9338static expr_ty
9339shift_expr_rule(Parser *p)
9340{
9341 D(p->level++);
9342 expr_ty _res = NULL;
9343 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
9344 D(p->level--);
9345 return _res;
9346 }
9347 int _mark = p->mark;
9348 int _resmark = p->mark;
9349 while (1) {
9350 int tmpvar_4 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
9351 if (tmpvar_4) {
9352 D(p->level--);
9353 return _res;
9354 }
9355 p->mark = _mark;
9356 void *_raw = shift_expr_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009357 if (p->error_indicator)
9358 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009359 if (_raw == NULL || p->mark <= _resmark)
9360 break;
9361 _resmark = p->mark;
9362 _res = _raw;
9363 }
9364 p->mark = _resmark;
9365 D(p->level--);
9366 return _res;
9367}
9368static expr_ty
9369shift_expr_raw(Parser *p)
9370{
9371 D(p->level++);
9372 if (p->error_indicator) {
9373 D(p->level--);
9374 return NULL;
9375 }
9376 expr_ty _res = NULL;
9377 int _mark = p->mark;
9378 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9379 p->error_indicator = 1;
9380 D(p->level--);
9381 return NULL;
9382 }
9383 int _start_lineno = p->tokens[_mark]->lineno;
9384 UNUSED(_start_lineno); // Only used by EXTRA macro
9385 int _start_col_offset = p->tokens[_mark]->col_offset;
9386 UNUSED(_start_col_offset); // Only used by EXTRA macro
9387 { // shift_expr '<<' sum
9388 if (p->error_indicator) {
9389 D(p->level--);
9390 return NULL;
9391 }
9392 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
9393 Token * _literal;
9394 expr_ty a;
9395 expr_ty b;
9396 if (
9397 (a = shift_expr_rule(p)) // shift_expr
9398 &&
9399 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
9400 &&
9401 (b = sum_rule(p)) // sum
9402 )
9403 {
9404 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
9405 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9406 if (_token == NULL) {
9407 D(p->level--);
9408 return NULL;
9409 }
9410 int _end_lineno = _token->end_lineno;
9411 UNUSED(_end_lineno); // Only used by EXTRA macro
9412 int _end_col_offset = _token->end_col_offset;
9413 UNUSED(_end_col_offset); // Only used by EXTRA macro
9414 _res = _Py_BinOp ( a , LShift , b , EXTRA );
9415 if (_res == NULL && PyErr_Occurred()) {
9416 p->error_indicator = 1;
9417 D(p->level--);
9418 return NULL;
9419 }
9420 goto done;
9421 }
9422 p->mark = _mark;
9423 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9424 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
9425 }
9426 { // shift_expr '>>' sum
9427 if (p->error_indicator) {
9428 D(p->level--);
9429 return NULL;
9430 }
9431 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
9432 Token * _literal;
9433 expr_ty a;
9434 expr_ty b;
9435 if (
9436 (a = shift_expr_rule(p)) // shift_expr
9437 &&
9438 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
9439 &&
9440 (b = sum_rule(p)) // sum
9441 )
9442 {
9443 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
9444 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9445 if (_token == NULL) {
9446 D(p->level--);
9447 return NULL;
9448 }
9449 int _end_lineno = _token->end_lineno;
9450 UNUSED(_end_lineno); // Only used by EXTRA macro
9451 int _end_col_offset = _token->end_col_offset;
9452 UNUSED(_end_col_offset); // Only used by EXTRA macro
9453 _res = _Py_BinOp ( a , RShift , b , EXTRA );
9454 if (_res == NULL && PyErr_Occurred()) {
9455 p->error_indicator = 1;
9456 D(p->level--);
9457 return NULL;
9458 }
9459 goto done;
9460 }
9461 p->mark = _mark;
9462 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9463 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
9464 }
9465 { // sum
9466 if (p->error_indicator) {
9467 D(p->level--);
9468 return NULL;
9469 }
9470 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
9471 expr_ty sum_var;
9472 if (
9473 (sum_var = sum_rule(p)) // sum
9474 )
9475 {
9476 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
9477 _res = sum_var;
9478 goto done;
9479 }
9480 p->mark = _mark;
9481 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9482 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
9483 }
9484 _res = NULL;
9485 done:
9486 D(p->level--);
9487 return _res;
9488}
9489
9490// Left-recursive
9491// sum: sum '+' term | sum '-' term | term
9492static expr_ty sum_raw(Parser *);
9493static expr_ty
9494sum_rule(Parser *p)
9495{
9496 D(p->level++);
9497 expr_ty _res = NULL;
9498 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
9499 D(p->level--);
9500 return _res;
9501 }
9502 int _mark = p->mark;
9503 int _resmark = p->mark;
9504 while (1) {
9505 int tmpvar_5 = _PyPegen_update_memo(p, _mark, sum_type, _res);
9506 if (tmpvar_5) {
9507 D(p->level--);
9508 return _res;
9509 }
9510 p->mark = _mark;
9511 void *_raw = sum_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009512 if (p->error_indicator)
9513 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009514 if (_raw == NULL || p->mark <= _resmark)
9515 break;
9516 _resmark = p->mark;
9517 _res = _raw;
9518 }
9519 p->mark = _resmark;
9520 D(p->level--);
9521 return _res;
9522}
9523static expr_ty
9524sum_raw(Parser *p)
9525{
9526 D(p->level++);
9527 if (p->error_indicator) {
9528 D(p->level--);
9529 return NULL;
9530 }
9531 expr_ty _res = NULL;
9532 int _mark = p->mark;
9533 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9534 p->error_indicator = 1;
9535 D(p->level--);
9536 return NULL;
9537 }
9538 int _start_lineno = p->tokens[_mark]->lineno;
9539 UNUSED(_start_lineno); // Only used by EXTRA macro
9540 int _start_col_offset = p->tokens[_mark]->col_offset;
9541 UNUSED(_start_col_offset); // Only used by EXTRA macro
9542 { // sum '+' term
9543 if (p->error_indicator) {
9544 D(p->level--);
9545 return NULL;
9546 }
9547 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
9548 Token * _literal;
9549 expr_ty a;
9550 expr_ty b;
9551 if (
9552 (a = sum_rule(p)) // sum
9553 &&
9554 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
9555 &&
9556 (b = term_rule(p)) // term
9557 )
9558 {
9559 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
9560 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9561 if (_token == NULL) {
9562 D(p->level--);
9563 return NULL;
9564 }
9565 int _end_lineno = _token->end_lineno;
9566 UNUSED(_end_lineno); // Only used by EXTRA macro
9567 int _end_col_offset = _token->end_col_offset;
9568 UNUSED(_end_col_offset); // Only used by EXTRA macro
9569 _res = _Py_BinOp ( a , Add , b , EXTRA );
9570 if (_res == NULL && PyErr_Occurred()) {
9571 p->error_indicator = 1;
9572 D(p->level--);
9573 return NULL;
9574 }
9575 goto done;
9576 }
9577 p->mark = _mark;
9578 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9579 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
9580 }
9581 { // sum '-' term
9582 if (p->error_indicator) {
9583 D(p->level--);
9584 return NULL;
9585 }
9586 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
9587 Token * _literal;
9588 expr_ty a;
9589 expr_ty b;
9590 if (
9591 (a = sum_rule(p)) // sum
9592 &&
9593 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
9594 &&
9595 (b = term_rule(p)) // term
9596 )
9597 {
9598 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
9599 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9600 if (_token == NULL) {
9601 D(p->level--);
9602 return NULL;
9603 }
9604 int _end_lineno = _token->end_lineno;
9605 UNUSED(_end_lineno); // Only used by EXTRA macro
9606 int _end_col_offset = _token->end_col_offset;
9607 UNUSED(_end_col_offset); // Only used by EXTRA macro
9608 _res = _Py_BinOp ( a , Sub , b , EXTRA );
9609 if (_res == NULL && PyErr_Occurred()) {
9610 p->error_indicator = 1;
9611 D(p->level--);
9612 return NULL;
9613 }
9614 goto done;
9615 }
9616 p->mark = _mark;
9617 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9618 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
9619 }
9620 { // term
9621 if (p->error_indicator) {
9622 D(p->level--);
9623 return NULL;
9624 }
9625 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
9626 expr_ty term_var;
9627 if (
9628 (term_var = term_rule(p)) // term
9629 )
9630 {
9631 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
9632 _res = term_var;
9633 goto done;
9634 }
9635 p->mark = _mark;
9636 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9637 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
9638 }
9639 _res = NULL;
9640 done:
9641 D(p->level--);
9642 return _res;
9643}
9644
9645// Left-recursive
9646// term:
9647// | term '*' factor
9648// | term '/' factor
9649// | term '//' factor
9650// | term '%' factor
9651// | term '@' factor
9652// | factor
9653static expr_ty term_raw(Parser *);
9654static expr_ty
9655term_rule(Parser *p)
9656{
9657 D(p->level++);
9658 expr_ty _res = NULL;
9659 if (_PyPegen_is_memoized(p, term_type, &_res)) {
9660 D(p->level--);
9661 return _res;
9662 }
9663 int _mark = p->mark;
9664 int _resmark = p->mark;
9665 while (1) {
9666 int tmpvar_6 = _PyPegen_update_memo(p, _mark, term_type, _res);
9667 if (tmpvar_6) {
9668 D(p->level--);
9669 return _res;
9670 }
9671 p->mark = _mark;
9672 void *_raw = term_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009673 if (p->error_indicator)
9674 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009675 if (_raw == NULL || p->mark <= _resmark)
9676 break;
9677 _resmark = p->mark;
9678 _res = _raw;
9679 }
9680 p->mark = _resmark;
9681 D(p->level--);
9682 return _res;
9683}
9684static expr_ty
9685term_raw(Parser *p)
9686{
9687 D(p->level++);
9688 if (p->error_indicator) {
9689 D(p->level--);
9690 return NULL;
9691 }
9692 expr_ty _res = NULL;
9693 int _mark = p->mark;
9694 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9695 p->error_indicator = 1;
9696 D(p->level--);
9697 return NULL;
9698 }
9699 int _start_lineno = p->tokens[_mark]->lineno;
9700 UNUSED(_start_lineno); // Only used by EXTRA macro
9701 int _start_col_offset = p->tokens[_mark]->col_offset;
9702 UNUSED(_start_col_offset); // Only used by EXTRA macro
9703 { // term '*' factor
9704 if (p->error_indicator) {
9705 D(p->level--);
9706 return NULL;
9707 }
9708 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
9709 Token * _literal;
9710 expr_ty a;
9711 expr_ty b;
9712 if (
9713 (a = term_rule(p)) // term
9714 &&
9715 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9716 &&
9717 (b = factor_rule(p)) // factor
9718 )
9719 {
9720 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
9721 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9722 if (_token == NULL) {
9723 D(p->level--);
9724 return NULL;
9725 }
9726 int _end_lineno = _token->end_lineno;
9727 UNUSED(_end_lineno); // Only used by EXTRA macro
9728 int _end_col_offset = _token->end_col_offset;
9729 UNUSED(_end_col_offset); // Only used by EXTRA macro
9730 _res = _Py_BinOp ( a , Mult , b , EXTRA );
9731 if (_res == NULL && PyErr_Occurred()) {
9732 p->error_indicator = 1;
9733 D(p->level--);
9734 return NULL;
9735 }
9736 goto done;
9737 }
9738 p->mark = _mark;
9739 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9740 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
9741 }
9742 { // term '/' factor
9743 if (p->error_indicator) {
9744 D(p->level--);
9745 return NULL;
9746 }
9747 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
9748 Token * _literal;
9749 expr_ty a;
9750 expr_ty b;
9751 if (
9752 (a = term_rule(p)) // term
9753 &&
9754 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
9755 &&
9756 (b = factor_rule(p)) // factor
9757 )
9758 {
9759 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
9760 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9761 if (_token == NULL) {
9762 D(p->level--);
9763 return NULL;
9764 }
9765 int _end_lineno = _token->end_lineno;
9766 UNUSED(_end_lineno); // Only used by EXTRA macro
9767 int _end_col_offset = _token->end_col_offset;
9768 UNUSED(_end_col_offset); // Only used by EXTRA macro
9769 _res = _Py_BinOp ( a , Div , b , EXTRA );
9770 if (_res == NULL && PyErr_Occurred()) {
9771 p->error_indicator = 1;
9772 D(p->level--);
9773 return NULL;
9774 }
9775 goto done;
9776 }
9777 p->mark = _mark;
9778 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9779 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
9780 }
9781 { // term '//' factor
9782 if (p->error_indicator) {
9783 D(p->level--);
9784 return NULL;
9785 }
9786 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
9787 Token * _literal;
9788 expr_ty a;
9789 expr_ty b;
9790 if (
9791 (a = term_rule(p)) // term
9792 &&
9793 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
9794 &&
9795 (b = factor_rule(p)) // factor
9796 )
9797 {
9798 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
9799 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9800 if (_token == NULL) {
9801 D(p->level--);
9802 return NULL;
9803 }
9804 int _end_lineno = _token->end_lineno;
9805 UNUSED(_end_lineno); // Only used by EXTRA macro
9806 int _end_col_offset = _token->end_col_offset;
9807 UNUSED(_end_col_offset); // Only used by EXTRA macro
9808 _res = _Py_BinOp ( a , FloorDiv , b , EXTRA );
9809 if (_res == NULL && PyErr_Occurred()) {
9810 p->error_indicator = 1;
9811 D(p->level--);
9812 return NULL;
9813 }
9814 goto done;
9815 }
9816 p->mark = _mark;
9817 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9818 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
9819 }
9820 { // term '%' factor
9821 if (p->error_indicator) {
9822 D(p->level--);
9823 return NULL;
9824 }
9825 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
9826 Token * _literal;
9827 expr_ty a;
9828 expr_ty b;
9829 if (
9830 (a = term_rule(p)) // term
9831 &&
9832 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
9833 &&
9834 (b = factor_rule(p)) // factor
9835 )
9836 {
9837 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
9838 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9839 if (_token == NULL) {
9840 D(p->level--);
9841 return NULL;
9842 }
9843 int _end_lineno = _token->end_lineno;
9844 UNUSED(_end_lineno); // Only used by EXTRA macro
9845 int _end_col_offset = _token->end_col_offset;
9846 UNUSED(_end_col_offset); // Only used by EXTRA macro
9847 _res = _Py_BinOp ( a , Mod , b , EXTRA );
9848 if (_res == NULL && PyErr_Occurred()) {
9849 p->error_indicator = 1;
9850 D(p->level--);
9851 return NULL;
9852 }
9853 goto done;
9854 }
9855 p->mark = _mark;
9856 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9857 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
9858 }
9859 { // term '@' factor
9860 if (p->error_indicator) {
9861 D(p->level--);
9862 return NULL;
9863 }
9864 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
9865 Token * _literal;
9866 expr_ty a;
9867 expr_ty b;
9868 if (
9869 (a = term_rule(p)) // term
9870 &&
9871 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
9872 &&
9873 (b = factor_rule(p)) // factor
9874 )
9875 {
9876 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
9877 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9878 if (_token == NULL) {
9879 D(p->level--);
9880 return NULL;
9881 }
9882 int _end_lineno = _token->end_lineno;
9883 UNUSED(_end_lineno); // Only used by EXTRA macro
9884 int _end_col_offset = _token->end_col_offset;
9885 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03009886 _res = CHECK_VERSION ( expr_ty , 5 , "The '@' operator is" , _Py_BinOp ( a , MatMult , b , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009887 if (_res == NULL && PyErr_Occurred()) {
9888 p->error_indicator = 1;
9889 D(p->level--);
9890 return NULL;
9891 }
9892 goto done;
9893 }
9894 p->mark = _mark;
9895 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9896 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
9897 }
9898 { // factor
9899 if (p->error_indicator) {
9900 D(p->level--);
9901 return NULL;
9902 }
9903 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
9904 expr_ty factor_var;
9905 if (
9906 (factor_var = factor_rule(p)) // factor
9907 )
9908 {
9909 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
9910 _res = factor_var;
9911 goto done;
9912 }
9913 p->mark = _mark;
9914 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9915 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
9916 }
9917 _res = NULL;
9918 done:
9919 D(p->level--);
9920 return _res;
9921}
9922
9923// factor: '+' factor | '-' factor | '~' factor | power
9924static expr_ty
9925factor_rule(Parser *p)
9926{
9927 D(p->level++);
9928 if (p->error_indicator) {
9929 D(p->level--);
9930 return NULL;
9931 }
9932 expr_ty _res = NULL;
9933 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
9934 D(p->level--);
9935 return _res;
9936 }
9937 int _mark = p->mark;
9938 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9939 p->error_indicator = 1;
9940 D(p->level--);
9941 return NULL;
9942 }
9943 int _start_lineno = p->tokens[_mark]->lineno;
9944 UNUSED(_start_lineno); // Only used by EXTRA macro
9945 int _start_col_offset = p->tokens[_mark]->col_offset;
9946 UNUSED(_start_col_offset); // Only used by EXTRA macro
9947 { // '+' factor
9948 if (p->error_indicator) {
9949 D(p->level--);
9950 return NULL;
9951 }
9952 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
9953 Token * _literal;
9954 expr_ty a;
9955 if (
9956 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
9957 &&
9958 (a = factor_rule(p)) // factor
9959 )
9960 {
9961 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
9962 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9963 if (_token == NULL) {
9964 D(p->level--);
9965 return NULL;
9966 }
9967 int _end_lineno = _token->end_lineno;
9968 UNUSED(_end_lineno); // Only used by EXTRA macro
9969 int _end_col_offset = _token->end_col_offset;
9970 UNUSED(_end_col_offset); // Only used by EXTRA macro
9971 _res = _Py_UnaryOp ( UAdd , a , EXTRA );
9972 if (_res == NULL && PyErr_Occurred()) {
9973 p->error_indicator = 1;
9974 D(p->level--);
9975 return NULL;
9976 }
9977 goto done;
9978 }
9979 p->mark = _mark;
9980 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
9981 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
9982 }
9983 { // '-' factor
9984 if (p->error_indicator) {
9985 D(p->level--);
9986 return NULL;
9987 }
9988 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
9989 Token * _literal;
9990 expr_ty a;
9991 if (
9992 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
9993 &&
9994 (a = factor_rule(p)) // factor
9995 )
9996 {
9997 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
9998 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9999 if (_token == NULL) {
10000 D(p->level--);
10001 return NULL;
10002 }
10003 int _end_lineno = _token->end_lineno;
10004 UNUSED(_end_lineno); // Only used by EXTRA macro
10005 int _end_col_offset = _token->end_col_offset;
10006 UNUSED(_end_col_offset); // Only used by EXTRA macro
10007 _res = _Py_UnaryOp ( USub , a , EXTRA );
10008 if (_res == NULL && PyErr_Occurred()) {
10009 p->error_indicator = 1;
10010 D(p->level--);
10011 return NULL;
10012 }
10013 goto done;
10014 }
10015 p->mark = _mark;
10016 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10017 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
10018 }
10019 { // '~' factor
10020 if (p->error_indicator) {
10021 D(p->level--);
10022 return NULL;
10023 }
10024 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
10025 Token * _literal;
10026 expr_ty a;
10027 if (
10028 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
10029 &&
10030 (a = factor_rule(p)) // factor
10031 )
10032 {
10033 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
10034 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10035 if (_token == NULL) {
10036 D(p->level--);
10037 return NULL;
10038 }
10039 int _end_lineno = _token->end_lineno;
10040 UNUSED(_end_lineno); // Only used by EXTRA macro
10041 int _end_col_offset = _token->end_col_offset;
10042 UNUSED(_end_col_offset); // Only used by EXTRA macro
10043 _res = _Py_UnaryOp ( Invert , a , EXTRA );
10044 if (_res == NULL && PyErr_Occurred()) {
10045 p->error_indicator = 1;
10046 D(p->level--);
10047 return NULL;
10048 }
10049 goto done;
10050 }
10051 p->mark = _mark;
10052 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
10054 }
10055 { // power
10056 if (p->error_indicator) {
10057 D(p->level--);
10058 return NULL;
10059 }
10060 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
10061 expr_ty power_var;
10062 if (
10063 (power_var = power_rule(p)) // power
10064 )
10065 {
10066 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
10067 _res = power_var;
10068 goto done;
10069 }
10070 p->mark = _mark;
10071 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10072 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
10073 }
10074 _res = NULL;
10075 done:
10076 _PyPegen_insert_memo(p, _mark, factor_type, _res);
10077 D(p->level--);
10078 return _res;
10079}
10080
10081// power: await_primary '**' factor | await_primary
10082static expr_ty
10083power_rule(Parser *p)
10084{
10085 D(p->level++);
10086 if (p->error_indicator) {
10087 D(p->level--);
10088 return NULL;
10089 }
10090 expr_ty _res = NULL;
10091 int _mark = p->mark;
10092 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10093 p->error_indicator = 1;
10094 D(p->level--);
10095 return NULL;
10096 }
10097 int _start_lineno = p->tokens[_mark]->lineno;
10098 UNUSED(_start_lineno); // Only used by EXTRA macro
10099 int _start_col_offset = p->tokens[_mark]->col_offset;
10100 UNUSED(_start_col_offset); // Only used by EXTRA macro
10101 { // await_primary '**' factor
10102 if (p->error_indicator) {
10103 D(p->level--);
10104 return NULL;
10105 }
10106 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
10107 Token * _literal;
10108 expr_ty a;
10109 expr_ty b;
10110 if (
10111 (a = await_primary_rule(p)) // await_primary
10112 &&
10113 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
10114 &&
10115 (b = factor_rule(p)) // factor
10116 )
10117 {
10118 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
10119 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10120 if (_token == NULL) {
10121 D(p->level--);
10122 return NULL;
10123 }
10124 int _end_lineno = _token->end_lineno;
10125 UNUSED(_end_lineno); // Only used by EXTRA macro
10126 int _end_col_offset = _token->end_col_offset;
10127 UNUSED(_end_col_offset); // Only used by EXTRA macro
10128 _res = _Py_BinOp ( a , Pow , b , EXTRA );
10129 if (_res == NULL && PyErr_Occurred()) {
10130 p->error_indicator = 1;
10131 D(p->level--);
10132 return NULL;
10133 }
10134 goto done;
10135 }
10136 p->mark = _mark;
10137 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
10138 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
10139 }
10140 { // await_primary
10141 if (p->error_indicator) {
10142 D(p->level--);
10143 return NULL;
10144 }
10145 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
10146 expr_ty await_primary_var;
10147 if (
10148 (await_primary_var = await_primary_rule(p)) // await_primary
10149 )
10150 {
10151 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
10152 _res = await_primary_var;
10153 goto done;
10154 }
10155 p->mark = _mark;
10156 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
10157 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
10158 }
10159 _res = NULL;
10160 done:
10161 D(p->level--);
10162 return _res;
10163}
10164
10165// await_primary: AWAIT primary | primary
10166static expr_ty
10167await_primary_rule(Parser *p)
10168{
10169 D(p->level++);
10170 if (p->error_indicator) {
10171 D(p->level--);
10172 return NULL;
10173 }
10174 expr_ty _res = NULL;
10175 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
10176 D(p->level--);
10177 return _res;
10178 }
10179 int _mark = p->mark;
10180 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10181 p->error_indicator = 1;
10182 D(p->level--);
10183 return NULL;
10184 }
10185 int _start_lineno = p->tokens[_mark]->lineno;
10186 UNUSED(_start_lineno); // Only used by EXTRA macro
10187 int _start_col_offset = p->tokens[_mark]->col_offset;
10188 UNUSED(_start_col_offset); // Only used by EXTRA macro
10189 { // AWAIT primary
10190 if (p->error_indicator) {
10191 D(p->level--);
10192 return NULL;
10193 }
10194 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
10195 expr_ty a;
10196 Token * await_var;
10197 if (
10198 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
10199 &&
10200 (a = primary_rule(p)) // primary
10201 )
10202 {
10203 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
10204 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10205 if (_token == NULL) {
10206 D(p->level--);
10207 return NULL;
10208 }
10209 int _end_lineno = _token->end_lineno;
10210 UNUSED(_end_lineno); // Only used by EXTRA macro
10211 int _end_col_offset = _token->end_col_offset;
10212 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030010213 _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _Py_Await ( a , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010214 if (_res == NULL && PyErr_Occurred()) {
10215 p->error_indicator = 1;
10216 D(p->level--);
10217 return NULL;
10218 }
10219 goto done;
10220 }
10221 p->mark = _mark;
10222 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
10223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
10224 }
10225 { // primary
10226 if (p->error_indicator) {
10227 D(p->level--);
10228 return NULL;
10229 }
10230 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
10231 expr_ty primary_var;
10232 if (
10233 (primary_var = primary_rule(p)) // primary
10234 )
10235 {
10236 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
10237 _res = primary_var;
10238 goto done;
10239 }
10240 p->mark = _mark;
10241 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
10242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
10243 }
10244 _res = NULL;
10245 done:
10246 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
10247 D(p->level--);
10248 return _res;
10249}
10250
10251// Left-recursive
10252// primary:
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020010253// | invalid_primary
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010254// | primary '.' NAME
10255// | primary genexp
10256// | primary '(' arguments? ')'
10257// | primary '[' slices ']'
10258// | atom
10259static expr_ty primary_raw(Parser *);
10260static expr_ty
10261primary_rule(Parser *p)
10262{
10263 D(p->level++);
10264 expr_ty _res = NULL;
10265 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
10266 D(p->level--);
10267 return _res;
10268 }
10269 int _mark = p->mark;
10270 int _resmark = p->mark;
10271 while (1) {
10272 int tmpvar_7 = _PyPegen_update_memo(p, _mark, primary_type, _res);
10273 if (tmpvar_7) {
10274 D(p->level--);
10275 return _res;
10276 }
10277 p->mark = _mark;
10278 void *_raw = primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020010279 if (p->error_indicator)
10280 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010281 if (_raw == NULL || p->mark <= _resmark)
10282 break;
10283 _resmark = p->mark;
10284 _res = _raw;
10285 }
10286 p->mark = _resmark;
10287 D(p->level--);
10288 return _res;
10289}
10290static expr_ty
10291primary_raw(Parser *p)
10292{
10293 D(p->level++);
10294 if (p->error_indicator) {
10295 D(p->level--);
10296 return NULL;
10297 }
10298 expr_ty _res = NULL;
10299 int _mark = p->mark;
10300 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10301 p->error_indicator = 1;
10302 D(p->level--);
10303 return NULL;
10304 }
10305 int _start_lineno = p->tokens[_mark]->lineno;
10306 UNUSED(_start_lineno); // Only used by EXTRA macro
10307 int _start_col_offset = p->tokens[_mark]->col_offset;
10308 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020010309 if (p->call_invalid_rules) { // invalid_primary
10310 if (p->error_indicator) {
10311 D(p->level--);
10312 return NULL;
10313 }
10314 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
10315 void *invalid_primary_var;
10316 if (
10317 (invalid_primary_var = invalid_primary_rule(p)) // invalid_primary
10318 )
10319 {
10320 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
10321 _res = invalid_primary_var;
10322 goto done;
10323 }
10324 p->mark = _mark;
10325 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10326 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
10327 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010328 { // primary '.' NAME
10329 if (p->error_indicator) {
10330 D(p->level--);
10331 return NULL;
10332 }
10333 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
10334 Token * _literal;
10335 expr_ty a;
10336 expr_ty b;
10337 if (
10338 (a = primary_rule(p)) // primary
10339 &&
10340 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
10341 &&
10342 (b = _PyPegen_name_token(p)) // NAME
10343 )
10344 {
10345 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
10346 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10347 if (_token == NULL) {
10348 D(p->level--);
10349 return NULL;
10350 }
10351 int _end_lineno = _token->end_lineno;
10352 UNUSED(_end_lineno); // Only used by EXTRA macro
10353 int _end_col_offset = _token->end_col_offset;
10354 UNUSED(_end_col_offset); // Only used by EXTRA macro
10355 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
10356 if (_res == NULL && PyErr_Occurred()) {
10357 p->error_indicator = 1;
10358 D(p->level--);
10359 return NULL;
10360 }
10361 goto done;
10362 }
10363 p->mark = _mark;
10364 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
10366 }
10367 { // primary genexp
10368 if (p->error_indicator) {
10369 D(p->level--);
10370 return NULL;
10371 }
10372 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
10373 expr_ty a;
10374 expr_ty b;
10375 if (
10376 (a = primary_rule(p)) // primary
10377 &&
10378 (b = genexp_rule(p)) // genexp
10379 )
10380 {
10381 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
10382 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10383 if (_token == NULL) {
10384 D(p->level--);
10385 return NULL;
10386 }
10387 int _end_lineno = _token->end_lineno;
10388 UNUSED(_end_lineno); // Only used by EXTRA macro
10389 int _end_col_offset = _token->end_col_offset;
10390 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030010391 _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 +010010392 if (_res == NULL && PyErr_Occurred()) {
10393 p->error_indicator = 1;
10394 D(p->level--);
10395 return NULL;
10396 }
10397 goto done;
10398 }
10399 p->mark = _mark;
10400 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10401 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
10402 }
10403 { // primary '(' arguments? ')'
10404 if (p->error_indicator) {
10405 D(p->level--);
10406 return NULL;
10407 }
10408 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
10409 Token * _literal;
10410 Token * _literal_1;
10411 expr_ty a;
10412 void *b;
10413 if (
10414 (a = primary_rule(p)) // primary
10415 &&
10416 (_literal = _PyPegen_expect_token(p, 7)) // token='('
10417 &&
10418 (b = arguments_rule(p), 1) // arguments?
10419 &&
10420 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
10421 )
10422 {
10423 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
10424 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10425 if (_token == NULL) {
10426 D(p->level--);
10427 return NULL;
10428 }
10429 int _end_lineno = _token->end_lineno;
10430 UNUSED(_end_lineno); // Only used by EXTRA macro
10431 int _end_col_offset = _token->end_col_offset;
10432 UNUSED(_end_col_offset); // Only used by EXTRA macro
10433 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
10434 if (_res == NULL && PyErr_Occurred()) {
10435 p->error_indicator = 1;
10436 D(p->level--);
10437 return NULL;
10438 }
10439 goto done;
10440 }
10441 p->mark = _mark;
10442 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10443 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
10444 }
10445 { // primary '[' slices ']'
10446 if (p->error_indicator) {
10447 D(p->level--);
10448 return NULL;
10449 }
10450 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
10451 Token * _literal;
10452 Token * _literal_1;
10453 expr_ty a;
10454 expr_ty b;
10455 if (
10456 (a = primary_rule(p)) // primary
10457 &&
10458 (_literal = _PyPegen_expect_token(p, 9)) // token='['
10459 &&
10460 (b = slices_rule(p)) // slices
10461 &&
10462 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
10463 )
10464 {
10465 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
10466 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10467 if (_token == NULL) {
10468 D(p->level--);
10469 return NULL;
10470 }
10471 int _end_lineno = _token->end_lineno;
10472 UNUSED(_end_lineno); // Only used by EXTRA macro
10473 int _end_col_offset = _token->end_col_offset;
10474 UNUSED(_end_col_offset); // Only used by EXTRA macro
10475 _res = _Py_Subscript ( a , b , Load , EXTRA );
10476 if (_res == NULL && PyErr_Occurred()) {
10477 p->error_indicator = 1;
10478 D(p->level--);
10479 return NULL;
10480 }
10481 goto done;
10482 }
10483 p->mark = _mark;
10484 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10485 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
10486 }
10487 { // atom
10488 if (p->error_indicator) {
10489 D(p->level--);
10490 return NULL;
10491 }
10492 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
10493 expr_ty atom_var;
10494 if (
10495 (atom_var = atom_rule(p)) // atom
10496 )
10497 {
10498 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
10499 _res = atom_var;
10500 goto done;
10501 }
10502 p->mark = _mark;
10503 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10504 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
10505 }
10506 _res = NULL;
10507 done:
10508 D(p->level--);
10509 return _res;
10510}
10511
10512// slices: slice !',' | ','.slice+ ','?
10513static expr_ty
10514slices_rule(Parser *p)
10515{
10516 D(p->level++);
10517 if (p->error_indicator) {
10518 D(p->level--);
10519 return NULL;
10520 }
10521 expr_ty _res = NULL;
10522 int _mark = p->mark;
10523 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10524 p->error_indicator = 1;
10525 D(p->level--);
10526 return NULL;
10527 }
10528 int _start_lineno = p->tokens[_mark]->lineno;
10529 UNUSED(_start_lineno); // Only used by EXTRA macro
10530 int _start_col_offset = p->tokens[_mark]->col_offset;
10531 UNUSED(_start_col_offset); // Only used by EXTRA macro
10532 { // slice !','
10533 if (p->error_indicator) {
10534 D(p->level--);
10535 return NULL;
10536 }
10537 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
10538 expr_ty a;
10539 if (
10540 (a = slice_rule(p)) // slice
10541 &&
10542 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
10543 )
10544 {
10545 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
10546 _res = a;
10547 if (_res == NULL && PyErr_Occurred()) {
10548 p->error_indicator = 1;
10549 D(p->level--);
10550 return NULL;
10551 }
10552 goto done;
10553 }
10554 p->mark = _mark;
10555 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
10556 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
10557 }
10558 { // ','.slice+ ','?
10559 if (p->error_indicator) {
10560 D(p->level--);
10561 return NULL;
10562 }
10563 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
10564 void *_opt_var;
10565 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010010566 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010567 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010568 (a = (asdl_expr_seq*)_gather_92_rule(p)) // ','.slice+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010569 &&
10570 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
10571 )
10572 {
10573 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
10574 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10575 if (_token == NULL) {
10576 D(p->level--);
10577 return NULL;
10578 }
10579 int _end_lineno = _token->end_lineno;
10580 UNUSED(_end_lineno); // Only used by EXTRA macro
10581 int _end_col_offset = _token->end_col_offset;
10582 UNUSED(_end_col_offset); // Only used by EXTRA macro
10583 _res = _Py_Tuple ( a , Load , EXTRA );
10584 if (_res == NULL && PyErr_Occurred()) {
10585 p->error_indicator = 1;
10586 D(p->level--);
10587 return NULL;
10588 }
10589 goto done;
10590 }
10591 p->mark = _mark;
10592 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
10593 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
10594 }
10595 _res = NULL;
10596 done:
10597 D(p->level--);
10598 return _res;
10599}
10600
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010601// slice: expression? ':' expression? [':' expression?] | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010602static expr_ty
10603slice_rule(Parser *p)
10604{
10605 D(p->level++);
10606 if (p->error_indicator) {
10607 D(p->level--);
10608 return NULL;
10609 }
10610 expr_ty _res = NULL;
10611 int _mark = p->mark;
10612 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10613 p->error_indicator = 1;
10614 D(p->level--);
10615 return NULL;
10616 }
10617 int _start_lineno = p->tokens[_mark]->lineno;
10618 UNUSED(_start_lineno); // Only used by EXTRA macro
10619 int _start_col_offset = p->tokens[_mark]->col_offset;
10620 UNUSED(_start_col_offset); // Only used by EXTRA macro
10621 { // expression? ':' expression? [':' expression?]
10622 if (p->error_indicator) {
10623 D(p->level--);
10624 return NULL;
10625 }
10626 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
10627 Token * _literal;
10628 void *a;
10629 void *b;
10630 void *c;
10631 if (
10632 (a = expression_rule(p), 1) // expression?
10633 &&
10634 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
10635 &&
10636 (b = expression_rule(p), 1) // expression?
10637 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010638 (c = _tmp_94_rule(p), 1) // [':' expression?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010639 )
10640 {
10641 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
10642 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10643 if (_token == NULL) {
10644 D(p->level--);
10645 return NULL;
10646 }
10647 int _end_lineno = _token->end_lineno;
10648 UNUSED(_end_lineno); // Only used by EXTRA macro
10649 int _end_col_offset = _token->end_col_offset;
10650 UNUSED(_end_col_offset); // Only used by EXTRA macro
10651 _res = _Py_Slice ( a , b , c , EXTRA );
10652 if (_res == NULL && PyErr_Occurred()) {
10653 p->error_indicator = 1;
10654 D(p->level--);
10655 return NULL;
10656 }
10657 goto done;
10658 }
10659 p->mark = _mark;
10660 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
10661 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
10662 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010663 { // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010664 if (p->error_indicator) {
10665 D(p->level--);
10666 return NULL;
10667 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010668 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010669 expr_ty a;
10670 if (
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010671 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010672 )
10673 {
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010674 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010675 _res = a;
10676 if (_res == NULL && PyErr_Occurred()) {
10677 p->error_indicator = 1;
10678 D(p->level--);
10679 return NULL;
10680 }
10681 goto done;
10682 }
10683 p->mark = _mark;
10684 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010686 }
10687 _res = NULL;
10688 done:
10689 D(p->level--);
10690 return _res;
10691}
10692
10693// atom:
10694// | NAME
10695// | 'True'
10696// | 'False'
10697// | 'None'
10698// | &STRING strings
10699// | NUMBER
10700// | &'(' (tuple | group | genexp)
10701// | &'[' (list | listcomp)
10702// | &'{' (dict | set | dictcomp | setcomp)
10703// | '...'
10704static expr_ty
10705atom_rule(Parser *p)
10706{
10707 D(p->level++);
10708 if (p->error_indicator) {
10709 D(p->level--);
10710 return NULL;
10711 }
10712 expr_ty _res = NULL;
10713 int _mark = p->mark;
10714 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10715 p->error_indicator = 1;
10716 D(p->level--);
10717 return NULL;
10718 }
10719 int _start_lineno = p->tokens[_mark]->lineno;
10720 UNUSED(_start_lineno); // Only used by EXTRA macro
10721 int _start_col_offset = p->tokens[_mark]->col_offset;
10722 UNUSED(_start_col_offset); // Only used by EXTRA macro
10723 { // NAME
10724 if (p->error_indicator) {
10725 D(p->level--);
10726 return NULL;
10727 }
10728 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
10729 expr_ty name_var;
10730 if (
10731 (name_var = _PyPegen_name_token(p)) // NAME
10732 )
10733 {
10734 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
10735 _res = name_var;
10736 goto done;
10737 }
10738 p->mark = _mark;
10739 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10740 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
10741 }
10742 { // 'True'
10743 if (p->error_indicator) {
10744 D(p->level--);
10745 return NULL;
10746 }
10747 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
10748 Token * _keyword;
10749 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010750 (_keyword = _PyPegen_expect_token(p, 528)) // token='True'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010751 )
10752 {
10753 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
10754 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10755 if (_token == NULL) {
10756 D(p->level--);
10757 return NULL;
10758 }
10759 int _end_lineno = _token->end_lineno;
10760 UNUSED(_end_lineno); // Only used by EXTRA macro
10761 int _end_col_offset = _token->end_col_offset;
10762 UNUSED(_end_col_offset); // Only used by EXTRA macro
10763 _res = _Py_Constant ( Py_True , NULL , EXTRA );
10764 if (_res == NULL && PyErr_Occurred()) {
10765 p->error_indicator = 1;
10766 D(p->level--);
10767 return NULL;
10768 }
10769 goto done;
10770 }
10771 p->mark = _mark;
10772 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10773 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
10774 }
10775 { // 'False'
10776 if (p->error_indicator) {
10777 D(p->level--);
10778 return NULL;
10779 }
10780 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
10781 Token * _keyword;
10782 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010783 (_keyword = _PyPegen_expect_token(p, 529)) // token='False'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010784 )
10785 {
10786 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
10787 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10788 if (_token == NULL) {
10789 D(p->level--);
10790 return NULL;
10791 }
10792 int _end_lineno = _token->end_lineno;
10793 UNUSED(_end_lineno); // Only used by EXTRA macro
10794 int _end_col_offset = _token->end_col_offset;
10795 UNUSED(_end_col_offset); // Only used by EXTRA macro
10796 _res = _Py_Constant ( Py_False , NULL , EXTRA );
10797 if (_res == NULL && PyErr_Occurred()) {
10798 p->error_indicator = 1;
10799 D(p->level--);
10800 return NULL;
10801 }
10802 goto done;
10803 }
10804 p->mark = _mark;
10805 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10806 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
10807 }
10808 { // 'None'
10809 if (p->error_indicator) {
10810 D(p->level--);
10811 return NULL;
10812 }
10813 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
10814 Token * _keyword;
10815 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010816 (_keyword = _PyPegen_expect_token(p, 530)) // token='None'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010817 )
10818 {
10819 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
10820 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10821 if (_token == NULL) {
10822 D(p->level--);
10823 return NULL;
10824 }
10825 int _end_lineno = _token->end_lineno;
10826 UNUSED(_end_lineno); // Only used by EXTRA macro
10827 int _end_col_offset = _token->end_col_offset;
10828 UNUSED(_end_col_offset); // Only used by EXTRA macro
10829 _res = _Py_Constant ( Py_None , NULL , EXTRA );
10830 if (_res == NULL && PyErr_Occurred()) {
10831 p->error_indicator = 1;
10832 D(p->level--);
10833 return NULL;
10834 }
10835 goto done;
10836 }
10837 p->mark = _mark;
10838 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10839 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
10840 }
10841 { // &STRING strings
10842 if (p->error_indicator) {
10843 D(p->level--);
10844 return NULL;
10845 }
10846 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
10847 expr_ty strings_var;
10848 if (
10849 _PyPegen_lookahead(1, _PyPegen_string_token, p)
10850 &&
10851 (strings_var = strings_rule(p)) // strings
10852 )
10853 {
10854 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
10855 _res = strings_var;
10856 goto done;
10857 }
10858 p->mark = _mark;
10859 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10860 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
10861 }
10862 { // NUMBER
10863 if (p->error_indicator) {
10864 D(p->level--);
10865 return NULL;
10866 }
10867 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
10868 expr_ty number_var;
10869 if (
10870 (number_var = _PyPegen_number_token(p)) // NUMBER
10871 )
10872 {
10873 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
10874 _res = number_var;
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, "NUMBER"));
10880 }
10881 { // &'(' (tuple | group | genexp)
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, "&'(' (tuple | group | genexp)"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010887 void *_tmp_95_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010888 if (
10889 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
10890 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010891 (_tmp_95_var = _tmp_95_rule(p)) // tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010892 )
10893 {
10894 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 +000010895 _res = _tmp_95_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010896 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, "&'(' (tuple | group | genexp)"));
10901 }
10902 { // &'[' (list | listcomp)
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, "&'[' (list | listcomp)"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010908 void *_tmp_96_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010909 if (
10910 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
10911 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010912 (_tmp_96_var = _tmp_96_rule(p)) // list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010913 )
10914 {
10915 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010916 _res = _tmp_96_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010917 goto done;
10918 }
10919 p->mark = _mark;
10920 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10921 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
10922 }
10923 { // &'{' (dict | set | dictcomp | setcomp)
10924 if (p->error_indicator) {
10925 D(p->level--);
10926 return NULL;
10927 }
10928 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 +000010929 void *_tmp_97_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010930 if (
10931 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
10932 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010933 (_tmp_97_var = _tmp_97_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010934 )
10935 {
10936 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 +000010937 _res = _tmp_97_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010938 goto done;
10939 }
10940 p->mark = _mark;
10941 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10942 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
10943 }
10944 { // '...'
10945 if (p->error_indicator) {
10946 D(p->level--);
10947 return NULL;
10948 }
10949 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
10950 Token * _literal;
10951 if (
10952 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
10953 )
10954 {
10955 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
10956 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10957 if (_token == NULL) {
10958 D(p->level--);
10959 return NULL;
10960 }
10961 int _end_lineno = _token->end_lineno;
10962 UNUSED(_end_lineno); // Only used by EXTRA macro
10963 int _end_col_offset = _token->end_col_offset;
10964 UNUSED(_end_col_offset); // Only used by EXTRA macro
10965 _res = _Py_Constant ( Py_Ellipsis , NULL , EXTRA );
10966 if (_res == NULL && PyErr_Occurred()) {
10967 p->error_indicator = 1;
10968 D(p->level--);
10969 return NULL;
10970 }
10971 goto done;
10972 }
10973 p->mark = _mark;
10974 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10975 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
10976 }
10977 _res = NULL;
10978 done:
10979 D(p->level--);
10980 return _res;
10981}
10982
10983// strings: STRING+
10984static expr_ty
10985strings_rule(Parser *p)
10986{
10987 D(p->level++);
10988 if (p->error_indicator) {
10989 D(p->level--);
10990 return NULL;
10991 }
10992 expr_ty _res = NULL;
10993 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
10994 D(p->level--);
10995 return _res;
10996 }
10997 int _mark = p->mark;
10998 { // STRING+
10999 if (p->error_indicator) {
11000 D(p->level--);
11001 return NULL;
11002 }
11003 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
11004 asdl_seq * a;
11005 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011006 (a = _loop1_98_rule(p)) // STRING+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011007 )
11008 {
11009 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
11010 _res = _PyPegen_concatenate_strings ( p , a );
11011 if (_res == NULL && PyErr_Occurred()) {
11012 p->error_indicator = 1;
11013 D(p->level--);
11014 return NULL;
11015 }
11016 goto done;
11017 }
11018 p->mark = _mark;
11019 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
11020 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
11021 }
11022 _res = NULL;
11023 done:
11024 _PyPegen_insert_memo(p, _mark, strings_type, _res);
11025 D(p->level--);
11026 return _res;
11027}
11028
11029// list: '[' star_named_expressions? ']'
11030static expr_ty
11031list_rule(Parser *p)
11032{
11033 D(p->level++);
11034 if (p->error_indicator) {
11035 D(p->level--);
11036 return NULL;
11037 }
11038 expr_ty _res = NULL;
11039 int _mark = p->mark;
11040 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11041 p->error_indicator = 1;
11042 D(p->level--);
11043 return NULL;
11044 }
11045 int _start_lineno = p->tokens[_mark]->lineno;
11046 UNUSED(_start_lineno); // Only used by EXTRA macro
11047 int _start_col_offset = p->tokens[_mark]->col_offset;
11048 UNUSED(_start_col_offset); // Only used by EXTRA macro
11049 { // '[' star_named_expressions? ']'
11050 if (p->error_indicator) {
11051 D(p->level--);
11052 return NULL;
11053 }
11054 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
11055 Token * _literal;
11056 Token * _literal_1;
11057 void *a;
11058 if (
11059 (_literal = _PyPegen_expect_token(p, 9)) // token='['
11060 &&
11061 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
11062 &&
11063 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
11064 )
11065 {
11066 D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
11067 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11068 if (_token == NULL) {
11069 D(p->level--);
11070 return NULL;
11071 }
11072 int _end_lineno = _token->end_lineno;
11073 UNUSED(_end_lineno); // Only used by EXTRA macro
11074 int _end_col_offset = _token->end_col_offset;
11075 UNUSED(_end_col_offset); // Only used by EXTRA macro
11076 _res = _Py_List ( a , Load , EXTRA );
11077 if (_res == NULL && PyErr_Occurred()) {
11078 p->error_indicator = 1;
11079 D(p->level--);
11080 return NULL;
11081 }
11082 goto done;
11083 }
11084 p->mark = _mark;
11085 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
11086 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
11087 }
11088 _res = NULL;
11089 done:
11090 D(p->level--);
11091 return _res;
11092}
11093
Pablo Galindo835f14f2021-01-31 22:52:56 +000011094// listcomp: '[' named_expression for_if_clauses ']' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011095static expr_ty
11096listcomp_rule(Parser *p)
11097{
11098 D(p->level++);
11099 if (p->error_indicator) {
11100 D(p->level--);
11101 return NULL;
11102 }
11103 expr_ty _res = NULL;
11104 int _mark = p->mark;
11105 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11106 p->error_indicator = 1;
11107 D(p->level--);
11108 return NULL;
11109 }
11110 int _start_lineno = p->tokens[_mark]->lineno;
11111 UNUSED(_start_lineno); // Only used by EXTRA macro
11112 int _start_col_offset = p->tokens[_mark]->col_offset;
11113 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000011114 { // '[' named_expression for_if_clauses ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011115 if (p->error_indicator) {
11116 D(p->level--);
11117 return NULL;
11118 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000011119 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 +010011120 Token * _literal;
11121 Token * _literal_1;
11122 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011123 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011124 if (
11125 (_literal = _PyPegen_expect_token(p, 9)) // token='['
11126 &&
11127 (a = named_expression_rule(p)) // named_expression
11128 &&
11129 (b = for_if_clauses_rule(p)) // for_if_clauses
11130 &&
11131 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
11132 )
11133 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000011134 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 +010011135 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11136 if (_token == NULL) {
11137 D(p->level--);
11138 return NULL;
11139 }
11140 int _end_lineno = _token->end_lineno;
11141 UNUSED(_end_lineno); // Only used by EXTRA macro
11142 int _end_col_offset = _token->end_col_offset;
11143 UNUSED(_end_col_offset); // Only used by EXTRA macro
11144 _res = _Py_ListComp ( a , b , EXTRA );
11145 if (_res == NULL && PyErr_Occurred()) {
11146 p->error_indicator = 1;
11147 D(p->level--);
11148 return NULL;
11149 }
11150 goto done;
11151 }
11152 p->mark = _mark;
11153 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000011154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011155 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011156 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011157 if (p->error_indicator) {
11158 D(p->level--);
11159 return NULL;
11160 }
11161 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11162 void *invalid_comprehension_var;
11163 if (
11164 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
11165 )
11166 {
11167 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11168 _res = invalid_comprehension_var;
11169 goto done;
11170 }
11171 p->mark = _mark;
11172 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
11173 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
11174 }
11175 _res = NULL;
11176 done:
11177 D(p->level--);
11178 return _res;
11179}
11180
11181// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
11182static expr_ty
11183tuple_rule(Parser *p)
11184{
11185 D(p->level++);
11186 if (p->error_indicator) {
11187 D(p->level--);
11188 return NULL;
11189 }
11190 expr_ty _res = NULL;
11191 int _mark = p->mark;
11192 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11193 p->error_indicator = 1;
11194 D(p->level--);
11195 return NULL;
11196 }
11197 int _start_lineno = p->tokens[_mark]->lineno;
11198 UNUSED(_start_lineno); // Only used by EXTRA macro
11199 int _start_col_offset = p->tokens[_mark]->col_offset;
11200 UNUSED(_start_col_offset); // Only used by EXTRA macro
11201 { // '(' [star_named_expression ',' star_named_expressions?] ')'
11202 if (p->error_indicator) {
11203 D(p->level--);
11204 return NULL;
11205 }
11206 D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
11207 Token * _literal;
11208 Token * _literal_1;
11209 void *a;
11210 if (
11211 (_literal = _PyPegen_expect_token(p, 7)) // token='('
11212 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011213 (a = _tmp_99_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011214 &&
11215 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
11216 )
11217 {
11218 D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
11219 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11220 if (_token == NULL) {
11221 D(p->level--);
11222 return NULL;
11223 }
11224 int _end_lineno = _token->end_lineno;
11225 UNUSED(_end_lineno); // Only used by EXTRA macro
11226 int _end_col_offset = _token->end_col_offset;
11227 UNUSED(_end_col_offset); // Only used by EXTRA macro
11228 _res = _Py_Tuple ( a , Load , EXTRA );
11229 if (_res == NULL && PyErr_Occurred()) {
11230 p->error_indicator = 1;
11231 D(p->level--);
11232 return NULL;
11233 }
11234 goto done;
11235 }
11236 p->mark = _mark;
11237 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
11238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
11239 }
11240 _res = NULL;
11241 done:
11242 D(p->level--);
11243 return _res;
11244}
11245
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011246// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011247static expr_ty
11248group_rule(Parser *p)
11249{
11250 D(p->level++);
11251 if (p->error_indicator) {
11252 D(p->level--);
11253 return NULL;
11254 }
11255 expr_ty _res = NULL;
11256 int _mark = p->mark;
11257 { // '(' (yield_expr | named_expression) ')'
11258 if (p->error_indicator) {
11259 D(p->level--);
11260 return NULL;
11261 }
11262 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
11263 Token * _literal;
11264 Token * _literal_1;
11265 void *a;
11266 if (
11267 (_literal = _PyPegen_expect_token(p, 7)) // token='('
11268 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011269 (a = _tmp_100_rule(p)) // yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011270 &&
11271 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
11272 )
11273 {
11274 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
11275 _res = a;
11276 if (_res == NULL && PyErr_Occurred()) {
11277 p->error_indicator = 1;
11278 D(p->level--);
11279 return NULL;
11280 }
11281 goto done;
11282 }
11283 p->mark = _mark;
11284 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
11285 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
11286 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011287 if (p->call_invalid_rules) { // invalid_group
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011288 if (p->error_indicator) {
11289 D(p->level--);
11290 return NULL;
11291 }
11292 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
11293 void *invalid_group_var;
11294 if (
11295 (invalid_group_var = invalid_group_rule(p)) // invalid_group
11296 )
11297 {
11298 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
11299 _res = invalid_group_var;
11300 goto done;
11301 }
11302 p->mark = _mark;
11303 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
11304 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
11305 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011306 _res = NULL;
11307 done:
11308 D(p->level--);
11309 return _res;
11310}
11311
Pablo Galindo835f14f2021-01-31 22:52:56 +000011312// genexp: '(' named_expression for_if_clauses ')' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011313static expr_ty
11314genexp_rule(Parser *p)
11315{
11316 D(p->level++);
11317 if (p->error_indicator) {
11318 D(p->level--);
11319 return NULL;
11320 }
11321 expr_ty _res = NULL;
11322 int _mark = p->mark;
11323 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11324 p->error_indicator = 1;
11325 D(p->level--);
11326 return NULL;
11327 }
11328 int _start_lineno = p->tokens[_mark]->lineno;
11329 UNUSED(_start_lineno); // Only used by EXTRA macro
11330 int _start_col_offset = p->tokens[_mark]->col_offset;
11331 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000011332 { // '(' named_expression for_if_clauses ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011333 if (p->error_indicator) {
11334 D(p->level--);
11335 return NULL;
11336 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000011337 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 +010011338 Token * _literal;
11339 Token * _literal_1;
11340 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011341 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011342 if (
11343 (_literal = _PyPegen_expect_token(p, 7)) // token='('
11344 &&
Lysandros Nikolaoucb3e5ed2020-11-17 01:08:35 +020011345 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011346 &&
11347 (b = for_if_clauses_rule(p)) // for_if_clauses
11348 &&
11349 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
11350 )
11351 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000011352 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 +010011353 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11354 if (_token == NULL) {
11355 D(p->level--);
11356 return NULL;
11357 }
11358 int _end_lineno = _token->end_lineno;
11359 UNUSED(_end_lineno); // Only used by EXTRA macro
11360 int _end_col_offset = _token->end_col_offset;
11361 UNUSED(_end_col_offset); // Only used by EXTRA macro
11362 _res = _Py_GeneratorExp ( a , b , EXTRA );
11363 if (_res == NULL && PyErr_Occurred()) {
11364 p->error_indicator = 1;
11365 D(p->level--);
11366 return NULL;
11367 }
11368 goto done;
11369 }
11370 p->mark = _mark;
11371 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000011372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011373 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011374 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011375 if (p->error_indicator) {
11376 D(p->level--);
11377 return NULL;
11378 }
11379 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11380 void *invalid_comprehension_var;
11381 if (
11382 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
11383 )
11384 {
11385 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11386 _res = invalid_comprehension_var;
11387 goto done;
11388 }
11389 p->mark = _mark;
11390 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
11391 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
11392 }
11393 _res = NULL;
11394 done:
11395 D(p->level--);
11396 return _res;
11397}
11398
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011399// set: '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011400static expr_ty
11401set_rule(Parser *p)
11402{
11403 D(p->level++);
11404 if (p->error_indicator) {
11405 D(p->level--);
11406 return NULL;
11407 }
11408 expr_ty _res = NULL;
11409 int _mark = p->mark;
11410 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11411 p->error_indicator = 1;
11412 D(p->level--);
11413 return NULL;
11414 }
11415 int _start_lineno = p->tokens[_mark]->lineno;
11416 UNUSED(_start_lineno); // Only used by EXTRA macro
11417 int _start_col_offset = p->tokens[_mark]->col_offset;
11418 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011419 { // '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011420 if (p->error_indicator) {
11421 D(p->level--);
11422 return NULL;
11423 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011424 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011425 Token * _literal;
11426 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011427 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011428 if (
11429 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
11430 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011431 (a = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011432 &&
11433 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
11434 )
11435 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011436 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 +010011437 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11438 if (_token == NULL) {
11439 D(p->level--);
11440 return NULL;
11441 }
11442 int _end_lineno = _token->end_lineno;
11443 UNUSED(_end_lineno); // Only used by EXTRA macro
11444 int _end_col_offset = _token->end_col_offset;
11445 UNUSED(_end_col_offset); // Only used by EXTRA macro
11446 _res = _Py_Set ( a , EXTRA );
11447 if (_res == NULL && PyErr_Occurred()) {
11448 p->error_indicator = 1;
11449 D(p->level--);
11450 return NULL;
11451 }
11452 goto done;
11453 }
11454 p->mark = _mark;
11455 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011457 }
11458 _res = NULL;
11459 done:
11460 D(p->level--);
11461 return _res;
11462}
11463
Pablo Galindo835f14f2021-01-31 22:52:56 +000011464// setcomp: '{' named_expression for_if_clauses '}' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011465static expr_ty
11466setcomp_rule(Parser *p)
11467{
11468 D(p->level++);
11469 if (p->error_indicator) {
11470 D(p->level--);
11471 return NULL;
11472 }
11473 expr_ty _res = NULL;
11474 int _mark = p->mark;
11475 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11476 p->error_indicator = 1;
11477 D(p->level--);
11478 return NULL;
11479 }
11480 int _start_lineno = p->tokens[_mark]->lineno;
11481 UNUSED(_start_lineno); // Only used by EXTRA macro
11482 int _start_col_offset = p->tokens[_mark]->col_offset;
11483 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000011484 { // '{' named_expression for_if_clauses '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011485 if (p->error_indicator) {
11486 D(p->level--);
11487 return NULL;
11488 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000011489 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 +010011490 Token * _literal;
11491 Token * _literal_1;
11492 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011493 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011494 if (
11495 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
11496 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011497 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011498 &&
11499 (b = for_if_clauses_rule(p)) // for_if_clauses
11500 &&
11501 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
11502 )
11503 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000011504 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 +010011505 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11506 if (_token == NULL) {
11507 D(p->level--);
11508 return NULL;
11509 }
11510 int _end_lineno = _token->end_lineno;
11511 UNUSED(_end_lineno); // Only used by EXTRA macro
11512 int _end_col_offset = _token->end_col_offset;
11513 UNUSED(_end_col_offset); // Only used by EXTRA macro
11514 _res = _Py_SetComp ( a , b , EXTRA );
11515 if (_res == NULL && PyErr_Occurred()) {
11516 p->error_indicator = 1;
11517 D(p->level--);
11518 return NULL;
11519 }
11520 goto done;
11521 }
11522 p->mark = _mark;
11523 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000011524 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011525 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011526 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011527 if (p->error_indicator) {
11528 D(p->level--);
11529 return NULL;
11530 }
11531 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11532 void *invalid_comprehension_var;
11533 if (
11534 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
11535 )
11536 {
11537 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11538 _res = invalid_comprehension_var;
11539 goto done;
11540 }
11541 p->mark = _mark;
11542 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
11543 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
11544 }
11545 _res = NULL;
11546 done:
11547 D(p->level--);
11548 return _res;
11549}
11550
11551// dict: '{' double_starred_kvpairs? '}'
11552static expr_ty
11553dict_rule(Parser *p)
11554{
11555 D(p->level++);
11556 if (p->error_indicator) {
11557 D(p->level--);
11558 return NULL;
11559 }
11560 expr_ty _res = NULL;
11561 int _mark = p->mark;
11562 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11563 p->error_indicator = 1;
11564 D(p->level--);
11565 return NULL;
11566 }
11567 int _start_lineno = p->tokens[_mark]->lineno;
11568 UNUSED(_start_lineno); // Only used by EXTRA macro
11569 int _start_col_offset = p->tokens[_mark]->col_offset;
11570 UNUSED(_start_col_offset); // Only used by EXTRA macro
11571 { // '{' double_starred_kvpairs? '}'
11572 if (p->error_indicator) {
11573 D(p->level--);
11574 return NULL;
11575 }
11576 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
11577 Token * _literal;
11578 Token * _literal_1;
11579 void *a;
11580 if (
11581 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
11582 &&
11583 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
11584 &&
11585 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
11586 )
11587 {
11588 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
11589 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11590 if (_token == NULL) {
11591 D(p->level--);
11592 return NULL;
11593 }
11594 int _end_lineno = _token->end_lineno;
11595 UNUSED(_end_lineno); // Only used by EXTRA macro
11596 int _end_col_offset = _token->end_col_offset;
11597 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030011598 _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 +010011599 if (_res == NULL && PyErr_Occurred()) {
11600 p->error_indicator = 1;
11601 D(p->level--);
11602 return NULL;
11603 }
11604 goto done;
11605 }
11606 p->mark = _mark;
11607 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
11608 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
11609 }
11610 _res = NULL;
11611 done:
11612 D(p->level--);
11613 return _res;
11614}
11615
11616// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
11617static expr_ty
11618dictcomp_rule(Parser *p)
11619{
11620 D(p->level++);
11621 if (p->error_indicator) {
11622 D(p->level--);
11623 return NULL;
11624 }
11625 expr_ty _res = NULL;
11626 int _mark = p->mark;
11627 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11628 p->error_indicator = 1;
11629 D(p->level--);
11630 return NULL;
11631 }
11632 int _start_lineno = p->tokens[_mark]->lineno;
11633 UNUSED(_start_lineno); // Only used by EXTRA macro
11634 int _start_col_offset = p->tokens[_mark]->col_offset;
11635 UNUSED(_start_col_offset); // Only used by EXTRA macro
11636 { // '{' kvpair for_if_clauses '}'
11637 if (p->error_indicator) {
11638 D(p->level--);
11639 return NULL;
11640 }
11641 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
11642 Token * _literal;
11643 Token * _literal_1;
11644 KeyValuePair* a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011645 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011646 if (
11647 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
11648 &&
11649 (a = kvpair_rule(p)) // kvpair
11650 &&
11651 (b = for_if_clauses_rule(p)) // for_if_clauses
11652 &&
11653 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
11654 )
11655 {
11656 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
11657 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11658 if (_token == NULL) {
11659 D(p->level--);
11660 return NULL;
11661 }
11662 int _end_lineno = _token->end_lineno;
11663 UNUSED(_end_lineno); // Only used by EXTRA macro
11664 int _end_col_offset = _token->end_col_offset;
11665 UNUSED(_end_col_offset); // Only used by EXTRA macro
11666 _res = _Py_DictComp ( a -> key , a -> value , b , EXTRA );
11667 if (_res == NULL && PyErr_Occurred()) {
11668 p->error_indicator = 1;
11669 D(p->level--);
11670 return NULL;
11671 }
11672 goto done;
11673 }
11674 p->mark = _mark;
11675 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
11676 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
11677 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011678 if (p->call_invalid_rules) { // invalid_dict_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011679 if (p->error_indicator) {
11680 D(p->level--);
11681 return NULL;
11682 }
11683 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
11684 void *invalid_dict_comprehension_var;
11685 if (
11686 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
11687 )
11688 {
11689 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
11690 _res = invalid_dict_comprehension_var;
11691 goto done;
11692 }
11693 p->mark = _mark;
11694 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
11695 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
11696 }
11697 _res = NULL;
11698 done:
11699 D(p->level--);
11700 return _res;
11701}
11702
11703// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
11704static asdl_seq*
11705double_starred_kvpairs_rule(Parser *p)
11706{
11707 D(p->level++);
11708 if (p->error_indicator) {
11709 D(p->level--);
11710 return NULL;
11711 }
11712 asdl_seq* _res = NULL;
11713 int _mark = p->mark;
11714 { // ','.double_starred_kvpair+ ','?
11715 if (p->error_indicator) {
11716 D(p->level--);
11717 return NULL;
11718 }
11719 D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
11720 void *_opt_var;
11721 UNUSED(_opt_var); // Silence compiler warnings
11722 asdl_seq * a;
11723 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011724 (a = _gather_101_rule(p)) // ','.double_starred_kvpair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011725 &&
11726 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
11727 )
11728 {
11729 D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
11730 _res = a;
11731 if (_res == NULL && PyErr_Occurred()) {
11732 p->error_indicator = 1;
11733 D(p->level--);
11734 return NULL;
11735 }
11736 goto done;
11737 }
11738 p->mark = _mark;
11739 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
11740 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
11741 }
11742 _res = NULL;
11743 done:
11744 D(p->level--);
11745 return _res;
11746}
11747
11748// double_starred_kvpair: '**' bitwise_or | kvpair
11749static KeyValuePair*
11750double_starred_kvpair_rule(Parser *p)
11751{
11752 D(p->level++);
11753 if (p->error_indicator) {
11754 D(p->level--);
11755 return NULL;
11756 }
11757 KeyValuePair* _res = NULL;
11758 int _mark = p->mark;
11759 { // '**' bitwise_or
11760 if (p->error_indicator) {
11761 D(p->level--);
11762 return NULL;
11763 }
11764 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
11765 Token * _literal;
11766 expr_ty a;
11767 if (
11768 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
11769 &&
11770 (a = bitwise_or_rule(p)) // bitwise_or
11771 )
11772 {
11773 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
11774 _res = _PyPegen_key_value_pair ( p , NULL , a );
11775 if (_res == NULL && PyErr_Occurred()) {
11776 p->error_indicator = 1;
11777 D(p->level--);
11778 return NULL;
11779 }
11780 goto done;
11781 }
11782 p->mark = _mark;
11783 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11784 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
11785 }
11786 { // kvpair
11787 if (p->error_indicator) {
11788 D(p->level--);
11789 return NULL;
11790 }
11791 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
11792 KeyValuePair* kvpair_var;
11793 if (
11794 (kvpair_var = kvpair_rule(p)) // kvpair
11795 )
11796 {
11797 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
11798 _res = kvpair_var;
11799 goto done;
11800 }
11801 p->mark = _mark;
11802 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11803 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
11804 }
11805 _res = NULL;
11806 done:
11807 D(p->level--);
11808 return _res;
11809}
11810
11811// kvpair: expression ':' expression
11812static KeyValuePair*
11813kvpair_rule(Parser *p)
11814{
11815 D(p->level++);
11816 if (p->error_indicator) {
11817 D(p->level--);
11818 return NULL;
11819 }
11820 KeyValuePair* _res = NULL;
11821 int _mark = p->mark;
11822 { // expression ':' expression
11823 if (p->error_indicator) {
11824 D(p->level--);
11825 return NULL;
11826 }
11827 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
11828 Token * _literal;
11829 expr_ty a;
11830 expr_ty b;
11831 if (
11832 (a = expression_rule(p)) // expression
11833 &&
11834 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
11835 &&
11836 (b = expression_rule(p)) // expression
11837 )
11838 {
11839 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
11840 _res = _PyPegen_key_value_pair ( p , a , b );
11841 if (_res == NULL && PyErr_Occurred()) {
11842 p->error_indicator = 1;
11843 D(p->level--);
11844 return NULL;
11845 }
11846 goto done;
11847 }
11848 p->mark = _mark;
11849 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11850 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
11851 }
11852 _res = NULL;
11853 done:
11854 D(p->level--);
11855 return _res;
11856}
11857
11858// for_if_clauses: for_if_clause+
Pablo Galindoa5634c42020-09-16 19:42:00 +010011859static asdl_comprehension_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011860for_if_clauses_rule(Parser *p)
11861{
11862 D(p->level++);
11863 if (p->error_indicator) {
11864 D(p->level--);
11865 return NULL;
11866 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010011867 asdl_comprehension_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011868 int _mark = p->mark;
11869 { // for_if_clause+
11870 if (p->error_indicator) {
11871 D(p->level--);
11872 return NULL;
11873 }
11874 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 +010011875 asdl_comprehension_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011876 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011877 (a = (asdl_comprehension_seq*)_loop1_103_rule(p)) // for_if_clause+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011878 )
11879 {
11880 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 +010011881 _res = a;
11882 if (_res == NULL && PyErr_Occurred()) {
11883 p->error_indicator = 1;
11884 D(p->level--);
11885 return NULL;
11886 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011887 goto done;
11888 }
11889 p->mark = _mark;
11890 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
11891 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
11892 }
11893 _res = NULL;
11894 done:
11895 D(p->level--);
11896 return _res;
11897}
11898
11899// for_if_clause:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011900// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
11901// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
11902// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011903static comprehension_ty
11904for_if_clause_rule(Parser *p)
11905{
11906 D(p->level++);
11907 if (p->error_indicator) {
11908 D(p->level--);
11909 return NULL;
11910 }
11911 comprehension_ty _res = NULL;
11912 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011913 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011914 if (p->error_indicator) {
11915 D(p->level--);
11916 return NULL;
11917 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011918 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
11919 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011920 Token * _keyword;
11921 Token * _keyword_1;
11922 expr_ty a;
11923 Token * async_var;
11924 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011925 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011926 if (
11927 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
11928 &&
11929 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
11930 &&
11931 (a = star_targets_rule(p)) // star_targets
11932 &&
11933 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
11934 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011935 (_cut_var = 1)
11936 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011937 (b = disjunction_rule(p)) // disjunction
11938 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011939 (c = (asdl_expr_seq*)_loop0_104_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011940 )
11941 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011942 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 +030011943 _res = CHECK_VERSION ( comprehension_ty , 6 , "Async comprehensions are" , _Py_comprehension ( a , b , c , 1 , p -> arena ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011944 if (_res == NULL && PyErr_Occurred()) {
11945 p->error_indicator = 1;
11946 D(p->level--);
11947 return NULL;
11948 }
11949 goto done;
11950 }
11951 p->mark = _mark;
11952 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011953 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
11954 if (_cut_var) {
11955 D(p->level--);
11956 return NULL;
11957 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011958 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011959 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011960 if (p->error_indicator) {
11961 D(p->level--);
11962 return NULL;
11963 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011964 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
11965 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011966 Token * _keyword;
11967 Token * _keyword_1;
11968 expr_ty a;
11969 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011970 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011971 if (
11972 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
11973 &&
11974 (a = star_targets_rule(p)) // star_targets
11975 &&
11976 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
11977 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011978 (_cut_var = 1)
11979 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011980 (b = disjunction_rule(p)) // disjunction
11981 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011982 (c = (asdl_expr_seq*)_loop0_105_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011983 )
11984 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011985 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 +010011986 _res = _Py_comprehension ( a , b , c , 0 , p -> arena );
11987 if (_res == NULL && PyErr_Occurred()) {
11988 p->error_indicator = 1;
11989 D(p->level--);
11990 return NULL;
11991 }
11992 goto done;
11993 }
11994 p->mark = _mark;
11995 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
11997 if (_cut_var) {
11998 D(p->level--);
11999 return NULL;
12000 }
12001 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012002 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030012003 if (p->error_indicator) {
12004 D(p->level--);
12005 return NULL;
12006 }
12007 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
12008 void *invalid_for_target_var;
12009 if (
12010 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
12011 )
12012 {
12013 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
12014 _res = invalid_for_target_var;
12015 goto done;
12016 }
12017 p->mark = _mark;
12018 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
12019 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012020 }
12021 _res = NULL;
12022 done:
12023 D(p->level--);
12024 return _res;
12025}
12026
12027// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
12028static expr_ty
12029yield_expr_rule(Parser *p)
12030{
12031 D(p->level++);
12032 if (p->error_indicator) {
12033 D(p->level--);
12034 return NULL;
12035 }
12036 expr_ty _res = NULL;
12037 int _mark = p->mark;
12038 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12039 p->error_indicator = 1;
12040 D(p->level--);
12041 return NULL;
12042 }
12043 int _start_lineno = p->tokens[_mark]->lineno;
12044 UNUSED(_start_lineno); // Only used by EXTRA macro
12045 int _start_col_offset = p->tokens[_mark]->col_offset;
12046 UNUSED(_start_col_offset); // Only used by EXTRA macro
12047 { // 'yield' 'from' expression
12048 if (p->error_indicator) {
12049 D(p->level--);
12050 return NULL;
12051 }
12052 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
12053 Token * _keyword;
12054 Token * _keyword_1;
12055 expr_ty a;
12056 if (
12057 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
12058 &&
12059 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
12060 &&
12061 (a = expression_rule(p)) // expression
12062 )
12063 {
12064 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
12065 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12066 if (_token == NULL) {
12067 D(p->level--);
12068 return NULL;
12069 }
12070 int _end_lineno = _token->end_lineno;
12071 UNUSED(_end_lineno); // Only used by EXTRA macro
12072 int _end_col_offset = _token->end_col_offset;
12073 UNUSED(_end_col_offset); // Only used by EXTRA macro
12074 _res = _Py_YieldFrom ( a , EXTRA );
12075 if (_res == NULL && PyErr_Occurred()) {
12076 p->error_indicator = 1;
12077 D(p->level--);
12078 return NULL;
12079 }
12080 goto done;
12081 }
12082 p->mark = _mark;
12083 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
12084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
12085 }
12086 { // 'yield' star_expressions?
12087 if (p->error_indicator) {
12088 D(p->level--);
12089 return NULL;
12090 }
12091 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
12092 Token * _keyword;
12093 void *a;
12094 if (
12095 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
12096 &&
12097 (a = star_expressions_rule(p), 1) // star_expressions?
12098 )
12099 {
12100 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
12101 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12102 if (_token == NULL) {
12103 D(p->level--);
12104 return NULL;
12105 }
12106 int _end_lineno = _token->end_lineno;
12107 UNUSED(_end_lineno); // Only used by EXTRA macro
12108 int _end_col_offset = _token->end_col_offset;
12109 UNUSED(_end_col_offset); // Only used by EXTRA macro
12110 _res = _Py_Yield ( a , EXTRA );
12111 if (_res == NULL && PyErr_Occurred()) {
12112 p->error_indicator = 1;
12113 D(p->level--);
12114 return NULL;
12115 }
12116 goto done;
12117 }
12118 p->mark = _mark;
12119 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
12120 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
12121 }
12122 _res = NULL;
12123 done:
12124 D(p->level--);
12125 return _res;
12126}
12127
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012128// arguments: args ','? &')' | invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012129static expr_ty
12130arguments_rule(Parser *p)
12131{
12132 D(p->level++);
12133 if (p->error_indicator) {
12134 D(p->level--);
12135 return NULL;
12136 }
12137 expr_ty _res = NULL;
12138 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
12139 D(p->level--);
12140 return _res;
12141 }
12142 int _mark = p->mark;
12143 { // args ','? &')'
12144 if (p->error_indicator) {
12145 D(p->level--);
12146 return NULL;
12147 }
12148 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
12149 void *_opt_var;
12150 UNUSED(_opt_var); // Silence compiler warnings
12151 expr_ty a;
12152 if (
12153 (a = args_rule(p)) // args
12154 &&
12155 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
12156 &&
12157 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
12158 )
12159 {
12160 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
12161 _res = a;
12162 if (_res == NULL && PyErr_Occurred()) {
12163 p->error_indicator = 1;
12164 D(p->level--);
12165 return NULL;
12166 }
12167 goto done;
12168 }
12169 p->mark = _mark;
12170 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
12171 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
12172 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012173 if (p->call_invalid_rules) { // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012174 if (p->error_indicator) {
12175 D(p->level--);
12176 return NULL;
12177 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012178 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
12179 void *invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012180 if (
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012181 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012182 )
12183 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012184 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
12185 _res = invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012186 goto done;
12187 }
12188 p->mark = _mark;
12189 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012191 }
12192 _res = NULL;
12193 done:
12194 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
12195 D(p->level--);
12196 return _res;
12197}
12198
Pablo Galindo4a97b152020-09-02 17:44:19 +010012199// args: ','.(starred_expression | named_expression !'=')+ [',' kwargs] | kwargs
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012200static expr_ty
12201args_rule(Parser *p)
12202{
12203 D(p->level++);
12204 if (p->error_indicator) {
12205 D(p->level--);
12206 return NULL;
12207 }
12208 expr_ty _res = NULL;
12209 int _mark = p->mark;
12210 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12211 p->error_indicator = 1;
12212 D(p->level--);
12213 return NULL;
12214 }
12215 int _start_lineno = p->tokens[_mark]->lineno;
12216 UNUSED(_start_lineno); // Only used by EXTRA macro
12217 int _start_col_offset = p->tokens[_mark]->col_offset;
12218 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo4a97b152020-09-02 17:44:19 +010012219 { // ','.(starred_expression | named_expression !'=')+ [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012220 if (p->error_indicator) {
12221 D(p->level--);
12222 return NULL;
12223 }
Pablo Galindo4a97b152020-09-02 17:44:19 +010012224 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 +010012225 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012226 void *b;
12227 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012228 (a = (asdl_expr_seq*)_gather_106_rule(p)) // ','.(starred_expression | named_expression !'=')+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012229 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012230 (b = _tmp_108_rule(p), 1) // [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012231 )
12232 {
Pablo Galindo4a97b152020-09-02 17:44:19 +010012233 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 +010012234 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12235 if (_token == NULL) {
12236 D(p->level--);
12237 return NULL;
12238 }
12239 int _end_lineno = _token->end_lineno;
12240 UNUSED(_end_lineno); // Only used by EXTRA macro
12241 int _end_col_offset = _token->end_col_offset;
12242 UNUSED(_end_col_offset); // Only used by EXTRA macro
12243 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012244 if (_res == NULL && PyErr_Occurred()) {
12245 p->error_indicator = 1;
12246 D(p->level--);
12247 return NULL;
12248 }
12249 goto done;
12250 }
12251 p->mark = _mark;
12252 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010012253 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012254 }
12255 { // kwargs
12256 if (p->error_indicator) {
12257 D(p->level--);
12258 return NULL;
12259 }
12260 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
12261 asdl_seq* a;
12262 if (
12263 (a = kwargs_rule(p)) // kwargs
12264 )
12265 {
12266 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
12267 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12268 if (_token == NULL) {
12269 D(p->level--);
12270 return NULL;
12271 }
12272 int _end_lineno = _token->end_lineno;
12273 UNUSED(_end_lineno); // Only used by EXTRA macro
12274 int _end_col_offset = _token->end_col_offset;
12275 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012276 _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 +010012277 if (_res == NULL && PyErr_Occurred()) {
12278 p->error_indicator = 1;
12279 D(p->level--);
12280 return NULL;
12281 }
12282 goto done;
12283 }
12284 p->mark = _mark;
12285 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
12286 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
12287 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012288 _res = NULL;
12289 done:
12290 D(p->level--);
12291 return _res;
12292}
12293
12294// kwargs:
12295// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
12296// | ','.kwarg_or_starred+
12297// | ','.kwarg_or_double_starred+
12298static asdl_seq*
12299kwargs_rule(Parser *p)
12300{
12301 D(p->level++);
12302 if (p->error_indicator) {
12303 D(p->level--);
12304 return NULL;
12305 }
12306 asdl_seq* _res = NULL;
12307 int _mark = p->mark;
12308 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
12309 if (p->error_indicator) {
12310 D(p->level--);
12311 return NULL;
12312 }
12313 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
12314 Token * _literal;
12315 asdl_seq * a;
12316 asdl_seq * b;
12317 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012318 (a = _gather_109_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012319 &&
12320 (_literal = _PyPegen_expect_token(p, 12)) // token=','
12321 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012322 (b = _gather_111_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012323 )
12324 {
12325 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
12326 _res = _PyPegen_join_sequences ( p , a , b );
12327 if (_res == NULL && PyErr_Occurred()) {
12328 p->error_indicator = 1;
12329 D(p->level--);
12330 return NULL;
12331 }
12332 goto done;
12333 }
12334 p->mark = _mark;
12335 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
12337 }
12338 { // ','.kwarg_or_starred+
12339 if (p->error_indicator) {
12340 D(p->level--);
12341 return NULL;
12342 }
12343 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012344 asdl_seq * _gather_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012345 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012346 (_gather_113_var = _gather_113_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012347 )
12348 {
12349 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 +000012350 _res = _gather_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012351 goto done;
12352 }
12353 p->mark = _mark;
12354 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12355 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
12356 }
12357 { // ','.kwarg_or_double_starred+
12358 if (p->error_indicator) {
12359 D(p->level--);
12360 return NULL;
12361 }
12362 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 +000012363 asdl_seq * _gather_115_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012364 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012365 (_gather_115_var = _gather_115_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012366 )
12367 {
12368 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 +000012369 _res = _gather_115_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012370 goto done;
12371 }
12372 p->mark = _mark;
12373 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12374 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
12375 }
12376 _res = NULL;
12377 done:
12378 D(p->level--);
12379 return _res;
12380}
12381
12382// starred_expression: '*' expression
12383static expr_ty
12384starred_expression_rule(Parser *p)
12385{
12386 D(p->level++);
12387 if (p->error_indicator) {
12388 D(p->level--);
12389 return NULL;
12390 }
12391 expr_ty _res = NULL;
12392 int _mark = p->mark;
12393 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12394 p->error_indicator = 1;
12395 D(p->level--);
12396 return NULL;
12397 }
12398 int _start_lineno = p->tokens[_mark]->lineno;
12399 UNUSED(_start_lineno); // Only used by EXTRA macro
12400 int _start_col_offset = p->tokens[_mark]->col_offset;
12401 UNUSED(_start_col_offset); // Only used by EXTRA macro
12402 { // '*' expression
12403 if (p->error_indicator) {
12404 D(p->level--);
12405 return NULL;
12406 }
12407 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
12408 Token * _literal;
12409 expr_ty a;
12410 if (
12411 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
12412 &&
12413 (a = expression_rule(p)) // expression
12414 )
12415 {
12416 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
12417 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12418 if (_token == NULL) {
12419 D(p->level--);
12420 return NULL;
12421 }
12422 int _end_lineno = _token->end_lineno;
12423 UNUSED(_end_lineno); // Only used by EXTRA macro
12424 int _end_col_offset = _token->end_col_offset;
12425 UNUSED(_end_col_offset); // Only used by EXTRA macro
12426 _res = _Py_Starred ( a , Load , EXTRA );
12427 if (_res == NULL && PyErr_Occurred()) {
12428 p->error_indicator = 1;
12429 D(p->level--);
12430 return NULL;
12431 }
12432 goto done;
12433 }
12434 p->mark = _mark;
12435 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
12436 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
12437 }
12438 _res = NULL;
12439 done:
12440 D(p->level--);
12441 return _res;
12442}
12443
12444// kwarg_or_starred: NAME '=' expression | starred_expression | invalid_kwarg
12445static KeywordOrStarred*
12446kwarg_or_starred_rule(Parser *p)
12447{
12448 D(p->level++);
12449 if (p->error_indicator) {
12450 D(p->level--);
12451 return NULL;
12452 }
12453 KeywordOrStarred* _res = NULL;
12454 int _mark = p->mark;
12455 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12456 p->error_indicator = 1;
12457 D(p->level--);
12458 return NULL;
12459 }
12460 int _start_lineno = p->tokens[_mark]->lineno;
12461 UNUSED(_start_lineno); // Only used by EXTRA macro
12462 int _start_col_offset = p->tokens[_mark]->col_offset;
12463 UNUSED(_start_col_offset); // Only used by EXTRA macro
12464 { // NAME '=' expression
12465 if (p->error_indicator) {
12466 D(p->level--);
12467 return NULL;
12468 }
12469 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
12470 Token * _literal;
12471 expr_ty a;
12472 expr_ty b;
12473 if (
12474 (a = _PyPegen_name_token(p)) // NAME
12475 &&
12476 (_literal = _PyPegen_expect_token(p, 22)) // token='='
12477 &&
12478 (b = expression_rule(p)) // expression
12479 )
12480 {
12481 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
12482 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12483 if (_token == NULL) {
12484 D(p->level--);
12485 return NULL;
12486 }
12487 int _end_lineno = _token->end_lineno;
12488 UNUSED(_end_lineno); // Only used by EXTRA macro
12489 int _end_col_offset = _token->end_col_offset;
12490 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012491 _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 +010012492 if (_res == NULL && PyErr_Occurred()) {
12493 p->error_indicator = 1;
12494 D(p->level--);
12495 return NULL;
12496 }
12497 goto done;
12498 }
12499 p->mark = _mark;
12500 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12501 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
12502 }
12503 { // starred_expression
12504 if (p->error_indicator) {
12505 D(p->level--);
12506 return NULL;
12507 }
12508 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
12509 expr_ty a;
12510 if (
12511 (a = starred_expression_rule(p)) // starred_expression
12512 )
12513 {
12514 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
12515 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
12516 if (_res == NULL && PyErr_Occurred()) {
12517 p->error_indicator = 1;
12518 D(p->level--);
12519 return NULL;
12520 }
12521 goto done;
12522 }
12523 p->mark = _mark;
12524 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
12526 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012527 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012528 if (p->error_indicator) {
12529 D(p->level--);
12530 return NULL;
12531 }
12532 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
12533 void *invalid_kwarg_var;
12534 if (
12535 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
12536 )
12537 {
12538 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
12539 _res = invalid_kwarg_var;
12540 goto done;
12541 }
12542 p->mark = _mark;
12543 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
12545 }
12546 _res = NULL;
12547 done:
12548 D(p->level--);
12549 return _res;
12550}
12551
12552// kwarg_or_double_starred: NAME '=' expression | '**' expression | invalid_kwarg
12553static KeywordOrStarred*
12554kwarg_or_double_starred_rule(Parser *p)
12555{
12556 D(p->level++);
12557 if (p->error_indicator) {
12558 D(p->level--);
12559 return NULL;
12560 }
12561 KeywordOrStarred* _res = NULL;
12562 int _mark = p->mark;
12563 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12564 p->error_indicator = 1;
12565 D(p->level--);
12566 return NULL;
12567 }
12568 int _start_lineno = p->tokens[_mark]->lineno;
12569 UNUSED(_start_lineno); // Only used by EXTRA macro
12570 int _start_col_offset = p->tokens[_mark]->col_offset;
12571 UNUSED(_start_col_offset); // Only used by EXTRA macro
12572 { // NAME '=' expression
12573 if (p->error_indicator) {
12574 D(p->level--);
12575 return NULL;
12576 }
12577 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
12578 Token * _literal;
12579 expr_ty a;
12580 expr_ty b;
12581 if (
12582 (a = _PyPegen_name_token(p)) // NAME
12583 &&
12584 (_literal = _PyPegen_expect_token(p, 22)) // token='='
12585 &&
12586 (b = expression_rule(p)) // expression
12587 )
12588 {
12589 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
12590 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12591 if (_token == NULL) {
12592 D(p->level--);
12593 return NULL;
12594 }
12595 int _end_lineno = _token->end_lineno;
12596 UNUSED(_end_lineno); // Only used by EXTRA macro
12597 int _end_col_offset = _token->end_col_offset;
12598 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012599 _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 +010012600 if (_res == NULL && PyErr_Occurred()) {
12601 p->error_indicator = 1;
12602 D(p->level--);
12603 return NULL;
12604 }
12605 goto done;
12606 }
12607 p->mark = _mark;
12608 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12609 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
12610 }
12611 { // '**' expression
12612 if (p->error_indicator) {
12613 D(p->level--);
12614 return NULL;
12615 }
12616 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
12617 Token * _literal;
12618 expr_ty a;
12619 if (
12620 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
12621 &&
12622 (a = expression_rule(p)) // expression
12623 )
12624 {
12625 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
12626 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12627 if (_token == NULL) {
12628 D(p->level--);
12629 return NULL;
12630 }
12631 int _end_lineno = _token->end_lineno;
12632 UNUSED(_end_lineno); // Only used by EXTRA macro
12633 int _end_col_offset = _token->end_col_offset;
12634 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012635 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _Py_keyword ( NULL , a , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012636 if (_res == NULL && PyErr_Occurred()) {
12637 p->error_indicator = 1;
12638 D(p->level--);
12639 return NULL;
12640 }
12641 goto done;
12642 }
12643 p->mark = _mark;
12644 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12645 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
12646 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012647 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012648 if (p->error_indicator) {
12649 D(p->level--);
12650 return NULL;
12651 }
12652 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
12653 void *invalid_kwarg_var;
12654 if (
12655 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
12656 )
12657 {
12658 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
12659 _res = invalid_kwarg_var;
12660 goto done;
12661 }
12662 p->mark = _mark;
12663 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12664 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
12665 }
12666 _res = NULL;
12667 done:
12668 D(p->level--);
12669 return _res;
12670}
12671
12672// star_targets: star_target !',' | star_target ((',' star_target))* ','?
12673static expr_ty
12674star_targets_rule(Parser *p)
12675{
12676 D(p->level++);
12677 if (p->error_indicator) {
12678 D(p->level--);
12679 return NULL;
12680 }
12681 expr_ty _res = NULL;
12682 int _mark = p->mark;
12683 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12684 p->error_indicator = 1;
12685 D(p->level--);
12686 return NULL;
12687 }
12688 int _start_lineno = p->tokens[_mark]->lineno;
12689 UNUSED(_start_lineno); // Only used by EXTRA macro
12690 int _start_col_offset = p->tokens[_mark]->col_offset;
12691 UNUSED(_start_col_offset); // Only used by EXTRA macro
12692 { // star_target !','
12693 if (p->error_indicator) {
12694 D(p->level--);
12695 return NULL;
12696 }
12697 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
12698 expr_ty a;
12699 if (
12700 (a = star_target_rule(p)) // star_target
12701 &&
12702 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
12703 )
12704 {
12705 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
12706 _res = a;
12707 if (_res == NULL && PyErr_Occurred()) {
12708 p->error_indicator = 1;
12709 D(p->level--);
12710 return NULL;
12711 }
12712 goto done;
12713 }
12714 p->mark = _mark;
12715 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
12716 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
12717 }
12718 { // star_target ((',' star_target))* ','?
12719 if (p->error_indicator) {
12720 D(p->level--);
12721 return NULL;
12722 }
12723 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
12724 void *_opt_var;
12725 UNUSED(_opt_var); // Silence compiler warnings
12726 expr_ty a;
12727 asdl_seq * b;
12728 if (
12729 (a = star_target_rule(p)) // star_target
12730 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012731 (b = _loop0_117_rule(p)) // ((',' star_target))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012732 &&
12733 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
12734 )
12735 {
12736 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
12737 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12738 if (_token == NULL) {
12739 D(p->level--);
12740 return NULL;
12741 }
12742 int _end_lineno = _token->end_lineno;
12743 UNUSED(_end_lineno); // Only used by EXTRA macro
12744 int _end_col_offset = _token->end_col_offset;
12745 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012746 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012747 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 ((',' star_target))* ','?"));
12757 }
12758 _res = NULL;
12759 done:
12760 D(p->level--);
12761 return _res;
12762}
12763
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012764// star_targets_list_seq: ','.star_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010012765static asdl_expr_seq*
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012766star_targets_list_seq_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012767{
12768 D(p->level++);
12769 if (p->error_indicator) {
12770 D(p->level--);
12771 return NULL;
12772 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010012773 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012774 int _mark = p->mark;
12775 { // ','.star_target+ ','?
12776 if (p->error_indicator) {
12777 D(p->level--);
12778 return NULL;
12779 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012780 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 +010012781 void *_opt_var;
12782 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010012783 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012784 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012785 (a = (asdl_expr_seq*)_gather_118_rule(p)) // ','.star_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012786 &&
12787 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
12788 )
12789 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012790 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 +010012791 _res = a;
12792 if (_res == NULL && PyErr_Occurred()) {
12793 p->error_indicator = 1;
12794 D(p->level--);
12795 return NULL;
12796 }
12797 goto done;
12798 }
12799 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012800 D(fprintf(stderr, "%*c%s star_targets_list_seq[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012801 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
12802 }
12803 _res = NULL;
12804 done:
12805 D(p->level--);
12806 return _res;
12807}
12808
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012809// star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
12810static asdl_expr_seq*
12811star_targets_tuple_seq_rule(Parser *p)
12812{
12813 D(p->level++);
12814 if (p->error_indicator) {
12815 D(p->level--);
12816 return NULL;
12817 }
12818 asdl_expr_seq* _res = NULL;
12819 int _mark = p->mark;
12820 { // star_target ((',' star_target))+ ','?
12821 if (p->error_indicator) {
12822 D(p->level--);
12823 return NULL;
12824 }
12825 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
12826 void *_opt_var;
12827 UNUSED(_opt_var); // Silence compiler warnings
12828 expr_ty a;
12829 asdl_seq * b;
12830 if (
12831 (a = star_target_rule(p)) // star_target
12832 &&
12833 (b = _loop1_120_rule(p)) // ((',' star_target))+
12834 &&
12835 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
12836 )
12837 {
12838 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
12839 _res = ( asdl_expr_seq * ) _PyPegen_seq_insert_in_front ( p , a , b );
12840 if (_res == NULL && PyErr_Occurred()) {
12841 p->error_indicator = 1;
12842 D(p->level--);
12843 return NULL;
12844 }
12845 goto done;
12846 }
12847 p->mark = _mark;
12848 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
12849 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))+ ','?"));
12850 }
12851 { // star_target ','
12852 if (p->error_indicator) {
12853 D(p->level--);
12854 return NULL;
12855 }
12856 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ','"));
12857 Token * _literal;
12858 expr_ty a;
12859 if (
12860 (a = star_target_rule(p)) // star_target
12861 &&
12862 (_literal = _PyPegen_expect_token(p, 12)) // token=','
12863 )
12864 {
12865 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
12866 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
12867 if (_res == NULL && PyErr_Occurred()) {
12868 p->error_indicator = 1;
12869 D(p->level--);
12870 return NULL;
12871 }
12872 goto done;
12873 }
12874 p->mark = _mark;
12875 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
12876 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ','"));
12877 }
12878 _res = NULL;
12879 done:
12880 D(p->level--);
12881 return _res;
12882}
12883
12884// star_target: '*' (!'*' star_target) | target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012885static expr_ty
12886star_target_rule(Parser *p)
12887{
12888 D(p->level++);
12889 if (p->error_indicator) {
12890 D(p->level--);
12891 return NULL;
12892 }
12893 expr_ty _res = NULL;
12894 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
12895 D(p->level--);
12896 return _res;
12897 }
12898 int _mark = p->mark;
12899 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12900 p->error_indicator = 1;
12901 D(p->level--);
12902 return NULL;
12903 }
12904 int _start_lineno = p->tokens[_mark]->lineno;
12905 UNUSED(_start_lineno); // Only used by EXTRA macro
12906 int _start_col_offset = p->tokens[_mark]->col_offset;
12907 UNUSED(_start_col_offset); // Only used by EXTRA macro
12908 { // '*' (!'*' star_target)
12909 if (p->error_indicator) {
12910 D(p->level--);
12911 return NULL;
12912 }
12913 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
12914 Token * _literal;
12915 void *a;
12916 if (
12917 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
12918 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012919 (a = _tmp_121_rule(p)) // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012920 )
12921 {
12922 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
12923 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12924 if (_token == NULL) {
12925 D(p->level--);
12926 return NULL;
12927 }
12928 int _end_lineno = _token->end_lineno;
12929 UNUSED(_end_lineno); // Only used by EXTRA macro
12930 int _end_col_offset = _token->end_col_offset;
12931 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012932 _res = _Py_Starred ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012933 if (_res == NULL && PyErr_Occurred()) {
12934 p->error_indicator = 1;
12935 D(p->level--);
12936 return NULL;
12937 }
12938 goto done;
12939 }
12940 p->mark = _mark;
12941 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12942 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
12943 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012944 { // target_with_star_atom
12945 if (p->error_indicator) {
12946 D(p->level--);
12947 return NULL;
12948 }
12949 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
12950 expr_ty target_with_star_atom_var;
12951 if (
12952 (target_with_star_atom_var = target_with_star_atom_rule(p)) // target_with_star_atom
12953 )
12954 {
12955 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
12956 _res = target_with_star_atom_var;
12957 goto done;
12958 }
12959 p->mark = _mark;
12960 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_with_star_atom"));
12962 }
12963 _res = NULL;
12964 done:
12965 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
12966 D(p->level--);
12967 return _res;
12968}
12969
12970// target_with_star_atom:
12971// | t_primary '.' NAME !t_lookahead
12972// | t_primary '[' slices ']' !t_lookahead
12973// | star_atom
12974static expr_ty
12975target_with_star_atom_rule(Parser *p)
12976{
12977 D(p->level++);
12978 if (p->error_indicator) {
12979 D(p->level--);
12980 return NULL;
12981 }
12982 expr_ty _res = NULL;
12983 if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
12984 D(p->level--);
12985 return _res;
12986 }
12987 int _mark = p->mark;
12988 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12989 p->error_indicator = 1;
12990 D(p->level--);
12991 return NULL;
12992 }
12993 int _start_lineno = p->tokens[_mark]->lineno;
12994 UNUSED(_start_lineno); // Only used by EXTRA macro
12995 int _start_col_offset = p->tokens[_mark]->col_offset;
12996 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012997 { // t_primary '.' NAME !t_lookahead
12998 if (p->error_indicator) {
12999 D(p->level--);
13000 return NULL;
13001 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013002 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 +010013003 Token * _literal;
13004 expr_ty a;
13005 expr_ty b;
13006 if (
13007 (a = t_primary_rule(p)) // t_primary
13008 &&
13009 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13010 &&
13011 (b = _PyPegen_name_token(p)) // NAME
13012 &&
13013 _PyPegen_lookahead(0, t_lookahead_rule, p)
13014 )
13015 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013016 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 +010013017 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13018 if (_token == NULL) {
13019 D(p->level--);
13020 return NULL;
13021 }
13022 int _end_lineno = _token->end_lineno;
13023 UNUSED(_end_lineno); // Only used by EXTRA macro
13024 int _end_col_offset = _token->end_col_offset;
13025 UNUSED(_end_col_offset); // Only used by EXTRA macro
13026 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13027 if (_res == NULL && PyErr_Occurred()) {
13028 p->error_indicator = 1;
13029 D(p->level--);
13030 return NULL;
13031 }
13032 goto done;
13033 }
13034 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013035 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013036 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13037 }
13038 { // t_primary '[' slices ']' !t_lookahead
13039 if (p->error_indicator) {
13040 D(p->level--);
13041 return NULL;
13042 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013043 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 +010013044 Token * _literal;
13045 Token * _literal_1;
13046 expr_ty a;
13047 expr_ty b;
13048 if (
13049 (a = t_primary_rule(p)) // t_primary
13050 &&
13051 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13052 &&
13053 (b = slices_rule(p)) // slices
13054 &&
13055 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13056 &&
13057 _PyPegen_lookahead(0, t_lookahead_rule, p)
13058 )
13059 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013060 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 +010013061 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13062 if (_token == NULL) {
13063 D(p->level--);
13064 return NULL;
13065 }
13066 int _end_lineno = _token->end_lineno;
13067 UNUSED(_end_lineno); // Only used by EXTRA macro
13068 int _end_col_offset = _token->end_col_offset;
13069 UNUSED(_end_col_offset); // Only used by EXTRA macro
13070 _res = _Py_Subscript ( a , b , Store , EXTRA );
13071 if (_res == NULL && PyErr_Occurred()) {
13072 p->error_indicator = 1;
13073 D(p->level--);
13074 return NULL;
13075 }
13076 goto done;
13077 }
13078 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013079 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013080 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13081 }
13082 { // star_atom
13083 if (p->error_indicator) {
13084 D(p->level--);
13085 return NULL;
13086 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013087 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 +010013088 expr_ty star_atom_var;
13089 if (
13090 (star_atom_var = star_atom_rule(p)) // star_atom
13091 )
13092 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013093 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 +010013094 _res = star_atom_var;
13095 goto done;
13096 }
13097 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013098 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013099 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
13100 }
13101 _res = NULL;
13102 done:
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013103 _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013104 D(p->level--);
13105 return _res;
13106}
13107
13108// star_atom:
13109// | NAME
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013110// | '(' target_with_star_atom ')'
13111// | '(' star_targets_tuple_seq? ')'
13112// | '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013113static expr_ty
13114star_atom_rule(Parser *p)
13115{
13116 D(p->level++);
13117 if (p->error_indicator) {
13118 D(p->level--);
13119 return NULL;
13120 }
13121 expr_ty _res = NULL;
13122 int _mark = p->mark;
13123 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13124 p->error_indicator = 1;
13125 D(p->level--);
13126 return NULL;
13127 }
13128 int _start_lineno = p->tokens[_mark]->lineno;
13129 UNUSED(_start_lineno); // Only used by EXTRA macro
13130 int _start_col_offset = p->tokens[_mark]->col_offset;
13131 UNUSED(_start_col_offset); // Only used by EXTRA macro
13132 { // NAME
13133 if (p->error_indicator) {
13134 D(p->level--);
13135 return NULL;
13136 }
13137 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
13138 expr_ty a;
13139 if (
13140 (a = _PyPegen_name_token(p)) // NAME
13141 )
13142 {
13143 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
13144 _res = _PyPegen_set_expr_context ( p , a , Store );
13145 if (_res == NULL && PyErr_Occurred()) {
13146 p->error_indicator = 1;
13147 D(p->level--);
13148 return NULL;
13149 }
13150 goto done;
13151 }
13152 p->mark = _mark;
13153 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
13155 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013156 { // '(' target_with_star_atom ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013157 if (p->error_indicator) {
13158 D(p->level--);
13159 return NULL;
13160 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013161 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 +010013162 Token * _literal;
13163 Token * _literal_1;
13164 expr_ty a;
13165 if (
13166 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13167 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013168 (a = target_with_star_atom_rule(p)) // target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013169 &&
13170 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13171 )
13172 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013173 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 +010013174 _res = _PyPegen_set_expr_context ( p , a , Store );
13175 if (_res == NULL && PyErr_Occurred()) {
13176 p->error_indicator = 1;
13177 D(p->level--);
13178 return NULL;
13179 }
13180 goto done;
13181 }
13182 p->mark = _mark;
13183 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013184 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013185 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013186 { // '(' star_targets_tuple_seq? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013187 if (p->error_indicator) {
13188 D(p->level--);
13189 return NULL;
13190 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013191 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 +010013192 Token * _literal;
13193 Token * _literal_1;
13194 void *a;
13195 if (
13196 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13197 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013198 (a = star_targets_tuple_seq_rule(p), 1) // star_targets_tuple_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013199 &&
13200 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13201 )
13202 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013203 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 +010013204 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13205 if (_token == NULL) {
13206 D(p->level--);
13207 return NULL;
13208 }
13209 int _end_lineno = _token->end_lineno;
13210 UNUSED(_end_lineno); // Only used by EXTRA macro
13211 int _end_col_offset = _token->end_col_offset;
13212 UNUSED(_end_col_offset); // Only used by EXTRA macro
13213 _res = _Py_Tuple ( a , Store , EXTRA );
13214 if (_res == NULL && PyErr_Occurred()) {
13215 p->error_indicator = 1;
13216 D(p->level--);
13217 return NULL;
13218 }
13219 goto done;
13220 }
13221 p->mark = _mark;
13222 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013224 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013225 { // '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013226 if (p->error_indicator) {
13227 D(p->level--);
13228 return NULL;
13229 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013230 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 +010013231 Token * _literal;
13232 Token * _literal_1;
13233 void *a;
13234 if (
13235 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13236 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013237 (a = star_targets_list_seq_rule(p), 1) // star_targets_list_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013238 &&
13239 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13240 )
13241 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013242 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 +010013243 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13244 if (_token == NULL) {
13245 D(p->level--);
13246 return NULL;
13247 }
13248 int _end_lineno = _token->end_lineno;
13249 UNUSED(_end_lineno); // Only used by EXTRA macro
13250 int _end_col_offset = _token->end_col_offset;
13251 UNUSED(_end_col_offset); // Only used by EXTRA macro
13252 _res = _Py_List ( a , Store , EXTRA );
13253 if (_res == NULL && PyErr_Occurred()) {
13254 p->error_indicator = 1;
13255 D(p->level--);
13256 return NULL;
13257 }
13258 goto done;
13259 }
13260 p->mark = _mark;
13261 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013262 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013263 }
13264 _res = NULL;
13265 done:
13266 D(p->level--);
13267 return _res;
13268}
13269
13270// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
13271static expr_ty
13272single_target_rule(Parser *p)
13273{
13274 D(p->level++);
13275 if (p->error_indicator) {
13276 D(p->level--);
13277 return NULL;
13278 }
13279 expr_ty _res = NULL;
13280 int _mark = p->mark;
13281 { // single_subscript_attribute_target
13282 if (p->error_indicator) {
13283 D(p->level--);
13284 return NULL;
13285 }
13286 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
13287 expr_ty single_subscript_attribute_target_var;
13288 if (
13289 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
13290 )
13291 {
13292 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
13293 _res = single_subscript_attribute_target_var;
13294 goto done;
13295 }
13296 p->mark = _mark;
13297 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
13299 }
13300 { // NAME
13301 if (p->error_indicator) {
13302 D(p->level--);
13303 return NULL;
13304 }
13305 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
13306 expr_ty a;
13307 if (
13308 (a = _PyPegen_name_token(p)) // NAME
13309 )
13310 {
13311 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
13312 _res = _PyPegen_set_expr_context ( p , a , Store );
13313 if (_res == NULL && PyErr_Occurred()) {
13314 p->error_indicator = 1;
13315 D(p->level--);
13316 return NULL;
13317 }
13318 goto done;
13319 }
13320 p->mark = _mark;
13321 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13322 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
13323 }
13324 { // '(' single_target ')'
13325 if (p->error_indicator) {
13326 D(p->level--);
13327 return NULL;
13328 }
13329 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
13330 Token * _literal;
13331 Token * _literal_1;
13332 expr_ty a;
13333 if (
13334 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13335 &&
13336 (a = single_target_rule(p)) // single_target
13337 &&
13338 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13339 )
13340 {
13341 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
13342 _res = a;
13343 if (_res == NULL && PyErr_Occurred()) {
13344 p->error_indicator = 1;
13345 D(p->level--);
13346 return NULL;
13347 }
13348 goto done;
13349 }
13350 p->mark = _mark;
13351 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13352 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
13353 }
13354 _res = NULL;
13355 done:
13356 D(p->level--);
13357 return _res;
13358}
13359
13360// single_subscript_attribute_target:
13361// | t_primary '.' NAME !t_lookahead
13362// | t_primary '[' slices ']' !t_lookahead
13363static expr_ty
13364single_subscript_attribute_target_rule(Parser *p)
13365{
13366 D(p->level++);
13367 if (p->error_indicator) {
13368 D(p->level--);
13369 return NULL;
13370 }
13371 expr_ty _res = NULL;
13372 int _mark = p->mark;
13373 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13374 p->error_indicator = 1;
13375 D(p->level--);
13376 return NULL;
13377 }
13378 int _start_lineno = p->tokens[_mark]->lineno;
13379 UNUSED(_start_lineno); // Only used by EXTRA macro
13380 int _start_col_offset = p->tokens[_mark]->col_offset;
13381 UNUSED(_start_col_offset); // Only used by EXTRA macro
13382 { // t_primary '.' NAME !t_lookahead
13383 if (p->error_indicator) {
13384 D(p->level--);
13385 return NULL;
13386 }
13387 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13388 Token * _literal;
13389 expr_ty a;
13390 expr_ty b;
13391 if (
13392 (a = t_primary_rule(p)) // t_primary
13393 &&
13394 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13395 &&
13396 (b = _PyPegen_name_token(p)) // NAME
13397 &&
13398 _PyPegen_lookahead(0, t_lookahead_rule, p)
13399 )
13400 {
13401 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13402 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13403 if (_token == NULL) {
13404 D(p->level--);
13405 return NULL;
13406 }
13407 int _end_lineno = _token->end_lineno;
13408 UNUSED(_end_lineno); // Only used by EXTRA macro
13409 int _end_col_offset = _token->end_col_offset;
13410 UNUSED(_end_col_offset); // Only used by EXTRA macro
13411 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13412 if (_res == NULL && PyErr_Occurred()) {
13413 p->error_indicator = 1;
13414 D(p->level--);
13415 return NULL;
13416 }
13417 goto done;
13418 }
13419 p->mark = _mark;
13420 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
13421 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13422 }
13423 { // t_primary '[' slices ']' !t_lookahead
13424 if (p->error_indicator) {
13425 D(p->level--);
13426 return NULL;
13427 }
13428 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13429 Token * _literal;
13430 Token * _literal_1;
13431 expr_ty a;
13432 expr_ty b;
13433 if (
13434 (a = t_primary_rule(p)) // t_primary
13435 &&
13436 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13437 &&
13438 (b = slices_rule(p)) // slices
13439 &&
13440 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13441 &&
13442 _PyPegen_lookahead(0, t_lookahead_rule, p)
13443 )
13444 {
13445 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13446 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13447 if (_token == NULL) {
13448 D(p->level--);
13449 return NULL;
13450 }
13451 int _end_lineno = _token->end_lineno;
13452 UNUSED(_end_lineno); // Only used by EXTRA macro
13453 int _end_col_offset = _token->end_col_offset;
13454 UNUSED(_end_col_offset); // Only used by EXTRA macro
13455 _res = _Py_Subscript ( a , b , Store , EXTRA );
13456 if (_res == NULL && PyErr_Occurred()) {
13457 p->error_indicator = 1;
13458 D(p->level--);
13459 return NULL;
13460 }
13461 goto done;
13462 }
13463 p->mark = _mark;
13464 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
13465 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13466 }
13467 _res = NULL;
13468 done:
13469 D(p->level--);
13470 return _res;
13471}
13472
13473// del_targets: ','.del_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010013474static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013475del_targets_rule(Parser *p)
13476{
13477 D(p->level++);
13478 if (p->error_indicator) {
13479 D(p->level--);
13480 return NULL;
13481 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010013482 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013483 int _mark = p->mark;
13484 { // ','.del_target+ ','?
13485 if (p->error_indicator) {
13486 D(p->level--);
13487 return NULL;
13488 }
13489 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
13490 void *_opt_var;
13491 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010013492 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013493 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013494 (a = (asdl_expr_seq*)_gather_122_rule(p)) // ','.del_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013495 &&
13496 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
13497 )
13498 {
13499 D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
13500 _res = a;
13501 if (_res == NULL && PyErr_Occurred()) {
13502 p->error_indicator = 1;
13503 D(p->level--);
13504 return NULL;
13505 }
13506 goto done;
13507 }
13508 p->mark = _mark;
13509 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
13510 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
13511 }
13512 _res = NULL;
13513 done:
13514 D(p->level--);
13515 return _res;
13516}
13517
13518// del_target:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013519// | t_primary '.' NAME !t_lookahead
13520// | t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013521// | del_t_atom
13522static expr_ty
13523del_target_rule(Parser *p)
13524{
13525 D(p->level++);
13526 if (p->error_indicator) {
13527 D(p->level--);
13528 return NULL;
13529 }
13530 expr_ty _res = NULL;
13531 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
13532 D(p->level--);
13533 return _res;
13534 }
13535 int _mark = p->mark;
13536 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13537 p->error_indicator = 1;
13538 D(p->level--);
13539 return NULL;
13540 }
13541 int _start_lineno = p->tokens[_mark]->lineno;
13542 UNUSED(_start_lineno); // Only used by EXTRA macro
13543 int _start_col_offset = p->tokens[_mark]->col_offset;
13544 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013545 { // t_primary '.' NAME !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013546 if (p->error_indicator) {
13547 D(p->level--);
13548 return NULL;
13549 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013550 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 +010013551 Token * _literal;
13552 expr_ty a;
13553 expr_ty b;
13554 if (
13555 (a = t_primary_rule(p)) // t_primary
13556 &&
13557 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13558 &&
13559 (b = _PyPegen_name_token(p)) // NAME
13560 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013561 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013562 )
13563 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013564 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 +010013565 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13566 if (_token == NULL) {
13567 D(p->level--);
13568 return NULL;
13569 }
13570 int _end_lineno = _token->end_lineno;
13571 UNUSED(_end_lineno); // Only used by EXTRA macro
13572 int _end_col_offset = _token->end_col_offset;
13573 UNUSED(_end_col_offset); // Only used by EXTRA macro
13574 _res = _Py_Attribute ( a , b -> v . Name . id , Del , EXTRA );
13575 if (_res == NULL && PyErr_Occurred()) {
13576 p->error_indicator = 1;
13577 D(p->level--);
13578 return NULL;
13579 }
13580 goto done;
13581 }
13582 p->mark = _mark;
13583 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013585 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013586 { // t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013587 if (p->error_indicator) {
13588 D(p->level--);
13589 return NULL;
13590 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013591 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 +010013592 Token * _literal;
13593 Token * _literal_1;
13594 expr_ty a;
13595 expr_ty b;
13596 if (
13597 (a = t_primary_rule(p)) // t_primary
13598 &&
13599 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13600 &&
13601 (b = slices_rule(p)) // slices
13602 &&
13603 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13604 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013605 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013606 )
13607 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013608 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 +010013609 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13610 if (_token == NULL) {
13611 D(p->level--);
13612 return NULL;
13613 }
13614 int _end_lineno = _token->end_lineno;
13615 UNUSED(_end_lineno); // Only used by EXTRA macro
13616 int _end_col_offset = _token->end_col_offset;
13617 UNUSED(_end_col_offset); // Only used by EXTRA macro
13618 _res = _Py_Subscript ( a , b , Del , EXTRA );
13619 if (_res == NULL && PyErr_Occurred()) {
13620 p->error_indicator = 1;
13621 D(p->level--);
13622 return NULL;
13623 }
13624 goto done;
13625 }
13626 p->mark = _mark;
13627 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013628 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013629 }
13630 { // del_t_atom
13631 if (p->error_indicator) {
13632 D(p->level--);
13633 return NULL;
13634 }
13635 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
13636 expr_ty del_t_atom_var;
13637 if (
13638 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
13639 )
13640 {
13641 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
13642 _res = del_t_atom_var;
13643 goto done;
13644 }
13645 p->mark = _mark;
13646 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
13647 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
13648 }
13649 _res = NULL;
13650 done:
13651 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
13652 D(p->level--);
13653 return _res;
13654}
13655
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013656// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013657static expr_ty
13658del_t_atom_rule(Parser *p)
13659{
13660 D(p->level++);
13661 if (p->error_indicator) {
13662 D(p->level--);
13663 return NULL;
13664 }
13665 expr_ty _res = NULL;
13666 int _mark = p->mark;
13667 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13668 p->error_indicator = 1;
13669 D(p->level--);
13670 return NULL;
13671 }
13672 int _start_lineno = p->tokens[_mark]->lineno;
13673 UNUSED(_start_lineno); // Only used by EXTRA macro
13674 int _start_col_offset = p->tokens[_mark]->col_offset;
13675 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013676 { // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013677 if (p->error_indicator) {
13678 D(p->level--);
13679 return NULL;
13680 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013681 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013682 expr_ty a;
13683 if (
13684 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013685 )
13686 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013687 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 +010013688 _res = _PyPegen_set_expr_context ( p , a , Del );
13689 if (_res == NULL && PyErr_Occurred()) {
13690 p->error_indicator = 1;
13691 D(p->level--);
13692 return NULL;
13693 }
13694 goto done;
13695 }
13696 p->mark = _mark;
13697 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013698 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013699 }
13700 { // '(' del_target ')'
13701 if (p->error_indicator) {
13702 D(p->level--);
13703 return NULL;
13704 }
13705 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
13706 Token * _literal;
13707 Token * _literal_1;
13708 expr_ty a;
13709 if (
13710 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13711 &&
13712 (a = del_target_rule(p)) // del_target
13713 &&
13714 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13715 )
13716 {
13717 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
13718 _res = _PyPegen_set_expr_context ( p , a , Del );
13719 if (_res == NULL && PyErr_Occurred()) {
13720 p->error_indicator = 1;
13721 D(p->level--);
13722 return NULL;
13723 }
13724 goto done;
13725 }
13726 p->mark = _mark;
13727 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13728 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
13729 }
13730 { // '(' del_targets? ')'
13731 if (p->error_indicator) {
13732 D(p->level--);
13733 return NULL;
13734 }
13735 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
13736 Token * _literal;
13737 Token * _literal_1;
13738 void *a;
13739 if (
13740 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13741 &&
13742 (a = del_targets_rule(p), 1) // del_targets?
13743 &&
13744 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13745 )
13746 {
13747 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
13748 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13749 if (_token == NULL) {
13750 D(p->level--);
13751 return NULL;
13752 }
13753 int _end_lineno = _token->end_lineno;
13754 UNUSED(_end_lineno); // Only used by EXTRA macro
13755 int _end_col_offset = _token->end_col_offset;
13756 UNUSED(_end_col_offset); // Only used by EXTRA macro
13757 _res = _Py_Tuple ( a , Del , EXTRA );
13758 if (_res == NULL && PyErr_Occurred()) {
13759 p->error_indicator = 1;
13760 D(p->level--);
13761 return NULL;
13762 }
13763 goto done;
13764 }
13765 p->mark = _mark;
13766 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13767 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
13768 }
13769 { // '[' del_targets? ']'
13770 if (p->error_indicator) {
13771 D(p->level--);
13772 return NULL;
13773 }
13774 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
13775 Token * _literal;
13776 Token * _literal_1;
13777 void *a;
13778 if (
13779 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13780 &&
13781 (a = del_targets_rule(p), 1) // del_targets?
13782 &&
13783 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13784 )
13785 {
13786 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
13787 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13788 if (_token == NULL) {
13789 D(p->level--);
13790 return NULL;
13791 }
13792 int _end_lineno = _token->end_lineno;
13793 UNUSED(_end_lineno); // Only used by EXTRA macro
13794 int _end_col_offset = _token->end_col_offset;
13795 UNUSED(_end_col_offset); // Only used by EXTRA macro
13796 _res = _Py_List ( a , Del , EXTRA );
13797 if (_res == NULL && PyErr_Occurred()) {
13798 p->error_indicator = 1;
13799 D(p->level--);
13800 return NULL;
13801 }
13802 goto done;
13803 }
13804 p->mark = _mark;
13805 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13806 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
13807 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013808 _res = NULL;
13809 done:
13810 D(p->level--);
13811 return _res;
13812}
13813
13814// targets: ','.target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010013815static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013816targets_rule(Parser *p)
13817{
13818 D(p->level++);
13819 if (p->error_indicator) {
13820 D(p->level--);
13821 return NULL;
13822 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010013823 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013824 int _mark = p->mark;
13825 { // ','.target+ ','?
13826 if (p->error_indicator) {
13827 D(p->level--);
13828 return NULL;
13829 }
13830 D(fprintf(stderr, "%*c> targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
13831 void *_opt_var;
13832 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010013833 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013834 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013835 (a = (asdl_expr_seq*)_gather_124_rule(p)) // ','.target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013836 &&
13837 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
13838 )
13839 {
13840 D(fprintf(stderr, "%*c+ targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
13841 _res = a;
13842 if (_res == NULL && PyErr_Occurred()) {
13843 p->error_indicator = 1;
13844 D(p->level--);
13845 return NULL;
13846 }
13847 goto done;
13848 }
13849 p->mark = _mark;
13850 D(fprintf(stderr, "%*c%s targets[%d-%d]: %s failed!\n", p->level, ' ',
13851 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.target+ ','?"));
13852 }
13853 _res = NULL;
13854 done:
13855 D(p->level--);
13856 return _res;
13857}
13858
13859// target:
13860// | t_primary '.' NAME !t_lookahead
13861// | t_primary '[' slices ']' !t_lookahead
13862// | t_atom
13863static expr_ty
13864target_rule(Parser *p)
13865{
13866 D(p->level++);
13867 if (p->error_indicator) {
13868 D(p->level--);
13869 return NULL;
13870 }
13871 expr_ty _res = NULL;
13872 if (_PyPegen_is_memoized(p, target_type, &_res)) {
13873 D(p->level--);
13874 return _res;
13875 }
13876 int _mark = p->mark;
13877 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13878 p->error_indicator = 1;
13879 D(p->level--);
13880 return NULL;
13881 }
13882 int _start_lineno = p->tokens[_mark]->lineno;
13883 UNUSED(_start_lineno); // Only used by EXTRA macro
13884 int _start_col_offset = p->tokens[_mark]->col_offset;
13885 UNUSED(_start_col_offset); // Only used by EXTRA macro
13886 { // t_primary '.' NAME !t_lookahead
13887 if (p->error_indicator) {
13888 D(p->level--);
13889 return NULL;
13890 }
13891 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13892 Token * _literal;
13893 expr_ty a;
13894 expr_ty b;
13895 if (
13896 (a = t_primary_rule(p)) // t_primary
13897 &&
13898 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13899 &&
13900 (b = _PyPegen_name_token(p)) // NAME
13901 &&
13902 _PyPegen_lookahead(0, t_lookahead_rule, p)
13903 )
13904 {
13905 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13906 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13907 if (_token == NULL) {
13908 D(p->level--);
13909 return NULL;
13910 }
13911 int _end_lineno = _token->end_lineno;
13912 UNUSED(_end_lineno); // Only used by EXTRA macro
13913 int _end_col_offset = _token->end_col_offset;
13914 UNUSED(_end_col_offset); // Only used by EXTRA macro
13915 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13916 if (_res == NULL && PyErr_Occurred()) {
13917 p->error_indicator = 1;
13918 D(p->level--);
13919 return NULL;
13920 }
13921 goto done;
13922 }
13923 p->mark = _mark;
13924 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13925 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13926 }
13927 { // t_primary '[' slices ']' !t_lookahead
13928 if (p->error_indicator) {
13929 D(p->level--);
13930 return NULL;
13931 }
13932 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13933 Token * _literal;
13934 Token * _literal_1;
13935 expr_ty a;
13936 expr_ty b;
13937 if (
13938 (a = t_primary_rule(p)) // t_primary
13939 &&
13940 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13941 &&
13942 (b = slices_rule(p)) // slices
13943 &&
13944 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13945 &&
13946 _PyPegen_lookahead(0, t_lookahead_rule, p)
13947 )
13948 {
13949 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13950 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13951 if (_token == NULL) {
13952 D(p->level--);
13953 return NULL;
13954 }
13955 int _end_lineno = _token->end_lineno;
13956 UNUSED(_end_lineno); // Only used by EXTRA macro
13957 int _end_col_offset = _token->end_col_offset;
13958 UNUSED(_end_col_offset); // Only used by EXTRA macro
13959 _res = _Py_Subscript ( a , b , Store , EXTRA );
13960 if (_res == NULL && PyErr_Occurred()) {
13961 p->error_indicator = 1;
13962 D(p->level--);
13963 return NULL;
13964 }
13965 goto done;
13966 }
13967 p->mark = _mark;
13968 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13970 }
13971 { // t_atom
13972 if (p->error_indicator) {
13973 D(p->level--);
13974 return NULL;
13975 }
13976 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_atom"));
13977 expr_ty t_atom_var;
13978 if (
13979 (t_atom_var = t_atom_rule(p)) // t_atom
13980 )
13981 {
13982 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_atom"));
13983 _res = t_atom_var;
13984 goto done;
13985 }
13986 p->mark = _mark;
13987 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13988 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_atom"));
13989 }
13990 _res = NULL;
13991 done:
13992 _PyPegen_insert_memo(p, _mark, target_type, _res);
13993 D(p->level--);
13994 return _res;
13995}
13996
13997// Left-recursive
13998// t_primary:
13999// | t_primary '.' NAME &t_lookahead
14000// | t_primary '[' slices ']' &t_lookahead
14001// | t_primary genexp &t_lookahead
14002// | t_primary '(' arguments? ')' &t_lookahead
14003// | atom &t_lookahead
14004static expr_ty t_primary_raw(Parser *);
14005static expr_ty
14006t_primary_rule(Parser *p)
14007{
14008 D(p->level++);
14009 expr_ty _res = NULL;
14010 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
14011 D(p->level--);
14012 return _res;
14013 }
14014 int _mark = p->mark;
14015 int _resmark = p->mark;
14016 while (1) {
14017 int tmpvar_8 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
14018 if (tmpvar_8) {
14019 D(p->level--);
14020 return _res;
14021 }
14022 p->mark = _mark;
14023 void *_raw = t_primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020014024 if (p->error_indicator)
14025 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014026 if (_raw == NULL || p->mark <= _resmark)
14027 break;
14028 _resmark = p->mark;
14029 _res = _raw;
14030 }
14031 p->mark = _resmark;
14032 D(p->level--);
14033 return _res;
14034}
14035static expr_ty
14036t_primary_raw(Parser *p)
14037{
14038 D(p->level++);
14039 if (p->error_indicator) {
14040 D(p->level--);
14041 return NULL;
14042 }
14043 expr_ty _res = NULL;
14044 int _mark = p->mark;
14045 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14046 p->error_indicator = 1;
14047 D(p->level--);
14048 return NULL;
14049 }
14050 int _start_lineno = p->tokens[_mark]->lineno;
14051 UNUSED(_start_lineno); // Only used by EXTRA macro
14052 int _start_col_offset = p->tokens[_mark]->col_offset;
14053 UNUSED(_start_col_offset); // Only used by EXTRA macro
14054 { // t_primary '.' NAME &t_lookahead
14055 if (p->error_indicator) {
14056 D(p->level--);
14057 return NULL;
14058 }
14059 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
14060 Token * _literal;
14061 expr_ty a;
14062 expr_ty b;
14063 if (
14064 (a = t_primary_rule(p)) // t_primary
14065 &&
14066 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
14067 &&
14068 (b = _PyPegen_name_token(p)) // NAME
14069 &&
14070 _PyPegen_lookahead(1, t_lookahead_rule, p)
14071 )
14072 {
14073 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
14074 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14075 if (_token == NULL) {
14076 D(p->level--);
14077 return NULL;
14078 }
14079 int _end_lineno = _token->end_lineno;
14080 UNUSED(_end_lineno); // Only used by EXTRA macro
14081 int _end_col_offset = _token->end_col_offset;
14082 UNUSED(_end_col_offset); // Only used by EXTRA macro
14083 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
14084 if (_res == NULL && PyErr_Occurred()) {
14085 p->error_indicator = 1;
14086 D(p->level--);
14087 return NULL;
14088 }
14089 goto done;
14090 }
14091 p->mark = _mark;
14092 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14093 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
14094 }
14095 { // t_primary '[' slices ']' &t_lookahead
14096 if (p->error_indicator) {
14097 D(p->level--);
14098 return NULL;
14099 }
14100 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
14101 Token * _literal;
14102 Token * _literal_1;
14103 expr_ty a;
14104 expr_ty b;
14105 if (
14106 (a = t_primary_rule(p)) // t_primary
14107 &&
14108 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14109 &&
14110 (b = slices_rule(p)) // slices
14111 &&
14112 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14113 &&
14114 _PyPegen_lookahead(1, t_lookahead_rule, p)
14115 )
14116 {
14117 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
14118 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14119 if (_token == NULL) {
14120 D(p->level--);
14121 return NULL;
14122 }
14123 int _end_lineno = _token->end_lineno;
14124 UNUSED(_end_lineno); // Only used by EXTRA macro
14125 int _end_col_offset = _token->end_col_offset;
14126 UNUSED(_end_col_offset); // Only used by EXTRA macro
14127 _res = _Py_Subscript ( a , b , Load , EXTRA );
14128 if (_res == NULL && PyErr_Occurred()) {
14129 p->error_indicator = 1;
14130 D(p->level--);
14131 return NULL;
14132 }
14133 goto done;
14134 }
14135 p->mark = _mark;
14136 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14137 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
14138 }
14139 { // t_primary genexp &t_lookahead
14140 if (p->error_indicator) {
14141 D(p->level--);
14142 return NULL;
14143 }
14144 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
14145 expr_ty a;
14146 expr_ty b;
14147 if (
14148 (a = t_primary_rule(p)) // t_primary
14149 &&
14150 (b = genexp_rule(p)) // genexp
14151 &&
14152 _PyPegen_lookahead(1, t_lookahead_rule, p)
14153 )
14154 {
14155 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
14156 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14157 if (_token == NULL) {
14158 D(p->level--);
14159 return NULL;
14160 }
14161 int _end_lineno = _token->end_lineno;
14162 UNUSED(_end_lineno); // Only used by EXTRA macro
14163 int _end_col_offset = _token->end_col_offset;
14164 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030014165 _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 +010014166 if (_res == NULL && PyErr_Occurred()) {
14167 p->error_indicator = 1;
14168 D(p->level--);
14169 return NULL;
14170 }
14171 goto done;
14172 }
14173 p->mark = _mark;
14174 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
14176 }
14177 { // t_primary '(' arguments? ')' &t_lookahead
14178 if (p->error_indicator) {
14179 D(p->level--);
14180 return NULL;
14181 }
14182 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
14183 Token * _literal;
14184 Token * _literal_1;
14185 expr_ty a;
14186 void *b;
14187 if (
14188 (a = t_primary_rule(p)) // t_primary
14189 &&
14190 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14191 &&
14192 (b = arguments_rule(p), 1) // arguments?
14193 &&
14194 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14195 &&
14196 _PyPegen_lookahead(1, t_lookahead_rule, p)
14197 )
14198 {
14199 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
14200 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14201 if (_token == NULL) {
14202 D(p->level--);
14203 return NULL;
14204 }
14205 int _end_lineno = _token->end_lineno;
14206 UNUSED(_end_lineno); // Only used by EXTRA macro
14207 int _end_col_offset = _token->end_col_offset;
14208 UNUSED(_end_col_offset); // Only used by EXTRA macro
14209 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
14210 if (_res == NULL && PyErr_Occurred()) {
14211 p->error_indicator = 1;
14212 D(p->level--);
14213 return NULL;
14214 }
14215 goto done;
14216 }
14217 p->mark = _mark;
14218 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14219 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
14220 }
14221 { // atom &t_lookahead
14222 if (p->error_indicator) {
14223 D(p->level--);
14224 return NULL;
14225 }
14226 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
14227 expr_ty a;
14228 if (
14229 (a = atom_rule(p)) // atom
14230 &&
14231 _PyPegen_lookahead(1, t_lookahead_rule, p)
14232 )
14233 {
14234 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
14235 _res = a;
14236 if (_res == NULL && PyErr_Occurred()) {
14237 p->error_indicator = 1;
14238 D(p->level--);
14239 return NULL;
14240 }
14241 goto done;
14242 }
14243 p->mark = _mark;
14244 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14245 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
14246 }
14247 _res = NULL;
14248 done:
14249 D(p->level--);
14250 return _res;
14251}
14252
14253// t_lookahead: '(' | '[' | '.'
14254static void *
14255t_lookahead_rule(Parser *p)
14256{
14257 D(p->level++);
14258 if (p->error_indicator) {
14259 D(p->level--);
14260 return NULL;
14261 }
14262 void * _res = NULL;
14263 int _mark = p->mark;
14264 { // '('
14265 if (p->error_indicator) {
14266 D(p->level--);
14267 return NULL;
14268 }
14269 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
14270 Token * _literal;
14271 if (
14272 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14273 )
14274 {
14275 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
14276 _res = _literal;
14277 goto done;
14278 }
14279 p->mark = _mark;
14280 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14281 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
14282 }
14283 { // '['
14284 if (p->error_indicator) {
14285 D(p->level--);
14286 return NULL;
14287 }
14288 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
14289 Token * _literal;
14290 if (
14291 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14292 )
14293 {
14294 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
14295 _res = _literal;
14296 goto done;
14297 }
14298 p->mark = _mark;
14299 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14300 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
14301 }
14302 { // '.'
14303 if (p->error_indicator) {
14304 D(p->level--);
14305 return NULL;
14306 }
14307 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
14308 Token * _literal;
14309 if (
14310 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
14311 )
14312 {
14313 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
14314 _res = _literal;
14315 goto done;
14316 }
14317 p->mark = _mark;
14318 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14319 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
14320 }
14321 _res = NULL;
14322 done:
14323 D(p->level--);
14324 return _res;
14325}
14326
14327// t_atom: NAME | '(' target ')' | '(' targets? ')' | '[' targets? ']'
14328static expr_ty
14329t_atom_rule(Parser *p)
14330{
14331 D(p->level++);
14332 if (p->error_indicator) {
14333 D(p->level--);
14334 return NULL;
14335 }
14336 expr_ty _res = NULL;
14337 int _mark = p->mark;
14338 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14339 p->error_indicator = 1;
14340 D(p->level--);
14341 return NULL;
14342 }
14343 int _start_lineno = p->tokens[_mark]->lineno;
14344 UNUSED(_start_lineno); // Only used by EXTRA macro
14345 int _start_col_offset = p->tokens[_mark]->col_offset;
14346 UNUSED(_start_col_offset); // Only used by EXTRA macro
14347 { // NAME
14348 if (p->error_indicator) {
14349 D(p->level--);
14350 return NULL;
14351 }
14352 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
14353 expr_ty a;
14354 if (
14355 (a = _PyPegen_name_token(p)) // NAME
14356 )
14357 {
14358 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
14359 _res = _PyPegen_set_expr_context ( p , a , Store );
14360 if (_res == NULL && PyErr_Occurred()) {
14361 p->error_indicator = 1;
14362 D(p->level--);
14363 return NULL;
14364 }
14365 goto done;
14366 }
14367 p->mark = _mark;
14368 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14369 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
14370 }
14371 { // '(' target ')'
14372 if (p->error_indicator) {
14373 D(p->level--);
14374 return NULL;
14375 }
14376 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
14377 Token * _literal;
14378 Token * _literal_1;
14379 expr_ty a;
14380 if (
14381 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14382 &&
14383 (a = target_rule(p)) // target
14384 &&
14385 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14386 )
14387 {
14388 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
14389 _res = _PyPegen_set_expr_context ( p , a , Store );
14390 if (_res == NULL && PyErr_Occurred()) {
14391 p->error_indicator = 1;
14392 D(p->level--);
14393 return NULL;
14394 }
14395 goto done;
14396 }
14397 p->mark = _mark;
14398 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14399 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target ')'"));
14400 }
14401 { // '(' targets? ')'
14402 if (p->error_indicator) {
14403 D(p->level--);
14404 return NULL;
14405 }
14406 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
14407 Token * _literal;
14408 Token * _literal_1;
14409 void *b;
14410 if (
14411 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14412 &&
14413 (b = targets_rule(p), 1) // targets?
14414 &&
14415 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14416 )
14417 {
14418 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
14419 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14420 if (_token == NULL) {
14421 D(p->level--);
14422 return NULL;
14423 }
14424 int _end_lineno = _token->end_lineno;
14425 UNUSED(_end_lineno); // Only used by EXTRA macro
14426 int _end_col_offset = _token->end_col_offset;
14427 UNUSED(_end_col_offset); // Only used by EXTRA macro
14428 _res = _Py_Tuple ( b , Store , EXTRA );
14429 if (_res == NULL && PyErr_Occurred()) {
14430 p->error_indicator = 1;
14431 D(p->level--);
14432 return NULL;
14433 }
14434 goto done;
14435 }
14436 p->mark = _mark;
14437 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' targets? ')'"));
14439 }
14440 { // '[' targets? ']'
14441 if (p->error_indicator) {
14442 D(p->level--);
14443 return NULL;
14444 }
14445 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
14446 Token * _literal;
14447 Token * _literal_1;
14448 void *b;
14449 if (
14450 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14451 &&
14452 (b = targets_rule(p), 1) // targets?
14453 &&
14454 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14455 )
14456 {
14457 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
14458 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14459 if (_token == NULL) {
14460 D(p->level--);
14461 return NULL;
14462 }
14463 int _end_lineno = _token->end_lineno;
14464 UNUSED(_end_lineno); // Only used by EXTRA macro
14465 int _end_col_offset = _token->end_col_offset;
14466 UNUSED(_end_col_offset); // Only used by EXTRA macro
14467 _res = _Py_List ( b , Store , EXTRA );
14468 if (_res == NULL && PyErr_Occurred()) {
14469 p->error_indicator = 1;
14470 D(p->level--);
14471 return NULL;
14472 }
14473 goto done;
14474 }
14475 p->mark = _mark;
14476 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14477 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' targets? ']'"));
14478 }
14479 _res = NULL;
14480 done:
14481 D(p->level--);
14482 return _res;
14483}
14484
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014485// invalid_arguments:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014486// | args ',' '*'
14487// | expression for_if_clauses ',' [args | expression for_if_clauses]
14488// | args for_if_clauses
14489// | args ',' expression for_if_clauses
14490// | args ',' args
14491static void *
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014492invalid_arguments_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014493{
14494 D(p->level++);
14495 if (p->error_indicator) {
14496 D(p->level--);
14497 return NULL;
14498 }
14499 void * _res = NULL;
14500 int _mark = p->mark;
14501 { // args ',' '*'
14502 if (p->error_indicator) {
14503 D(p->level--);
14504 return NULL;
14505 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014506 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014507 Token * _literal;
14508 Token * _literal_1;
14509 expr_ty args_var;
14510 if (
14511 (args_var = args_rule(p)) // args
14512 &&
14513 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14514 &&
14515 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
14516 )
14517 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014518 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014519 _res = RAISE_SYNTAX_ERROR ( "iterable argument unpacking follows keyword argument unpacking" );
14520 if (_res == NULL && PyErr_Occurred()) {
14521 p->error_indicator = 1;
14522 D(p->level--);
14523 return NULL;
14524 }
14525 goto done;
14526 }
14527 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014528 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014529 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
14530 }
14531 { // expression for_if_clauses ',' [args | expression for_if_clauses]
14532 if (p->error_indicator) {
14533 D(p->level--);
14534 return NULL;
14535 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014536 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 +010014537 Token * _literal;
14538 void *_opt_var;
14539 UNUSED(_opt_var); // Silence compiler warnings
14540 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014541 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014542 if (
14543 (a = expression_rule(p)) // expression
14544 &&
14545 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14546 &&
14547 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14548 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014549 (_opt_var = _tmp_126_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014550 )
14551 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014552 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 +010014553 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
14554 if (_res == NULL && PyErr_Occurred()) {
14555 p->error_indicator = 1;
14556 D(p->level--);
14557 return NULL;
14558 }
14559 goto done;
14560 }
14561 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014562 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014563 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
14564 }
14565 { // args for_if_clauses
14566 if (p->error_indicator) {
14567 D(p->level--);
14568 return NULL;
14569 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014570 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 +010014571 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014572 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014573 if (
14574 (a = args_rule(p)) // args
14575 &&
14576 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14577 )
14578 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014579 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 +010014580 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
14581 if (_res == NULL && PyErr_Occurred()) {
14582 p->error_indicator = 1;
14583 D(p->level--);
14584 return NULL;
14585 }
14586 goto done;
14587 }
14588 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014589 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014590 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
14591 }
14592 { // args ',' expression for_if_clauses
14593 if (p->error_indicator) {
14594 D(p->level--);
14595 return NULL;
14596 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014597 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 +010014598 Token * _literal;
14599 expr_ty a;
14600 expr_ty args_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014601 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014602 if (
14603 (args_var = args_rule(p)) // args
14604 &&
14605 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14606 &&
14607 (a = expression_rule(p)) // expression
14608 &&
14609 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14610 )
14611 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014612 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 +010014613 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
14614 if (_res == NULL && PyErr_Occurred()) {
14615 p->error_indicator = 1;
14616 D(p->level--);
14617 return NULL;
14618 }
14619 goto done;
14620 }
14621 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014622 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014623 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
14624 }
14625 { // args ',' args
14626 if (p->error_indicator) {
14627 D(p->level--);
14628 return NULL;
14629 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014630 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014631 Token * _literal;
14632 expr_ty a;
14633 expr_ty args_var;
14634 if (
14635 (a = args_rule(p)) // args
14636 &&
14637 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14638 &&
14639 (args_var = args_rule(p)) // args
14640 )
14641 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014642 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 +010014643 _res = _PyPegen_arguments_parsing_error ( p , a );
14644 if (_res == NULL && PyErr_Occurred()) {
14645 p->error_indicator = 1;
14646 D(p->level--);
14647 return NULL;
14648 }
14649 goto done;
14650 }
14651 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014652 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014653 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
14654 }
14655 _res = NULL;
14656 done:
14657 D(p->level--);
14658 return _res;
14659}
14660
14661// invalid_kwarg: expression '='
14662static void *
14663invalid_kwarg_rule(Parser *p)
14664{
14665 D(p->level++);
14666 if (p->error_indicator) {
14667 D(p->level--);
14668 return NULL;
14669 }
14670 void * _res = NULL;
14671 int _mark = p->mark;
14672 { // expression '='
14673 if (p->error_indicator) {
14674 D(p->level--);
14675 return NULL;
14676 }
14677 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression '='"));
Pablo Galindo43c4fb62020-12-13 16:46:48 +000014678 Token * a;
14679 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014680 if (
Pablo Galindo43c4fb62020-12-13 16:46:48 +000014681 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014682 &&
Pablo Galindo43c4fb62020-12-13 16:46:48 +000014683 (a = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014684 )
14685 {
14686 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression '='"));
14687 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression cannot contain assignment, perhaps you meant \"==\"?" );
14688 if (_res == NULL && PyErr_Occurred()) {
14689 p->error_indicator = 1;
14690 D(p->level--);
14691 return NULL;
14692 }
14693 goto done;
14694 }
14695 p->mark = _mark;
14696 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
14697 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression '='"));
14698 }
14699 _res = NULL;
14700 done:
14701 D(p->level--);
14702 return _res;
14703}
14704
14705// invalid_named_expression: expression ':=' expression
14706static void *
14707invalid_named_expression_rule(Parser *p)
14708{
14709 D(p->level++);
14710 if (p->error_indicator) {
14711 D(p->level--);
14712 return NULL;
14713 }
14714 void * _res = NULL;
14715 int _mark = p->mark;
14716 { // expression ':=' expression
14717 if (p->error_indicator) {
14718 D(p->level--);
14719 return NULL;
14720 }
14721 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
14722 Token * _literal;
14723 expr_ty a;
14724 expr_ty expression_var;
14725 if (
14726 (a = expression_rule(p)) // expression
14727 &&
14728 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
14729 &&
14730 (expression_var = expression_rule(p)) // expression
14731 )
14732 {
14733 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
14734 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
14735 if (_res == NULL && PyErr_Occurred()) {
14736 p->error_indicator = 1;
14737 D(p->level--);
14738 return NULL;
14739 }
14740 goto done;
14741 }
14742 p->mark = _mark;
14743 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
14744 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
14745 }
14746 _res = NULL;
14747 done:
14748 D(p->level--);
14749 return _res;
14750}
14751
14752// invalid_assignment:
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014753// | invalid_ann_assign_target ':' expression
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014754// | star_named_expression ',' star_named_expressions* ':' expression
14755// | expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014756// | ((star_targets '='))* star_expressions '='
14757// | ((star_targets '='))* yield_expr '='
14758// | star_expressions augassign (yield_expr | star_expressions)
14759static void *
14760invalid_assignment_rule(Parser *p)
14761{
14762 D(p->level++);
14763 if (p->error_indicator) {
14764 D(p->level--);
14765 return NULL;
14766 }
14767 void * _res = NULL;
14768 int _mark = p->mark;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014769 { // invalid_ann_assign_target ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014770 if (p->error_indicator) {
14771 D(p->level--);
14772 return NULL;
14773 }
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014774 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 +010014775 Token * _literal;
14776 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014777 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014778 if (
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014779 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014780 &&
14781 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014782 &&
14783 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014784 )
14785 {
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014786 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
14787 _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 +010014788 if (_res == NULL && PyErr_Occurred()) {
14789 p->error_indicator = 1;
14790 D(p->level--);
14791 return NULL;
14792 }
14793 goto done;
14794 }
14795 p->mark = _mark;
14796 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014797 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014798 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014799 { // star_named_expression ',' star_named_expressions* ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014800 if (p->error_indicator) {
14801 D(p->level--);
14802 return NULL;
14803 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014804 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 +010014805 Token * _literal;
14806 Token * _literal_1;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014807 asdl_seq * _loop0_127_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014808 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014809 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014810 if (
14811 (a = star_named_expression_rule(p)) // star_named_expression
14812 &&
14813 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14814 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014815 (_loop0_127_var = _loop0_127_rule(p)) // star_named_expressions*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014816 &&
14817 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014818 &&
14819 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014820 )
14821 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014822 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 +010014823 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
14824 if (_res == NULL && PyErr_Occurred()) {
14825 p->error_indicator = 1;
14826 D(p->level--);
14827 return NULL;
14828 }
14829 goto done;
14830 }
14831 p->mark = _mark;
14832 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014833 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014834 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014835 { // expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014836 if (p->error_indicator) {
14837 D(p->level--);
14838 return NULL;
14839 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014840 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014841 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014842 expr_ty a;
14843 expr_ty expression_var;
14844 if (
14845 (a = expression_rule(p)) // expression
14846 &&
14847 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
14848 &&
14849 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014850 )
14851 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014852 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 +010014853 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
14854 if (_res == NULL && PyErr_Occurred()) {
14855 p->error_indicator = 1;
14856 D(p->level--);
14857 return NULL;
14858 }
14859 goto done;
14860 }
14861 p->mark = _mark;
14862 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014863 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014864 }
14865 { // ((star_targets '='))* star_expressions '='
14866 if (p->error_indicator) {
14867 D(p->level--);
14868 return NULL;
14869 }
14870 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
14871 Token * _literal;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014872 asdl_seq * _loop0_128_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014873 expr_ty a;
14874 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014875 (_loop0_128_var = _loop0_128_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014876 &&
14877 (a = star_expressions_rule(p)) // star_expressions
14878 &&
14879 (_literal = _PyPegen_expect_token(p, 22)) // token='='
14880 )
14881 {
14882 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 +030014883 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014884 if (_res == NULL && PyErr_Occurred()) {
14885 p->error_indicator = 1;
14886 D(p->level--);
14887 return NULL;
14888 }
14889 goto done;
14890 }
14891 p->mark = _mark;
14892 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14893 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
14894 }
14895 { // ((star_targets '='))* yield_expr '='
14896 if (p->error_indicator) {
14897 D(p->level--);
14898 return NULL;
14899 }
14900 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14901 Token * _literal;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014902 asdl_seq * _loop0_129_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014903 expr_ty a;
14904 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014905 (_loop0_129_var = _loop0_129_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014906 &&
14907 (a = yield_expr_rule(p)) // yield_expr
14908 &&
14909 (_literal = _PyPegen_expect_token(p, 22)) // token='='
14910 )
14911 {
14912 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14913 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
14914 if (_res == NULL && PyErr_Occurred()) {
14915 p->error_indicator = 1;
14916 D(p->level--);
14917 return NULL;
14918 }
14919 goto done;
14920 }
14921 p->mark = _mark;
14922 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14923 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14924 }
14925 { // star_expressions augassign (yield_expr | star_expressions)
14926 if (p->error_indicator) {
14927 D(p->level--);
14928 return NULL;
14929 }
14930 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 +020014931 void *_tmp_130_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014932 expr_ty a;
14933 AugOperator* augassign_var;
14934 if (
14935 (a = star_expressions_rule(p)) // star_expressions
14936 &&
14937 (augassign_var = augassign_rule(p)) // augassign
14938 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014939 (_tmp_130_var = _tmp_130_rule(p)) // yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014940 )
14941 {
14942 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
14943 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
14944 if (_res == NULL && PyErr_Occurred()) {
14945 p->error_indicator = 1;
14946 D(p->level--);
14947 return NULL;
14948 }
14949 goto done;
14950 }
14951 p->mark = _mark;
14952 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14953 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
14954 }
14955 _res = NULL;
14956 done:
14957 D(p->level--);
14958 return _res;
14959}
14960
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014961// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
14962static expr_ty
14963invalid_ann_assign_target_rule(Parser *p)
14964{
14965 D(p->level++);
14966 if (p->error_indicator) {
14967 D(p->level--);
14968 return NULL;
14969 }
14970 expr_ty _res = NULL;
14971 int _mark = p->mark;
14972 { // list
14973 if (p->error_indicator) {
14974 D(p->level--);
14975 return NULL;
14976 }
14977 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
14978 expr_ty list_var;
14979 if (
14980 (list_var = list_rule(p)) // list
14981 )
14982 {
14983 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
14984 _res = list_var;
14985 goto done;
14986 }
14987 p->mark = _mark;
14988 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
14989 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
14990 }
14991 { // tuple
14992 if (p->error_indicator) {
14993 D(p->level--);
14994 return NULL;
14995 }
14996 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
14997 expr_ty tuple_var;
14998 if (
14999 (tuple_var = tuple_rule(p)) // tuple
15000 )
15001 {
15002 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
15003 _res = tuple_var;
15004 goto done;
15005 }
15006 p->mark = _mark;
15007 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
15008 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
15009 }
15010 { // '(' invalid_ann_assign_target ')'
15011 if (p->error_indicator) {
15012 D(p->level--);
15013 return NULL;
15014 }
15015 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
15016 Token * _literal;
15017 Token * _literal_1;
15018 expr_ty a;
15019 if (
15020 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15021 &&
15022 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
15023 &&
15024 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15025 )
15026 {
15027 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
15028 _res = a;
15029 if (_res == NULL && PyErr_Occurred()) {
15030 p->error_indicator = 1;
15031 D(p->level--);
15032 return NULL;
15033 }
15034 goto done;
15035 }
15036 p->mark = _mark;
15037 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
15038 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
15039 }
15040 _res = NULL;
15041 done:
15042 D(p->level--);
15043 return _res;
15044}
15045
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015046// invalid_del_stmt: 'del' star_expressions
15047static void *
15048invalid_del_stmt_rule(Parser *p)
15049{
15050 D(p->level++);
15051 if (p->error_indicator) {
15052 D(p->level--);
15053 return NULL;
15054 }
15055 void * _res = NULL;
15056 int _mark = p->mark;
15057 { // 'del' star_expressions
15058 if (p->error_indicator) {
15059 D(p->level--);
15060 return NULL;
15061 }
15062 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
15063 Token * _keyword;
15064 expr_ty a;
15065 if (
15066 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
15067 &&
15068 (a = star_expressions_rule(p)) // star_expressions
15069 )
15070 {
15071 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 +030015072 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015073 if (_res == NULL && PyErr_Occurred()) {
15074 p->error_indicator = 1;
15075 D(p->level--);
15076 return NULL;
15077 }
15078 goto done;
15079 }
15080 p->mark = _mark;
15081 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
15082 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
15083 }
15084 _res = NULL;
15085 done:
15086 D(p->level--);
15087 return _res;
15088}
15089
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015090// invalid_block: NEWLINE !INDENT
15091static void *
15092invalid_block_rule(Parser *p)
15093{
15094 D(p->level++);
15095 if (p->error_indicator) {
15096 D(p->level--);
15097 return NULL;
15098 }
15099 void * _res = NULL;
15100 int _mark = p->mark;
15101 { // NEWLINE !INDENT
15102 if (p->error_indicator) {
15103 D(p->level--);
15104 return NULL;
15105 }
15106 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
15107 Token * newline_var;
15108 if (
15109 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
15110 &&
15111 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
15112 )
15113 {
15114 D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
15115 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
15116 if (_res == NULL && PyErr_Occurred()) {
15117 p->error_indicator = 1;
15118 D(p->level--);
15119 return NULL;
15120 }
15121 goto done;
15122 }
15123 p->mark = _mark;
15124 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
15125 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
15126 }
15127 _res = NULL;
15128 done:
15129 D(p->level--);
15130 return _res;
15131}
15132
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020015133// Left-recursive
15134// invalid_primary: primary '{'
15135static void *
15136invalid_primary_rule(Parser *p)
15137{
15138 D(p->level++);
15139 if (p->error_indicator) {
15140 D(p->level--);
15141 return NULL;
15142 }
15143 void * _res = NULL;
15144 int _mark = p->mark;
15145 { // primary '{'
15146 if (p->error_indicator) {
15147 D(p->level--);
15148 return NULL;
15149 }
15150 D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
15151 Token * a;
15152 expr_ty primary_var;
15153 if (
15154 (primary_var = primary_rule(p)) // primary
15155 &&
15156 (a = _PyPegen_expect_token(p, 25)) // token='{'
15157 )
15158 {
15159 D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
15160 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
15161 if (_res == NULL && PyErr_Occurred()) {
15162 p->error_indicator = 1;
15163 D(p->level--);
15164 return NULL;
15165 }
15166 goto done;
15167 }
15168 p->mark = _mark;
15169 D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
15170 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
15171 }
15172 _res = NULL;
15173 done:
15174 D(p->level--);
15175 return _res;
15176}
15177
Pablo Galindo835f14f2021-01-31 22:52:56 +000015178// invalid_comprehension:
15179// | ('[' | '(' | '{') starred_expression for_if_clauses
15180// | ('[' | '{') star_named_expression ',' star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015181static void *
15182invalid_comprehension_rule(Parser *p)
15183{
15184 D(p->level++);
15185 if (p->error_indicator) {
15186 D(p->level--);
15187 return NULL;
15188 }
15189 void * _res = NULL;
15190 int _mark = p->mark;
15191 { // ('[' | '(' | '{') starred_expression for_if_clauses
15192 if (p->error_indicator) {
15193 D(p->level--);
15194 return NULL;
15195 }
15196 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 +020015197 void *_tmp_131_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015198 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015199 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015200 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015201 (_tmp_131_var = _tmp_131_rule(p)) // '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015202 &&
15203 (a = starred_expression_rule(p)) // starred_expression
15204 &&
15205 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
15206 )
15207 {
15208 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
15209 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
15210 if (_res == NULL && PyErr_Occurred()) {
15211 p->error_indicator = 1;
15212 D(p->level--);
15213 return NULL;
15214 }
15215 goto done;
15216 }
15217 p->mark = _mark;
15218 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
15219 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
15220 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000015221 { // ('[' | '{') star_named_expression ',' star_named_expressions?
15222 if (p->error_indicator) {
15223 D(p->level--);
15224 return NULL;
15225 }
15226 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions?"));
15227 Token * _literal;
15228 void *_opt_var;
15229 UNUSED(_opt_var); // Silence compiler warnings
15230 void *_tmp_132_var;
15231 expr_ty a;
15232 if (
15233 (_tmp_132_var = _tmp_132_rule(p)) // '[' | '{'
15234 &&
15235 (a = star_named_expression_rule(p)) // star_named_expression
15236 &&
15237 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15238 &&
15239 (_opt_var = star_named_expressions_rule(p), 1) // star_named_expressions?
15240 )
15241 {
15242 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions?"));
15243 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "did you forget parentheses around the comprehension target?" );
15244 if (_res == NULL && PyErr_Occurred()) {
15245 p->error_indicator = 1;
15246 D(p->level--);
15247 return NULL;
15248 }
15249 goto done;
15250 }
15251 p->mark = _mark;
15252 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
15253 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions?"));
15254 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015255 _res = NULL;
15256 done:
15257 D(p->level--);
15258 return _res;
15259}
15260
15261// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
15262static void *
15263invalid_dict_comprehension_rule(Parser *p)
15264{
15265 D(p->level++);
15266 if (p->error_indicator) {
15267 D(p->level--);
15268 return NULL;
15269 }
15270 void * _res = NULL;
15271 int _mark = p->mark;
15272 { // '{' '**' bitwise_or for_if_clauses '}'
15273 if (p->error_indicator) {
15274 D(p->level--);
15275 return NULL;
15276 }
15277 D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
15278 Token * _literal;
15279 Token * _literal_1;
15280 Token * a;
15281 expr_ty bitwise_or_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015282 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015283 if (
15284 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15285 &&
15286 (a = _PyPegen_expect_token(p, 35)) // token='**'
15287 &&
15288 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
15289 &&
15290 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
15291 &&
15292 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15293 )
15294 {
15295 D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
15296 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
15297 if (_res == NULL && PyErr_Occurred()) {
15298 p->error_indicator = 1;
15299 D(p->level--);
15300 return NULL;
15301 }
15302 goto done;
15303 }
15304 p->mark = _mark;
15305 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
15306 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
15307 }
15308 _res = NULL;
15309 done:
15310 D(p->level--);
15311 return _res;
15312}
15313
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015314// invalid_parameters: param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015315static void *
15316invalid_parameters_rule(Parser *p)
15317{
15318 D(p->level++);
15319 if (p->error_indicator) {
15320 D(p->level--);
15321 return NULL;
15322 }
15323 void * _res = NULL;
15324 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015325 { // param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015326 if (p->error_indicator) {
15327 D(p->level--);
15328 return NULL;
15329 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015330 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 +000015331 asdl_seq * _loop0_133_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015332 void *invalid_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015333 arg_ty param_no_default_var;
15334 if (
Pablo Galindo835f14f2021-01-31 22:52:56 +000015335 (_loop0_133_var = _loop0_133_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015336 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015337 (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015338 &&
15339 (param_no_default_var = param_no_default_rule(p)) // param_no_default
15340 )
15341 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015342 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 +010015343 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
15344 if (_res == NULL && PyErr_Occurred()) {
15345 p->error_indicator = 1;
15346 D(p->level--);
15347 return NULL;
15348 }
15349 goto done;
15350 }
15351 p->mark = _mark;
15352 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
15354 }
15355 _res = NULL;
15356 done:
15357 D(p->level--);
15358 return _res;
15359}
15360
15361// invalid_parameters_helper: slash_with_default | param_with_default+
15362static void *
15363invalid_parameters_helper_rule(Parser *p)
15364{
15365 D(p->level++);
15366 if (p->error_indicator) {
15367 D(p->level--);
15368 return NULL;
15369 }
15370 void * _res = NULL;
15371 int _mark = p->mark;
15372 { // slash_with_default
15373 if (p->error_indicator) {
15374 D(p->level--);
15375 return NULL;
15376 }
15377 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
15378 SlashWithDefault* a;
15379 if (
15380 (a = slash_with_default_rule(p)) // slash_with_default
15381 )
15382 {
15383 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
15384 _res = _PyPegen_singleton_seq ( p , a );
15385 if (_res == NULL && PyErr_Occurred()) {
15386 p->error_indicator = 1;
15387 D(p->level--);
15388 return NULL;
15389 }
15390 goto done;
15391 }
15392 p->mark = _mark;
15393 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
15394 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
15395 }
15396 { // param_with_default+
15397 if (p->error_indicator) {
15398 D(p->level--);
15399 return NULL;
15400 }
15401 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 +000015402 asdl_seq * _loop1_134_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015403 if (
Pablo Galindo835f14f2021-01-31 22:52:56 +000015404 (_loop1_134_var = _loop1_134_rule(p)) // param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015405 )
15406 {
15407 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 +000015408 _res = _loop1_134_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015409 goto done;
15410 }
15411 p->mark = _mark;
15412 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
15413 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015414 }
15415 _res = NULL;
15416 done:
15417 D(p->level--);
15418 return _res;
15419}
15420
15421// invalid_lambda_parameters:
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015422// | lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015423static void *
15424invalid_lambda_parameters_rule(Parser *p)
15425{
15426 D(p->level++);
15427 if (p->error_indicator) {
15428 D(p->level--);
15429 return NULL;
15430 }
15431 void * _res = NULL;
15432 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015433 { // lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015434 if (p->error_indicator) {
15435 D(p->level--);
15436 return NULL;
15437 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015438 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 +000015439 asdl_seq * _loop0_135_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015440 void *invalid_lambda_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015441 arg_ty lambda_param_no_default_var;
15442 if (
Pablo Galindo835f14f2021-01-31 22:52:56 +000015443 (_loop0_135_var = _loop0_135_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015444 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015445 (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015446 &&
15447 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
15448 )
15449 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015450 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 +010015451 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
15452 if (_res == NULL && PyErr_Occurred()) {
15453 p->error_indicator = 1;
15454 D(p->level--);
15455 return NULL;
15456 }
15457 goto done;
15458 }
15459 p->mark = _mark;
15460 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015461 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
15462 }
15463 _res = NULL;
15464 done:
15465 D(p->level--);
15466 return _res;
15467}
15468
15469// invalid_lambda_parameters_helper:
15470// | lambda_slash_with_default
15471// | lambda_param_with_default+
15472static void *
15473invalid_lambda_parameters_helper_rule(Parser *p)
15474{
15475 D(p->level++);
15476 if (p->error_indicator) {
15477 D(p->level--);
15478 return NULL;
15479 }
15480 void * _res = NULL;
15481 int _mark = p->mark;
15482 { // lambda_slash_with_default
15483 if (p->error_indicator) {
15484 D(p->level--);
15485 return NULL;
15486 }
15487 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
15488 SlashWithDefault* a;
15489 if (
15490 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
15491 )
15492 {
15493 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
15494 _res = _PyPegen_singleton_seq ( p , a );
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_helper[%d-%d]: %s failed!\n", p->level, ' ',
15504 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
15505 }
15506 { // lambda_param_with_default+
15507 if (p->error_indicator) {
15508 D(p->level--);
15509 return NULL;
15510 }
15511 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 +000015512 asdl_seq * _loop1_136_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015513 if (
Pablo Galindo835f14f2021-01-31 22:52:56 +000015514 (_loop1_136_var = _loop1_136_rule(p)) // lambda_param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015515 )
15516 {
15517 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 +000015518 _res = _loop1_136_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015519 goto done;
15520 }
15521 p->mark = _mark;
15522 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
15523 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015524 }
15525 _res = NULL;
15526 done:
15527 D(p->level--);
15528 return _res;
15529}
15530
15531// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
15532static void *
15533invalid_star_etc_rule(Parser *p)
15534{
15535 D(p->level++);
15536 if (p->error_indicator) {
15537 D(p->level--);
15538 return NULL;
15539 }
15540 void * _res = NULL;
15541 int _mark = p->mark;
15542 { // '*' (')' | ',' (')' | '**'))
15543 if (p->error_indicator) {
15544 D(p->level--);
15545 return NULL;
15546 }
15547 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
15548 Token * _literal;
Pablo Galindo835f14f2021-01-31 22:52:56 +000015549 void *_tmp_137_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015550 if (
15551 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15552 &&
Pablo Galindo835f14f2021-01-31 22:52:56 +000015553 (_tmp_137_var = _tmp_137_rule(p)) // ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015554 )
15555 {
15556 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
15557 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15558 if (_res == NULL && PyErr_Occurred()) {
15559 p->error_indicator = 1;
15560 D(p->level--);
15561 return NULL;
15562 }
15563 goto done;
15564 }
15565 p->mark = _mark;
15566 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15567 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
15568 }
15569 { // '*' ',' TYPE_COMMENT
15570 if (p->error_indicator) {
15571 D(p->level--);
15572 return NULL;
15573 }
15574 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
15575 Token * _literal;
15576 Token * _literal_1;
15577 Token * type_comment_var;
15578 if (
15579 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15580 &&
15581 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
15582 &&
15583 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
15584 )
15585 {
15586 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
15587 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
15588 if (_res == NULL && PyErr_Occurred()) {
15589 p->error_indicator = 1;
15590 D(p->level--);
15591 return NULL;
15592 }
15593 goto done;
15594 }
15595 p->mark = _mark;
15596 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
15598 }
15599 _res = NULL;
15600 done:
15601 D(p->level--);
15602 return _res;
15603}
15604
15605// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
15606static void *
15607invalid_lambda_star_etc_rule(Parser *p)
15608{
15609 D(p->level++);
15610 if (p->error_indicator) {
15611 D(p->level--);
15612 return NULL;
15613 }
15614 void * _res = NULL;
15615 int _mark = p->mark;
15616 { // '*' (':' | ',' (':' | '**'))
15617 if (p->error_indicator) {
15618 D(p->level--);
15619 return NULL;
15620 }
15621 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
15622 Token * _literal;
Pablo Galindo835f14f2021-01-31 22:52:56 +000015623 void *_tmp_138_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015624 if (
15625 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15626 &&
Pablo Galindo835f14f2021-01-31 22:52:56 +000015627 (_tmp_138_var = _tmp_138_rule(p)) // ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015628 )
15629 {
15630 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
15631 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15632 if (_res == NULL && PyErr_Occurred()) {
15633 p->error_indicator = 1;
15634 D(p->level--);
15635 return NULL;
15636 }
15637 goto done;
15638 }
15639 p->mark = _mark;
15640 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15641 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
15642 }
15643 _res = NULL;
15644 done:
15645 D(p->level--);
15646 return _res;
15647}
15648
15649// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
15650static void *
15651invalid_double_type_comments_rule(Parser *p)
15652{
15653 D(p->level++);
15654 if (p->error_indicator) {
15655 D(p->level--);
15656 return NULL;
15657 }
15658 void * _res = NULL;
15659 int _mark = p->mark;
15660 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
15661 if (p->error_indicator) {
15662 D(p->level--);
15663 return NULL;
15664 }
15665 D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
15666 Token * indent_var;
15667 Token * newline_var;
15668 Token * newline_var_1;
15669 Token * type_comment_var;
15670 Token * type_comment_var_1;
15671 if (
15672 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
15673 &&
15674 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
15675 &&
15676 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
15677 &&
15678 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
15679 &&
15680 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
15681 )
15682 {
15683 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"));
15684 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
15685 if (_res == NULL && PyErr_Occurred()) {
15686 p->error_indicator = 1;
15687 D(p->level--);
15688 return NULL;
15689 }
15690 goto done;
15691 }
15692 p->mark = _mark;
15693 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
15694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
15695 }
15696 _res = NULL;
15697 done:
15698 D(p->level--);
15699 return _res;
15700}
15701
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015702// invalid_with_item: expression 'as' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015703static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015704invalid_with_item_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015705{
15706 D(p->level++);
15707 if (p->error_indicator) {
15708 D(p->level--);
15709 return NULL;
15710 }
15711 void * _res = NULL;
15712 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015713 { // expression 'as' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015714 if (p->error_indicator) {
15715 D(p->level--);
15716 return NULL;
15717 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015718 D(fprintf(stderr, "%*c> invalid_with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression 'as' expression"));
15719 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015720 expr_ty a;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015721 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015722 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015723 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015724 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015725 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
15726 &&
15727 (a = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015728 )
15729 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015730 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 +030015731 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015732 if (_res == NULL && PyErr_Occurred()) {
15733 p->error_indicator = 1;
15734 D(p->level--);
15735 return NULL;
15736 }
15737 goto done;
15738 }
15739 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015740 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
15741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression"));
15742 }
15743 _res = NULL;
15744 done:
15745 D(p->level--);
15746 return _res;
15747}
15748
15749// invalid_for_target: ASYNC? 'for' star_expressions
15750static void *
15751invalid_for_target_rule(Parser *p)
15752{
15753 D(p->level++);
15754 if (p->error_indicator) {
15755 D(p->level--);
15756 return NULL;
15757 }
15758 void * _res = NULL;
15759 int _mark = p->mark;
15760 { // ASYNC? 'for' star_expressions
15761 if (p->error_indicator) {
15762 D(p->level--);
15763 return NULL;
15764 }
15765 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
15766 Token * _keyword;
15767 void *_opt_var;
15768 UNUSED(_opt_var); // Silence compiler warnings
15769 expr_ty a;
15770 if (
15771 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
15772 &&
15773 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15774 &&
15775 (a = star_expressions_rule(p)) // star_expressions
15776 )
15777 {
15778 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 +030015779 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015780 if (_res == NULL && PyErr_Occurred()) {
15781 p->error_indicator = 1;
15782 D(p->level--);
15783 return NULL;
15784 }
15785 goto done;
15786 }
15787 p->mark = _mark;
15788 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
15789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
15790 }
15791 _res = NULL;
15792 done:
15793 D(p->level--);
15794 return _res;
15795}
15796
15797// invalid_group: '(' starred_expression ')'
15798static void *
15799invalid_group_rule(Parser *p)
15800{
15801 D(p->level++);
15802 if (p->error_indicator) {
15803 D(p->level--);
15804 return NULL;
15805 }
15806 void * _res = NULL;
15807 int _mark = p->mark;
15808 { // '(' starred_expression ')'
15809 if (p->error_indicator) {
15810 D(p->level--);
15811 return NULL;
15812 }
15813 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
15814 Token * _literal;
15815 Token * _literal_1;
15816 expr_ty a;
15817 if (
15818 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15819 &&
15820 (a = starred_expression_rule(p)) // starred_expression
15821 &&
15822 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15823 )
15824 {
15825 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
15826 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "can't use starred expression here" );
15827 if (_res == NULL && PyErr_Occurred()) {
15828 p->error_indicator = 1;
15829 D(p->level--);
15830 return NULL;
15831 }
15832 goto done;
15833 }
15834 p->mark = _mark;
15835 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
15836 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015837 }
15838 _res = NULL;
15839 done:
15840 D(p->level--);
15841 return _res;
15842}
15843
15844// invalid_import_from_targets: import_from_as_names ','
15845static void *
15846invalid_import_from_targets_rule(Parser *p)
15847{
15848 D(p->level++);
15849 if (p->error_indicator) {
15850 D(p->level--);
15851 return NULL;
15852 }
15853 void * _res = NULL;
15854 int _mark = p->mark;
15855 { // import_from_as_names ','
15856 if (p->error_indicator) {
15857 D(p->level--);
15858 return NULL;
15859 }
15860 D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
15861 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015862 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015863 if (
15864 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
15865 &&
15866 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15867 )
15868 {
15869 D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
15870 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
15871 if (_res == NULL && PyErr_Occurred()) {
15872 p->error_indicator = 1;
15873 D(p->level--);
15874 return NULL;
15875 }
15876 goto done;
15877 }
15878 p->mark = _mark;
15879 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
15880 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
15881 }
15882 _res = NULL;
15883 done:
15884 D(p->level--);
15885 return _res;
15886}
15887
15888// _loop0_1: NEWLINE
15889static asdl_seq *
15890_loop0_1_rule(Parser *p)
15891{
15892 D(p->level++);
15893 if (p->error_indicator) {
15894 D(p->level--);
15895 return NULL;
15896 }
15897 void *_res = NULL;
15898 int _mark = p->mark;
15899 int _start_mark = p->mark;
15900 void **_children = PyMem_Malloc(sizeof(void *));
15901 if (!_children) {
15902 p->error_indicator = 1;
15903 PyErr_NoMemory();
15904 D(p->level--);
15905 return NULL;
15906 }
15907 ssize_t _children_capacity = 1;
15908 ssize_t _n = 0;
15909 { // NEWLINE
15910 if (p->error_indicator) {
15911 D(p->level--);
15912 return NULL;
15913 }
15914 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
15915 Token * newline_var;
15916 while (
15917 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
15918 )
15919 {
15920 _res = newline_var;
15921 if (_n == _children_capacity) {
15922 _children_capacity *= 2;
15923 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15924 if (!_new_children) {
15925 p->error_indicator = 1;
15926 PyErr_NoMemory();
15927 D(p->level--);
15928 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000015929 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015930 _children = _new_children;
15931 }
15932 _children[_n++] = _res;
15933 _mark = p->mark;
15934 }
15935 p->mark = _mark;
15936 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
15937 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
15938 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015939 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015940 if (!_seq) {
15941 PyMem_Free(_children);
15942 p->error_indicator = 1;
15943 PyErr_NoMemory();
15944 D(p->level--);
15945 return NULL;
15946 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015947 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015948 PyMem_Free(_children);
15949 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
15950 D(p->level--);
15951 return _seq;
15952}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000015953
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015954// _loop0_2: NEWLINE
15955static asdl_seq *
15956_loop0_2_rule(Parser *p)
15957{
15958 D(p->level++);
15959 if (p->error_indicator) {
15960 D(p->level--);
15961 return NULL;
15962 }
15963 void *_res = NULL;
15964 int _mark = p->mark;
15965 int _start_mark = p->mark;
15966 void **_children = PyMem_Malloc(sizeof(void *));
15967 if (!_children) {
15968 p->error_indicator = 1;
15969 PyErr_NoMemory();
15970 D(p->level--);
15971 return NULL;
15972 }
15973 ssize_t _children_capacity = 1;
15974 ssize_t _n = 0;
15975 { // NEWLINE
15976 if (p->error_indicator) {
15977 D(p->level--);
15978 return NULL;
15979 }
15980 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
15981 Token * newline_var;
15982 while (
15983 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
15984 )
15985 {
15986 _res = newline_var;
15987 if (_n == _children_capacity) {
15988 _children_capacity *= 2;
15989 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15990 if (!_new_children) {
15991 p->error_indicator = 1;
15992 PyErr_NoMemory();
15993 D(p->level--);
15994 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000015995 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015996 _children = _new_children;
15997 }
15998 _children[_n++] = _res;
15999 _mark = p->mark;
16000 }
16001 p->mark = _mark;
16002 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
16003 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
16004 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016005 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016006 if (!_seq) {
16007 PyMem_Free(_children);
16008 p->error_indicator = 1;
16009 PyErr_NoMemory();
16010 D(p->level--);
16011 return NULL;
16012 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016013 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016014 PyMem_Free(_children);
16015 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
16016 D(p->level--);
16017 return _seq;
16018}
16019
16020// _loop0_4: ',' expression
16021static asdl_seq *
16022_loop0_4_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 { // ',' expression
16042 if (p->error_indicator) {
16043 D(p->level--);
16044 return NULL;
16045 }
16046 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
16047 Token * _literal;
16048 expr_ty elem;
16049 while (
16050 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16051 &&
16052 (elem = expression_rule(p)) // expression
16053 )
16054 {
16055 _res = elem;
16056 if (_res == NULL && PyErr_Occurred()) {
16057 p->error_indicator = 1;
16058 PyMem_Free(_children);
16059 D(p->level--);
16060 return NULL;
16061 }
16062 if (_n == _children_capacity) {
16063 _children_capacity *= 2;
16064 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16065 if (!_new_children) {
16066 p->error_indicator = 1;
16067 PyErr_NoMemory();
16068 D(p->level--);
16069 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016070 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016071 _children = _new_children;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016072 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016073 _children[_n++] = _res;
16074 _mark = p->mark;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016075 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016076 p->mark = _mark;
16077 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
16078 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016079 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016080 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016081 if (!_seq) {
16082 PyMem_Free(_children);
16083 p->error_indicator = 1;
16084 PyErr_NoMemory();
16085 D(p->level--);
16086 return NULL;
16087 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016088 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016089 PyMem_Free(_children);
16090 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
16091 D(p->level--);
16092 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016093}
16094
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016095// _gather_3: expression _loop0_4
16096static asdl_seq *
16097_gather_3_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016098{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016099 D(p->level++);
16100 if (p->error_indicator) {
16101 D(p->level--);
16102 return NULL;
16103 }
16104 asdl_seq * _res = NULL;
16105 int _mark = p->mark;
16106 { // expression _loop0_4
16107 if (p->error_indicator) {
16108 D(p->level--);
16109 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016110 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016111 D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
16112 expr_ty elem;
16113 asdl_seq * seq;
16114 if (
16115 (elem = expression_rule(p)) // expression
16116 &&
16117 (seq = _loop0_4_rule(p)) // _loop0_4
16118 )
16119 {
16120 D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
16121 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16122 goto done;
16123 }
16124 p->mark = _mark;
16125 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
16126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016127 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016128 _res = NULL;
16129 done:
16130 D(p->level--);
16131 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016132}
16133
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016134// _loop0_6: ',' expression
16135static asdl_seq *
16136_loop0_6_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016137{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016138 D(p->level++);
16139 if (p->error_indicator) {
16140 D(p->level--);
16141 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016142 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016143 void *_res = NULL;
16144 int _mark = p->mark;
16145 int _start_mark = p->mark;
16146 void **_children = PyMem_Malloc(sizeof(void *));
16147 if (!_children) {
16148 p->error_indicator = 1;
16149 PyErr_NoMemory();
16150 D(p->level--);
16151 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016152 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016153 ssize_t _children_capacity = 1;
16154 ssize_t _n = 0;
16155 { // ',' expression
16156 if (p->error_indicator) {
16157 D(p->level--);
16158 return NULL;
16159 }
16160 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
16161 Token * _literal;
16162 expr_ty elem;
16163 while (
16164 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16165 &&
16166 (elem = expression_rule(p)) // expression
16167 )
16168 {
16169 _res = elem;
16170 if (_res == NULL && PyErr_Occurred()) {
16171 p->error_indicator = 1;
16172 PyMem_Free(_children);
16173 D(p->level--);
16174 return NULL;
16175 }
16176 if (_n == _children_capacity) {
16177 _children_capacity *= 2;
16178 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16179 if (!_new_children) {
16180 p->error_indicator = 1;
16181 PyErr_NoMemory();
16182 D(p->level--);
16183 return NULL;
16184 }
16185 _children = _new_children;
16186 }
16187 _children[_n++] = _res;
16188 _mark = p->mark;
16189 }
16190 p->mark = _mark;
16191 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
16192 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
16193 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016194 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016195 if (!_seq) {
16196 PyMem_Free(_children);
16197 p->error_indicator = 1;
16198 PyErr_NoMemory();
16199 D(p->level--);
16200 return NULL;
16201 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016202 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016203 PyMem_Free(_children);
16204 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
16205 D(p->level--);
16206 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016207}
16208
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016209// _gather_5: expression _loop0_6
16210static asdl_seq *
16211_gather_5_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016212{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016213 D(p->level++);
16214 if (p->error_indicator) {
16215 D(p->level--);
16216 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016217 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016218 asdl_seq * _res = NULL;
16219 int _mark = p->mark;
16220 { // expression _loop0_6
16221 if (p->error_indicator) {
16222 D(p->level--);
16223 return NULL;
16224 }
16225 D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
16226 expr_ty elem;
16227 asdl_seq * seq;
16228 if (
16229 (elem = expression_rule(p)) // expression
16230 &&
16231 (seq = _loop0_6_rule(p)) // _loop0_6
16232 )
16233 {
16234 D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
16235 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16236 goto done;
16237 }
16238 p->mark = _mark;
16239 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
16240 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
16241 }
16242 _res = NULL;
16243 done:
16244 D(p->level--);
16245 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016246}
16247
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016248// _loop0_8: ',' expression
16249static asdl_seq *
16250_loop0_8_rule(Parser *p)
16251{
16252 D(p->level++);
16253 if (p->error_indicator) {
16254 D(p->level--);
16255 return NULL;
16256 }
16257 void *_res = NULL;
16258 int _mark = p->mark;
16259 int _start_mark = p->mark;
16260 void **_children = PyMem_Malloc(sizeof(void *));
16261 if (!_children) {
16262 p->error_indicator = 1;
16263 PyErr_NoMemory();
16264 D(p->level--);
16265 return NULL;
16266 }
16267 ssize_t _children_capacity = 1;
16268 ssize_t _n = 0;
16269 { // ',' expression
16270 if (p->error_indicator) {
16271 D(p->level--);
16272 return NULL;
16273 }
16274 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
16275 Token * _literal;
16276 expr_ty elem;
16277 while (
16278 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16279 &&
16280 (elem = expression_rule(p)) // expression
16281 )
16282 {
16283 _res = elem;
16284 if (_res == NULL && PyErr_Occurred()) {
16285 p->error_indicator = 1;
16286 PyMem_Free(_children);
16287 D(p->level--);
16288 return NULL;
16289 }
16290 if (_n == _children_capacity) {
16291 _children_capacity *= 2;
16292 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16293 if (!_new_children) {
16294 p->error_indicator = 1;
16295 PyErr_NoMemory();
16296 D(p->level--);
16297 return NULL;
16298 }
16299 _children = _new_children;
16300 }
16301 _children[_n++] = _res;
16302 _mark = p->mark;
16303 }
16304 p->mark = _mark;
16305 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
16306 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
16307 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016308 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016309 if (!_seq) {
16310 PyMem_Free(_children);
16311 p->error_indicator = 1;
16312 PyErr_NoMemory();
16313 D(p->level--);
16314 return NULL;
16315 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016316 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016317 PyMem_Free(_children);
16318 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
16319 D(p->level--);
16320 return _seq;
16321}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016322
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016323// _gather_7: expression _loop0_8
16324static asdl_seq *
16325_gather_7_rule(Parser *p)
16326{
16327 D(p->level++);
16328 if (p->error_indicator) {
16329 D(p->level--);
16330 return NULL;
16331 }
16332 asdl_seq * _res = NULL;
16333 int _mark = p->mark;
16334 { // expression _loop0_8
16335 if (p->error_indicator) {
16336 D(p->level--);
16337 return NULL;
16338 }
16339 D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
16340 expr_ty elem;
16341 asdl_seq * seq;
16342 if (
16343 (elem = expression_rule(p)) // expression
16344 &&
16345 (seq = _loop0_8_rule(p)) // _loop0_8
16346 )
16347 {
16348 D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
16349 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16350 goto done;
16351 }
16352 p->mark = _mark;
16353 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
16354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
16355 }
16356 _res = NULL;
16357 done:
16358 D(p->level--);
16359 return _res;
16360}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016361
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016362// _loop0_10: ',' expression
16363static asdl_seq *
16364_loop0_10_rule(Parser *p)
16365{
16366 D(p->level++);
16367 if (p->error_indicator) {
16368 D(p->level--);
16369 return NULL;
16370 }
16371 void *_res = NULL;
16372 int _mark = p->mark;
16373 int _start_mark = p->mark;
16374 void **_children = PyMem_Malloc(sizeof(void *));
16375 if (!_children) {
16376 p->error_indicator = 1;
16377 PyErr_NoMemory();
16378 D(p->level--);
16379 return NULL;
16380 }
16381 ssize_t _children_capacity = 1;
16382 ssize_t _n = 0;
16383 { // ',' expression
16384 if (p->error_indicator) {
16385 D(p->level--);
16386 return NULL;
16387 }
16388 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
16389 Token * _literal;
16390 expr_ty elem;
16391 while (
16392 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16393 &&
16394 (elem = expression_rule(p)) // expression
16395 )
16396 {
16397 _res = elem;
16398 if (_res == NULL && PyErr_Occurred()) {
16399 p->error_indicator = 1;
16400 PyMem_Free(_children);
16401 D(p->level--);
16402 return NULL;
16403 }
16404 if (_n == _children_capacity) {
16405 _children_capacity *= 2;
16406 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16407 if (!_new_children) {
16408 p->error_indicator = 1;
16409 PyErr_NoMemory();
16410 D(p->level--);
16411 return NULL;
16412 }
16413 _children = _new_children;
16414 }
16415 _children[_n++] = _res;
16416 _mark = p->mark;
16417 }
16418 p->mark = _mark;
16419 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
16420 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
16421 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016422 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016423 if (!_seq) {
16424 PyMem_Free(_children);
16425 p->error_indicator = 1;
16426 PyErr_NoMemory();
16427 D(p->level--);
16428 return NULL;
16429 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016430 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016431 PyMem_Free(_children);
16432 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
16433 D(p->level--);
16434 return _seq;
16435}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016436
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016437// _gather_9: expression _loop0_10
16438static asdl_seq *
16439_gather_9_rule(Parser *p)
16440{
16441 D(p->level++);
16442 if (p->error_indicator) {
16443 D(p->level--);
16444 return NULL;
16445 }
16446 asdl_seq * _res = NULL;
16447 int _mark = p->mark;
16448 { // expression _loop0_10
16449 if (p->error_indicator) {
16450 D(p->level--);
16451 return NULL;
16452 }
16453 D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
16454 expr_ty elem;
16455 asdl_seq * seq;
16456 if (
16457 (elem = expression_rule(p)) // expression
16458 &&
16459 (seq = _loop0_10_rule(p)) // _loop0_10
16460 )
16461 {
16462 D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
16463 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16464 goto done;
16465 }
16466 p->mark = _mark;
16467 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
16468 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
16469 }
16470 _res = NULL;
16471 done:
16472 D(p->level--);
16473 return _res;
16474}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016475
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016476// _loop1_11: statement
16477static asdl_seq *
16478_loop1_11_rule(Parser *p)
16479{
16480 D(p->level++);
16481 if (p->error_indicator) {
16482 D(p->level--);
16483 return NULL;
16484 }
16485 void *_res = NULL;
16486 int _mark = p->mark;
16487 int _start_mark = p->mark;
16488 void **_children = PyMem_Malloc(sizeof(void *));
16489 if (!_children) {
16490 p->error_indicator = 1;
16491 PyErr_NoMemory();
16492 D(p->level--);
16493 return NULL;
16494 }
16495 ssize_t _children_capacity = 1;
16496 ssize_t _n = 0;
16497 { // statement
16498 if (p->error_indicator) {
16499 D(p->level--);
16500 return NULL;
16501 }
16502 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010016503 asdl_stmt_seq* statement_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016504 while (
16505 (statement_var = statement_rule(p)) // statement
16506 )
16507 {
16508 _res = statement_var;
16509 if (_n == _children_capacity) {
16510 _children_capacity *= 2;
16511 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16512 if (!_new_children) {
16513 p->error_indicator = 1;
16514 PyErr_NoMemory();
16515 D(p->level--);
16516 return NULL;
16517 }
16518 _children = _new_children;
16519 }
16520 _children[_n++] = _res;
16521 _mark = p->mark;
16522 }
16523 p->mark = _mark;
16524 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
16525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
16526 }
16527 if (_n == 0 || p->error_indicator) {
16528 PyMem_Free(_children);
16529 D(p->level--);
16530 return NULL;
16531 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016532 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016533 if (!_seq) {
16534 PyMem_Free(_children);
16535 p->error_indicator = 1;
16536 PyErr_NoMemory();
16537 D(p->level--);
16538 return NULL;
16539 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016540 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016541 PyMem_Free(_children);
16542 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
16543 D(p->level--);
16544 return _seq;
16545}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016546
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016547// _loop0_13: ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016548static asdl_seq *
16549_loop0_13_rule(Parser *p)
16550{
16551 D(p->level++);
16552 if (p->error_indicator) {
16553 D(p->level--);
16554 return NULL;
16555 }
16556 void *_res = NULL;
16557 int _mark = p->mark;
16558 int _start_mark = p->mark;
16559 void **_children = PyMem_Malloc(sizeof(void *));
16560 if (!_children) {
16561 p->error_indicator = 1;
16562 PyErr_NoMemory();
16563 D(p->level--);
16564 return NULL;
16565 }
16566 ssize_t _children_capacity = 1;
16567 ssize_t _n = 0;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016568 { // ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016569 if (p->error_indicator) {
16570 D(p->level--);
16571 return NULL;
16572 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016573 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016574 Token * _literal;
16575 stmt_ty elem;
16576 while (
16577 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
16578 &&
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016579 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016580 )
16581 {
16582 _res = elem;
16583 if (_res == NULL && PyErr_Occurred()) {
16584 p->error_indicator = 1;
16585 PyMem_Free(_children);
16586 D(p->level--);
16587 return NULL;
16588 }
16589 if (_n == _children_capacity) {
16590 _children_capacity *= 2;
16591 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16592 if (!_new_children) {
16593 p->error_indicator = 1;
16594 PyErr_NoMemory();
16595 D(p->level--);
16596 return NULL;
16597 }
16598 _children = _new_children;
16599 }
16600 _children[_n++] = _res;
16601 _mark = p->mark;
16602 }
16603 p->mark = _mark;
16604 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016606 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016607 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016608 if (!_seq) {
16609 PyMem_Free(_children);
16610 p->error_indicator = 1;
16611 PyErr_NoMemory();
16612 D(p->level--);
16613 return NULL;
16614 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016615 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016616 PyMem_Free(_children);
16617 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
16618 D(p->level--);
16619 return _seq;
16620}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016621
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016622// _gather_12: simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016623static asdl_seq *
16624_gather_12_rule(Parser *p)
16625{
16626 D(p->level++);
16627 if (p->error_indicator) {
16628 D(p->level--);
16629 return NULL;
16630 }
16631 asdl_seq * _res = NULL;
16632 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016633 { // simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016634 if (p->error_indicator) {
16635 D(p->level--);
16636 return NULL;
16637 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016638 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 +010016639 stmt_ty elem;
16640 asdl_seq * seq;
16641 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016642 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016643 &&
16644 (seq = _loop0_13_rule(p)) // _loop0_13
16645 )
16646 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016647 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 +010016648 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16649 goto done;
16650 }
16651 p->mark = _mark;
16652 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016653 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016654 }
16655 _res = NULL;
16656 done:
16657 D(p->level--);
16658 return _res;
16659}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016660
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016661// _tmp_14: 'import' | 'from'
16662static void *
16663_tmp_14_rule(Parser *p)
16664{
16665 D(p->level++);
16666 if (p->error_indicator) {
16667 D(p->level--);
16668 return NULL;
16669 }
16670 void * _res = NULL;
16671 int _mark = p->mark;
16672 { // 'import'
16673 if (p->error_indicator) {
16674 D(p->level--);
16675 return NULL;
16676 }
16677 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
16678 Token * _keyword;
16679 if (
16680 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
16681 )
16682 {
16683 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
16684 _res = _keyword;
16685 goto done;
16686 }
16687 p->mark = _mark;
16688 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16689 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
16690 }
16691 { // 'from'
16692 if (p->error_indicator) {
16693 D(p->level--);
16694 return NULL;
16695 }
16696 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
16697 Token * _keyword;
16698 if (
16699 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
16700 )
16701 {
16702 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
16703 _res = _keyword;
16704 goto done;
16705 }
16706 p->mark = _mark;
16707 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16708 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
16709 }
16710 _res = NULL;
16711 done:
16712 D(p->level--);
16713 return _res;
16714}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016715
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016716// _tmp_15: 'def' | '@' | ASYNC
16717static void *
16718_tmp_15_rule(Parser *p)
16719{
16720 D(p->level++);
16721 if (p->error_indicator) {
16722 D(p->level--);
16723 return NULL;
16724 }
16725 void * _res = NULL;
16726 int _mark = p->mark;
16727 { // 'def'
16728 if (p->error_indicator) {
16729 D(p->level--);
16730 return NULL;
16731 }
16732 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
16733 Token * _keyword;
16734 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016735 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016736 )
16737 {
16738 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
16739 _res = _keyword;
16740 goto done;
16741 }
16742 p->mark = _mark;
16743 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16744 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
16745 }
16746 { // '@'
16747 if (p->error_indicator) {
16748 D(p->level--);
16749 return NULL;
16750 }
16751 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
16752 Token * _literal;
16753 if (
16754 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
16755 )
16756 {
16757 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
16758 _res = _literal;
16759 goto done;
16760 }
16761 p->mark = _mark;
16762 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16763 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
16764 }
16765 { // ASYNC
16766 if (p->error_indicator) {
16767 D(p->level--);
16768 return NULL;
16769 }
16770 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
16771 Token * async_var;
16772 if (
16773 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
16774 )
16775 {
16776 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
16777 _res = async_var;
16778 goto done;
16779 }
16780 p->mark = _mark;
16781 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16782 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
16783 }
16784 _res = NULL;
16785 done:
16786 D(p->level--);
16787 return _res;
16788}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016789
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016790// _tmp_16: 'class' | '@'
16791static void *
16792_tmp_16_rule(Parser *p)
16793{
16794 D(p->level++);
16795 if (p->error_indicator) {
16796 D(p->level--);
16797 return NULL;
16798 }
16799 void * _res = NULL;
16800 int _mark = p->mark;
16801 { // 'class'
16802 if (p->error_indicator) {
16803 D(p->level--);
16804 return NULL;
16805 }
16806 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
16807 Token * _keyword;
16808 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016809 (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016810 )
16811 {
16812 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
16813 _res = _keyword;
16814 goto done;
16815 }
16816 p->mark = _mark;
16817 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
16818 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
16819 }
16820 { // '@'
16821 if (p->error_indicator) {
16822 D(p->level--);
16823 return NULL;
16824 }
16825 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
16826 Token * _literal;
16827 if (
16828 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
16829 )
16830 {
16831 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
16832 _res = _literal;
16833 goto done;
16834 }
16835 p->mark = _mark;
16836 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
16837 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
16838 }
16839 _res = NULL;
16840 done:
16841 D(p->level--);
16842 return _res;
16843}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016844
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016845// _tmp_17: 'with' | ASYNC
16846static void *
16847_tmp_17_rule(Parser *p)
16848{
16849 D(p->level++);
16850 if (p->error_indicator) {
16851 D(p->level--);
16852 return NULL;
16853 }
16854 void * _res = NULL;
16855 int _mark = p->mark;
16856 { // 'with'
16857 if (p->error_indicator) {
16858 D(p->level--);
16859 return NULL;
16860 }
16861 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
16862 Token * _keyword;
16863 if (
16864 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
16865 )
16866 {
16867 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
16868 _res = _keyword;
16869 goto done;
16870 }
16871 p->mark = _mark;
16872 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
16873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
16874 }
16875 { // ASYNC
16876 if (p->error_indicator) {
16877 D(p->level--);
16878 return NULL;
16879 }
16880 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
16881 Token * async_var;
16882 if (
16883 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
16884 )
16885 {
16886 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
16887 _res = async_var;
16888 goto done;
16889 }
16890 p->mark = _mark;
16891 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
16892 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
16893 }
16894 _res = NULL;
16895 done:
16896 D(p->level--);
16897 return _res;
16898}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016899
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016900// _tmp_18: 'for' | ASYNC
16901static void *
16902_tmp_18_rule(Parser *p)
16903{
16904 D(p->level++);
16905 if (p->error_indicator) {
16906 D(p->level--);
16907 return NULL;
16908 }
16909 void * _res = NULL;
16910 int _mark = p->mark;
16911 { // 'for'
16912 if (p->error_indicator) {
16913 D(p->level--);
16914 return NULL;
16915 }
16916 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
16917 Token * _keyword;
16918 if (
16919 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
16920 )
16921 {
16922 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
16923 _res = _keyword;
16924 goto done;
16925 }
16926 p->mark = _mark;
16927 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
16928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
16929 }
16930 { // ASYNC
16931 if (p->error_indicator) {
16932 D(p->level--);
16933 return NULL;
16934 }
16935 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
16936 Token * async_var;
16937 if (
16938 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
16939 )
16940 {
16941 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
16942 _res = async_var;
16943 goto done;
16944 }
16945 p->mark = _mark;
16946 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
16947 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
16948 }
16949 _res = NULL;
16950 done:
16951 D(p->level--);
16952 return _res;
16953}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016954
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016955// _tmp_19: '=' annotated_rhs
16956static void *
16957_tmp_19_rule(Parser *p)
16958{
16959 D(p->level++);
16960 if (p->error_indicator) {
16961 D(p->level--);
16962 return NULL;
16963 }
16964 void * _res = NULL;
16965 int _mark = p->mark;
16966 { // '=' annotated_rhs
16967 if (p->error_indicator) {
16968 D(p->level--);
16969 return NULL;
16970 }
16971 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
16972 Token * _literal;
16973 expr_ty d;
16974 if (
16975 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16976 &&
16977 (d = annotated_rhs_rule(p)) // annotated_rhs
16978 )
16979 {
16980 D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
16981 _res = d;
16982 if (_res == NULL && PyErr_Occurred()) {
16983 p->error_indicator = 1;
16984 D(p->level--);
16985 return NULL;
16986 }
16987 goto done;
16988 }
16989 p->mark = _mark;
16990 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
16991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
16992 }
16993 _res = NULL;
16994 done:
16995 D(p->level--);
16996 return _res;
16997}
16998
16999// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
17000static void *
17001_tmp_20_rule(Parser *p)
17002{
17003 D(p->level++);
17004 if (p->error_indicator) {
17005 D(p->level--);
17006 return NULL;
17007 }
17008 void * _res = NULL;
17009 int _mark = p->mark;
17010 { // '(' single_target ')'
17011 if (p->error_indicator) {
17012 D(p->level--);
17013 return NULL;
17014 }
17015 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
17016 Token * _literal;
17017 Token * _literal_1;
17018 expr_ty b;
17019 if (
17020 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17021 &&
17022 (b = single_target_rule(p)) // single_target
17023 &&
17024 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17025 )
17026 {
17027 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
17028 _res = b;
17029 if (_res == NULL && PyErr_Occurred()) {
17030 p->error_indicator = 1;
17031 D(p->level--);
17032 return NULL;
17033 }
17034 goto done;
17035 }
17036 p->mark = _mark;
17037 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
17038 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
17039 }
17040 { // single_subscript_attribute_target
17041 if (p->error_indicator) {
17042 D(p->level--);
17043 return NULL;
17044 }
17045 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
17046 expr_ty single_subscript_attribute_target_var;
17047 if (
17048 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
17049 )
17050 {
17051 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
17052 _res = single_subscript_attribute_target_var;
17053 goto done;
17054 }
17055 p->mark = _mark;
17056 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
17057 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
17058 }
17059 _res = NULL;
17060 done:
17061 D(p->level--);
17062 return _res;
17063}
17064
17065// _tmp_21: '=' annotated_rhs
17066static void *
17067_tmp_21_rule(Parser *p)
17068{
17069 D(p->level++);
17070 if (p->error_indicator) {
17071 D(p->level--);
17072 return NULL;
17073 }
17074 void * _res = NULL;
17075 int _mark = p->mark;
17076 { // '=' annotated_rhs
17077 if (p->error_indicator) {
17078 D(p->level--);
17079 return NULL;
17080 }
17081 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
17082 Token * _literal;
17083 expr_ty d;
17084 if (
17085 (_literal = _PyPegen_expect_token(p, 22)) // token='='
17086 &&
17087 (d = annotated_rhs_rule(p)) // annotated_rhs
17088 )
17089 {
17090 D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
17091 _res = d;
17092 if (_res == NULL && PyErr_Occurred()) {
17093 p->error_indicator = 1;
17094 D(p->level--);
17095 return NULL;
17096 }
17097 goto done;
17098 }
17099 p->mark = _mark;
17100 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
17101 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
17102 }
17103 _res = NULL;
17104 done:
17105 D(p->level--);
17106 return _res;
17107}
17108
17109// _loop1_22: (star_targets '=')
17110static asdl_seq *
17111_loop1_22_rule(Parser *p)
17112{
17113 D(p->level++);
17114 if (p->error_indicator) {
17115 D(p->level--);
17116 return NULL;
17117 }
17118 void *_res = NULL;
17119 int _mark = p->mark;
17120 int _start_mark = p->mark;
17121 void **_children = PyMem_Malloc(sizeof(void *));
17122 if (!_children) {
17123 p->error_indicator = 1;
17124 PyErr_NoMemory();
17125 D(p->level--);
17126 return NULL;
17127 }
17128 ssize_t _children_capacity = 1;
17129 ssize_t _n = 0;
17130 { // (star_targets '=')
17131 if (p->error_indicator) {
17132 D(p->level--);
17133 return NULL;
17134 }
17135 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000017136 void *_tmp_139_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017137 while (
Pablo Galindo835f14f2021-01-31 22:52:56 +000017138 (_tmp_139_var = _tmp_139_rule(p)) // star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017139 )
17140 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000017141 _res = _tmp_139_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017142 if (_n == _children_capacity) {
17143 _children_capacity *= 2;
17144 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17145 if (!_new_children) {
17146 p->error_indicator = 1;
17147 PyErr_NoMemory();
17148 D(p->level--);
17149 return NULL;
17150 }
17151 _children = _new_children;
17152 }
17153 _children[_n++] = _res;
17154 _mark = p->mark;
17155 }
17156 p->mark = _mark;
17157 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
17158 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
17159 }
17160 if (_n == 0 || p->error_indicator) {
17161 PyMem_Free(_children);
17162 D(p->level--);
17163 return NULL;
17164 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017165 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017166 if (!_seq) {
17167 PyMem_Free(_children);
17168 p->error_indicator = 1;
17169 PyErr_NoMemory();
17170 D(p->level--);
17171 return NULL;
17172 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017173 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017174 PyMem_Free(_children);
17175 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
17176 D(p->level--);
17177 return _seq;
17178}
17179
17180// _tmp_23: yield_expr | star_expressions
17181static void *
17182_tmp_23_rule(Parser *p)
17183{
17184 D(p->level++);
17185 if (p->error_indicator) {
17186 D(p->level--);
17187 return NULL;
17188 }
17189 void * _res = NULL;
17190 int _mark = p->mark;
17191 { // yield_expr
17192 if (p->error_indicator) {
17193 D(p->level--);
17194 return NULL;
17195 }
17196 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
17197 expr_ty yield_expr_var;
17198 if (
17199 (yield_expr_var = yield_expr_rule(p)) // yield_expr
17200 )
17201 {
17202 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
17203 _res = yield_expr_var;
17204 goto done;
17205 }
17206 p->mark = _mark;
17207 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
17208 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
17209 }
17210 { // star_expressions
17211 if (p->error_indicator) {
17212 D(p->level--);
17213 return NULL;
17214 }
17215 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
17216 expr_ty star_expressions_var;
17217 if (
17218 (star_expressions_var = star_expressions_rule(p)) // star_expressions
17219 )
17220 {
17221 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
17222 _res = star_expressions_var;
17223 goto done;
17224 }
17225 p->mark = _mark;
17226 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
17227 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
17228 }
17229 _res = NULL;
17230 done:
17231 D(p->level--);
17232 return _res;
17233}
17234
17235// _tmp_24: yield_expr | star_expressions
17236static void *
17237_tmp_24_rule(Parser *p)
17238{
17239 D(p->level++);
17240 if (p->error_indicator) {
17241 D(p->level--);
17242 return NULL;
17243 }
17244 void * _res = NULL;
17245 int _mark = p->mark;
17246 { // yield_expr
17247 if (p->error_indicator) {
17248 D(p->level--);
17249 return NULL;
17250 }
17251 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
17252 expr_ty yield_expr_var;
17253 if (
17254 (yield_expr_var = yield_expr_rule(p)) // yield_expr
17255 )
17256 {
17257 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
17258 _res = yield_expr_var;
17259 goto done;
17260 }
17261 p->mark = _mark;
17262 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
17263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
17264 }
17265 { // star_expressions
17266 if (p->error_indicator) {
17267 D(p->level--);
17268 return NULL;
17269 }
17270 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
17271 expr_ty star_expressions_var;
17272 if (
17273 (star_expressions_var = star_expressions_rule(p)) // star_expressions
17274 )
17275 {
17276 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
17277 _res = star_expressions_var;
17278 goto done;
17279 }
17280 p->mark = _mark;
17281 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
17282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
17283 }
17284 _res = NULL;
17285 done:
17286 D(p->level--);
17287 return _res;
17288}
17289
17290// _loop0_26: ',' NAME
17291static asdl_seq *
17292_loop0_26_rule(Parser *p)
17293{
17294 D(p->level++);
17295 if (p->error_indicator) {
17296 D(p->level--);
17297 return NULL;
17298 }
17299 void *_res = NULL;
17300 int _mark = p->mark;
17301 int _start_mark = p->mark;
17302 void **_children = PyMem_Malloc(sizeof(void *));
17303 if (!_children) {
17304 p->error_indicator = 1;
17305 PyErr_NoMemory();
17306 D(p->level--);
17307 return NULL;
17308 }
17309 ssize_t _children_capacity = 1;
17310 ssize_t _n = 0;
17311 { // ',' NAME
17312 if (p->error_indicator) {
17313 D(p->level--);
17314 return NULL;
17315 }
17316 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
17317 Token * _literal;
17318 expr_ty elem;
17319 while (
17320 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17321 &&
17322 (elem = _PyPegen_name_token(p)) // NAME
17323 )
17324 {
17325 _res = elem;
17326 if (_res == NULL && PyErr_Occurred()) {
17327 p->error_indicator = 1;
17328 PyMem_Free(_children);
17329 D(p->level--);
17330 return NULL;
17331 }
17332 if (_n == _children_capacity) {
17333 _children_capacity *= 2;
17334 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17335 if (!_new_children) {
17336 p->error_indicator = 1;
17337 PyErr_NoMemory();
17338 D(p->level--);
17339 return NULL;
17340 }
17341 _children = _new_children;
17342 }
17343 _children[_n++] = _res;
17344 _mark = p->mark;
17345 }
17346 p->mark = _mark;
17347 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
17348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
17349 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017350 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017351 if (!_seq) {
17352 PyMem_Free(_children);
17353 p->error_indicator = 1;
17354 PyErr_NoMemory();
17355 D(p->level--);
17356 return NULL;
17357 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017358 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017359 PyMem_Free(_children);
17360 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
17361 D(p->level--);
17362 return _seq;
17363}
17364
17365// _gather_25: NAME _loop0_26
17366static asdl_seq *
17367_gather_25_rule(Parser *p)
17368{
17369 D(p->level++);
17370 if (p->error_indicator) {
17371 D(p->level--);
17372 return NULL;
17373 }
17374 asdl_seq * _res = NULL;
17375 int _mark = p->mark;
17376 { // NAME _loop0_26
17377 if (p->error_indicator) {
17378 D(p->level--);
17379 return NULL;
17380 }
17381 D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
17382 expr_ty elem;
17383 asdl_seq * seq;
17384 if (
17385 (elem = _PyPegen_name_token(p)) // NAME
17386 &&
17387 (seq = _loop0_26_rule(p)) // _loop0_26
17388 )
17389 {
17390 D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
17391 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
17392 goto done;
17393 }
17394 p->mark = _mark;
17395 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
17396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
17397 }
17398 _res = NULL;
17399 done:
17400 D(p->level--);
17401 return _res;
17402}
17403
17404// _loop0_28: ',' NAME
17405static asdl_seq *
17406_loop0_28_rule(Parser *p)
17407{
17408 D(p->level++);
17409 if (p->error_indicator) {
17410 D(p->level--);
17411 return NULL;
17412 }
17413 void *_res = NULL;
17414 int _mark = p->mark;
17415 int _start_mark = p->mark;
17416 void **_children = PyMem_Malloc(sizeof(void *));
17417 if (!_children) {
17418 p->error_indicator = 1;
17419 PyErr_NoMemory();
17420 D(p->level--);
17421 return NULL;
17422 }
17423 ssize_t _children_capacity = 1;
17424 ssize_t _n = 0;
17425 { // ',' NAME
17426 if (p->error_indicator) {
17427 D(p->level--);
17428 return NULL;
17429 }
17430 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
17431 Token * _literal;
17432 expr_ty elem;
17433 while (
17434 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17435 &&
17436 (elem = _PyPegen_name_token(p)) // NAME
17437 )
17438 {
17439 _res = elem;
17440 if (_res == NULL && PyErr_Occurred()) {
17441 p->error_indicator = 1;
17442 PyMem_Free(_children);
17443 D(p->level--);
17444 return NULL;
17445 }
17446 if (_n == _children_capacity) {
17447 _children_capacity *= 2;
17448 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17449 if (!_new_children) {
17450 p->error_indicator = 1;
17451 PyErr_NoMemory();
17452 D(p->level--);
17453 return NULL;
17454 }
17455 _children = _new_children;
17456 }
17457 _children[_n++] = _res;
17458 _mark = p->mark;
17459 }
17460 p->mark = _mark;
17461 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
17462 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
17463 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017464 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017465 if (!_seq) {
17466 PyMem_Free(_children);
17467 p->error_indicator = 1;
17468 PyErr_NoMemory();
17469 D(p->level--);
17470 return NULL;
17471 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017472 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017473 PyMem_Free(_children);
17474 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
17475 D(p->level--);
17476 return _seq;
17477}
17478
17479// _gather_27: NAME _loop0_28
17480static asdl_seq *
17481_gather_27_rule(Parser *p)
17482{
17483 D(p->level++);
17484 if (p->error_indicator) {
17485 D(p->level--);
17486 return NULL;
17487 }
17488 asdl_seq * _res = NULL;
17489 int _mark = p->mark;
17490 { // NAME _loop0_28
17491 if (p->error_indicator) {
17492 D(p->level--);
17493 return NULL;
17494 }
17495 D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
17496 expr_ty elem;
17497 asdl_seq * seq;
17498 if (
17499 (elem = _PyPegen_name_token(p)) // NAME
17500 &&
17501 (seq = _loop0_28_rule(p)) // _loop0_28
17502 )
17503 {
17504 D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
17505 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
17506 goto done;
17507 }
17508 p->mark = _mark;
17509 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
17510 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
17511 }
17512 _res = NULL;
17513 done:
17514 D(p->level--);
17515 return _res;
17516}
17517
17518// _tmp_29: ',' expression
17519static void *
17520_tmp_29_rule(Parser *p)
17521{
17522 D(p->level++);
17523 if (p->error_indicator) {
17524 D(p->level--);
17525 return NULL;
17526 }
17527 void * _res = NULL;
17528 int _mark = p->mark;
17529 { // ',' expression
17530 if (p->error_indicator) {
17531 D(p->level--);
17532 return NULL;
17533 }
17534 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
17535 Token * _literal;
17536 expr_ty z;
17537 if (
17538 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17539 &&
17540 (z = expression_rule(p)) // expression
17541 )
17542 {
17543 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
17544 _res = z;
17545 if (_res == NULL && PyErr_Occurred()) {
17546 p->error_indicator = 1;
17547 D(p->level--);
17548 return NULL;
17549 }
17550 goto done;
17551 }
17552 p->mark = _mark;
17553 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
17554 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
17555 }
17556 _res = NULL;
17557 done:
17558 D(p->level--);
17559 return _res;
17560}
17561
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017562// _tmp_30: ';' | NEWLINE
17563static void *
17564_tmp_30_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017565{
17566 D(p->level++);
17567 if (p->error_indicator) {
17568 D(p->level--);
17569 return NULL;
17570 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017571 void * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017572 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017573 { // ';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017574 if (p->error_indicator) {
17575 D(p->level--);
17576 return NULL;
17577 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017578 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
17579 Token * _literal;
17580 if (
17581 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017582 )
17583 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017584 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
17585 _res = _literal;
17586 goto done;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017587 }
17588 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017589 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
17590 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017591 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017592 { // NEWLINE
17593 if (p->error_indicator) {
17594 D(p->level--);
17595 return NULL;
17596 }
17597 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
17598 Token * newline_var;
17599 if (
17600 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
17601 )
17602 {
17603 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
17604 _res = newline_var;
17605 goto done;
17606 }
17607 p->mark = _mark;
17608 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
17609 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017610 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017611 _res = NULL;
17612 done:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017613 D(p->level--);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017614 return _res;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017615}
17616
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017617// _loop0_31: ('.' | '...')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017618static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017619_loop0_31_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017620{
17621 D(p->level++);
17622 if (p->error_indicator) {
17623 D(p->level--);
17624 return NULL;
17625 }
17626 void *_res = NULL;
17627 int _mark = p->mark;
17628 int _start_mark = p->mark;
17629 void **_children = PyMem_Malloc(sizeof(void *));
17630 if (!_children) {
17631 p->error_indicator = 1;
17632 PyErr_NoMemory();
17633 D(p->level--);
17634 return NULL;
17635 }
17636 ssize_t _children_capacity = 1;
17637 ssize_t _n = 0;
17638 { // ('.' | '...')
17639 if (p->error_indicator) {
17640 D(p->level--);
17641 return NULL;
17642 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017643 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000017644 void *_tmp_140_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017645 while (
Pablo Galindo835f14f2021-01-31 22:52:56 +000017646 (_tmp_140_var = _tmp_140_rule(p)) // '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017647 )
17648 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000017649 _res = _tmp_140_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017650 if (_n == _children_capacity) {
17651 _children_capacity *= 2;
17652 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17653 if (!_new_children) {
17654 p->error_indicator = 1;
17655 PyErr_NoMemory();
17656 D(p->level--);
17657 return NULL;
17658 }
17659 _children = _new_children;
17660 }
17661 _children[_n++] = _res;
17662 _mark = p->mark;
17663 }
17664 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017665 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
17666 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
17667 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017668 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017669 if (!_seq) {
17670 PyMem_Free(_children);
17671 p->error_indicator = 1;
17672 PyErr_NoMemory();
17673 D(p->level--);
17674 return NULL;
17675 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017676 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017677 PyMem_Free(_children);
17678 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
17679 D(p->level--);
17680 return _seq;
17681}
17682
17683// _loop1_32: ('.' | '...')
17684static asdl_seq *
17685_loop1_32_rule(Parser *p)
17686{
17687 D(p->level++);
17688 if (p->error_indicator) {
17689 D(p->level--);
17690 return NULL;
17691 }
17692 void *_res = NULL;
17693 int _mark = p->mark;
17694 int _start_mark = p->mark;
17695 void **_children = PyMem_Malloc(sizeof(void *));
17696 if (!_children) {
17697 p->error_indicator = 1;
17698 PyErr_NoMemory();
17699 D(p->level--);
17700 return NULL;
17701 }
17702 ssize_t _children_capacity = 1;
17703 ssize_t _n = 0;
17704 { // ('.' | '...')
17705 if (p->error_indicator) {
17706 D(p->level--);
17707 return NULL;
17708 }
17709 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000017710 void *_tmp_141_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017711 while (
Pablo Galindo835f14f2021-01-31 22:52:56 +000017712 (_tmp_141_var = _tmp_141_rule(p)) // '.' | '...'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017713 )
17714 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000017715 _res = _tmp_141_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017716 if (_n == _children_capacity) {
17717 _children_capacity *= 2;
17718 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17719 if (!_new_children) {
17720 p->error_indicator = 1;
17721 PyErr_NoMemory();
17722 D(p->level--);
17723 return NULL;
17724 }
17725 _children = _new_children;
17726 }
17727 _children[_n++] = _res;
17728 _mark = p->mark;
17729 }
17730 p->mark = _mark;
17731 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017732 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
17733 }
17734 if (_n == 0 || p->error_indicator) {
17735 PyMem_Free(_children);
17736 D(p->level--);
17737 return NULL;
17738 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017739 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017740 if (!_seq) {
17741 PyMem_Free(_children);
17742 p->error_indicator = 1;
17743 PyErr_NoMemory();
17744 D(p->level--);
17745 return NULL;
17746 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017747 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017748 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017749 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017750 D(p->level--);
17751 return _seq;
17752}
17753
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017754// _loop0_34: ',' import_from_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017755static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017756_loop0_34_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017757{
17758 D(p->level++);
17759 if (p->error_indicator) {
17760 D(p->level--);
17761 return NULL;
17762 }
17763 void *_res = NULL;
17764 int _mark = p->mark;
17765 int _start_mark = p->mark;
17766 void **_children = PyMem_Malloc(sizeof(void *));
17767 if (!_children) {
17768 p->error_indicator = 1;
17769 PyErr_NoMemory();
17770 D(p->level--);
17771 return NULL;
17772 }
17773 ssize_t _children_capacity = 1;
17774 ssize_t _n = 0;
17775 { // ',' import_from_as_name
17776 if (p->error_indicator) {
17777 D(p->level--);
17778 return NULL;
17779 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017780 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 +010017781 Token * _literal;
17782 alias_ty elem;
17783 while (
17784 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17785 &&
17786 (elem = import_from_as_name_rule(p)) // import_from_as_name
17787 )
17788 {
17789 _res = elem;
17790 if (_res == NULL && PyErr_Occurred()) {
17791 p->error_indicator = 1;
17792 PyMem_Free(_children);
17793 D(p->level--);
17794 return NULL;
17795 }
17796 if (_n == _children_capacity) {
17797 _children_capacity *= 2;
17798 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17799 if (!_new_children) {
17800 p->error_indicator = 1;
17801 PyErr_NoMemory();
17802 D(p->level--);
17803 return NULL;
17804 }
17805 _children = _new_children;
17806 }
17807 _children[_n++] = _res;
17808 _mark = p->mark;
17809 }
17810 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017811 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
17813 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017814 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017815 if (!_seq) {
17816 PyMem_Free(_children);
17817 p->error_indicator = 1;
17818 PyErr_NoMemory();
17819 D(p->level--);
17820 return NULL;
17821 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017822 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017823 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017824 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017825 D(p->level--);
17826 return _seq;
17827}
17828
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017829// _gather_33: import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017830static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017831_gather_33_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017832{
17833 D(p->level++);
17834 if (p->error_indicator) {
17835 D(p->level--);
17836 return NULL;
17837 }
17838 asdl_seq * _res = NULL;
17839 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017840 { // import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017841 if (p->error_indicator) {
17842 D(p->level--);
17843 return NULL;
17844 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017845 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 +010017846 alias_ty elem;
17847 asdl_seq * seq;
17848 if (
17849 (elem = import_from_as_name_rule(p)) // import_from_as_name
17850 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017851 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017852 )
17853 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017854 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 +010017855 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
17856 goto done;
17857 }
17858 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017859 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
17860 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017861 }
17862 _res = NULL;
17863 done:
17864 D(p->level--);
17865 return _res;
17866}
17867
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017868// _tmp_35: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017869static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017870_tmp_35_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017871{
17872 D(p->level++);
17873 if (p->error_indicator) {
17874 D(p->level--);
17875 return NULL;
17876 }
17877 void * _res = NULL;
17878 int _mark = p->mark;
17879 { // 'as' NAME
17880 if (p->error_indicator) {
17881 D(p->level--);
17882 return NULL;
17883 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017884 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017885 Token * _keyword;
17886 expr_ty z;
17887 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017888 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017889 &&
17890 (z = _PyPegen_name_token(p)) // NAME
17891 )
17892 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017893 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 +010017894 _res = z;
17895 if (_res == NULL && PyErr_Occurred()) {
17896 p->error_indicator = 1;
17897 D(p->level--);
17898 return NULL;
17899 }
17900 goto done;
17901 }
17902 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017903 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017904 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
17905 }
17906 _res = NULL;
17907 done:
17908 D(p->level--);
17909 return _res;
17910}
17911
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017912// _loop0_37: ',' dotted_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017913static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017914_loop0_37_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017915{
17916 D(p->level++);
17917 if (p->error_indicator) {
17918 D(p->level--);
17919 return NULL;
17920 }
17921 void *_res = NULL;
17922 int _mark = p->mark;
17923 int _start_mark = p->mark;
17924 void **_children = PyMem_Malloc(sizeof(void *));
17925 if (!_children) {
17926 p->error_indicator = 1;
17927 PyErr_NoMemory();
17928 D(p->level--);
17929 return NULL;
17930 }
17931 ssize_t _children_capacity = 1;
17932 ssize_t _n = 0;
17933 { // ',' dotted_as_name
17934 if (p->error_indicator) {
17935 D(p->level--);
17936 return NULL;
17937 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017938 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 +010017939 Token * _literal;
17940 alias_ty elem;
17941 while (
17942 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17943 &&
17944 (elem = dotted_as_name_rule(p)) // dotted_as_name
17945 )
17946 {
17947 _res = elem;
17948 if (_res == NULL && PyErr_Occurred()) {
17949 p->error_indicator = 1;
17950 PyMem_Free(_children);
17951 D(p->level--);
17952 return NULL;
17953 }
17954 if (_n == _children_capacity) {
17955 _children_capacity *= 2;
17956 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17957 if (!_new_children) {
17958 p->error_indicator = 1;
17959 PyErr_NoMemory();
17960 D(p->level--);
17961 return NULL;
17962 }
17963 _children = _new_children;
17964 }
17965 _children[_n++] = _res;
17966 _mark = p->mark;
17967 }
17968 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017969 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017970 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
17971 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017972 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017973 if (!_seq) {
17974 PyMem_Free(_children);
17975 p->error_indicator = 1;
17976 PyErr_NoMemory();
17977 D(p->level--);
17978 return NULL;
17979 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017980 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017981 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017982 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017983 D(p->level--);
17984 return _seq;
17985}
17986
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017987// _gather_36: dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017988static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017989_gather_36_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017990{
17991 D(p->level++);
17992 if (p->error_indicator) {
17993 D(p->level--);
17994 return NULL;
17995 }
17996 asdl_seq * _res = NULL;
17997 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017998 { // dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017999 if (p->error_indicator) {
18000 D(p->level--);
18001 return NULL;
18002 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018003 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 +010018004 alias_ty elem;
18005 asdl_seq * seq;
18006 if (
18007 (elem = dotted_as_name_rule(p)) // dotted_as_name
18008 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018009 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018010 )
18011 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018012 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 +010018013 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18014 goto done;
18015 }
18016 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018017 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
18018 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018019 }
18020 _res = NULL;
18021 done:
18022 D(p->level--);
18023 return _res;
18024}
18025
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018026// _tmp_38: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018027static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018028_tmp_38_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018029{
18030 D(p->level++);
18031 if (p->error_indicator) {
18032 D(p->level--);
18033 return NULL;
18034 }
18035 void * _res = NULL;
18036 int _mark = p->mark;
18037 { // 'as' NAME
18038 if (p->error_indicator) {
18039 D(p->level--);
18040 return NULL;
18041 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018042 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018043 Token * _keyword;
18044 expr_ty z;
18045 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018046 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018047 &&
18048 (z = _PyPegen_name_token(p)) // NAME
18049 )
18050 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018051 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 +010018052 _res = z;
18053 if (_res == NULL && PyErr_Occurred()) {
18054 p->error_indicator = 1;
18055 D(p->level--);
18056 return NULL;
18057 }
18058 goto done;
18059 }
18060 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018061 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
18063 }
18064 _res = NULL;
18065 done:
18066 D(p->level--);
18067 return _res;
18068}
18069
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018070// _loop0_40: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018071static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018072_loop0_40_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018073{
18074 D(p->level++);
18075 if (p->error_indicator) {
18076 D(p->level--);
18077 return NULL;
18078 }
18079 void *_res = NULL;
18080 int _mark = p->mark;
18081 int _start_mark = p->mark;
18082 void **_children = PyMem_Malloc(sizeof(void *));
18083 if (!_children) {
18084 p->error_indicator = 1;
18085 PyErr_NoMemory();
18086 D(p->level--);
18087 return NULL;
18088 }
18089 ssize_t _children_capacity = 1;
18090 ssize_t _n = 0;
18091 { // ',' with_item
18092 if (p->error_indicator) {
18093 D(p->level--);
18094 return NULL;
18095 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018096 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018097 Token * _literal;
18098 withitem_ty elem;
18099 while (
18100 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18101 &&
18102 (elem = with_item_rule(p)) // with_item
18103 )
18104 {
18105 _res = elem;
18106 if (_res == NULL && PyErr_Occurred()) {
18107 p->error_indicator = 1;
18108 PyMem_Free(_children);
18109 D(p->level--);
18110 return NULL;
18111 }
18112 if (_n == _children_capacity) {
18113 _children_capacity *= 2;
18114 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18115 if (!_new_children) {
18116 p->error_indicator = 1;
18117 PyErr_NoMemory();
18118 D(p->level--);
18119 return NULL;
18120 }
18121 _children = _new_children;
18122 }
18123 _children[_n++] = _res;
18124 _mark = p->mark;
18125 }
18126 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018127 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018128 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
18129 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018130 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018131 if (!_seq) {
18132 PyMem_Free(_children);
18133 p->error_indicator = 1;
18134 PyErr_NoMemory();
18135 D(p->level--);
18136 return NULL;
18137 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018138 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018139 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018140 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018141 D(p->level--);
18142 return _seq;
18143}
18144
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018145// _gather_39: with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018146static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018147_gather_39_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018148{
18149 D(p->level++);
18150 if (p->error_indicator) {
18151 D(p->level--);
18152 return NULL;
18153 }
18154 asdl_seq * _res = NULL;
18155 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018156 { // with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018157 if (p->error_indicator) {
18158 D(p->level--);
18159 return NULL;
18160 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018161 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 +010018162 withitem_ty elem;
18163 asdl_seq * seq;
18164 if (
18165 (elem = with_item_rule(p)) // with_item
18166 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018167 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018168 )
18169 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018170 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 +010018171 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18172 goto done;
18173 }
18174 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018175 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
18176 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018177 }
18178 _res = NULL;
18179 done:
18180 D(p->level--);
18181 return _res;
18182}
18183
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018184// _loop0_42: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018185static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018186_loop0_42_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018187{
18188 D(p->level++);
18189 if (p->error_indicator) {
18190 D(p->level--);
18191 return NULL;
18192 }
18193 void *_res = NULL;
18194 int _mark = p->mark;
18195 int _start_mark = p->mark;
18196 void **_children = PyMem_Malloc(sizeof(void *));
18197 if (!_children) {
18198 p->error_indicator = 1;
18199 PyErr_NoMemory();
18200 D(p->level--);
18201 return NULL;
18202 }
18203 ssize_t _children_capacity = 1;
18204 ssize_t _n = 0;
18205 { // ',' with_item
18206 if (p->error_indicator) {
18207 D(p->level--);
18208 return NULL;
18209 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018210 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018211 Token * _literal;
18212 withitem_ty elem;
18213 while (
18214 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18215 &&
18216 (elem = with_item_rule(p)) // with_item
18217 )
18218 {
18219 _res = elem;
18220 if (_res == NULL && PyErr_Occurred()) {
18221 p->error_indicator = 1;
18222 PyMem_Free(_children);
18223 D(p->level--);
18224 return NULL;
18225 }
18226 if (_n == _children_capacity) {
18227 _children_capacity *= 2;
18228 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18229 if (!_new_children) {
18230 p->error_indicator = 1;
18231 PyErr_NoMemory();
18232 D(p->level--);
18233 return NULL;
18234 }
18235 _children = _new_children;
18236 }
18237 _children[_n++] = _res;
18238 _mark = p->mark;
18239 }
18240 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018241 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
18243 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018244 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018245 if (!_seq) {
18246 PyMem_Free(_children);
18247 p->error_indicator = 1;
18248 PyErr_NoMemory();
18249 D(p->level--);
18250 return NULL;
18251 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018252 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018253 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018254 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018255 D(p->level--);
18256 return _seq;
18257}
18258
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018259// _gather_41: with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018260static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018261_gather_41_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018262{
18263 D(p->level++);
18264 if (p->error_indicator) {
18265 D(p->level--);
18266 return NULL;
18267 }
18268 asdl_seq * _res = NULL;
18269 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018270 { // with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018271 if (p->error_indicator) {
18272 D(p->level--);
18273 return NULL;
18274 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018275 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 +010018276 withitem_ty elem;
18277 asdl_seq * seq;
18278 if (
18279 (elem = with_item_rule(p)) // with_item
18280 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018281 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018282 )
18283 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018284 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 +010018285 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18286 goto done;
18287 }
18288 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018289 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
18290 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018291 }
18292 _res = NULL;
18293 done:
18294 D(p->level--);
18295 return _res;
18296}
18297
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018298// _loop0_44: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018299static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018300_loop0_44_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018301{
18302 D(p->level++);
18303 if (p->error_indicator) {
18304 D(p->level--);
18305 return NULL;
18306 }
18307 void *_res = NULL;
18308 int _mark = p->mark;
18309 int _start_mark = p->mark;
18310 void **_children = PyMem_Malloc(sizeof(void *));
18311 if (!_children) {
18312 p->error_indicator = 1;
18313 PyErr_NoMemory();
18314 D(p->level--);
18315 return NULL;
18316 }
18317 ssize_t _children_capacity = 1;
18318 ssize_t _n = 0;
18319 { // ',' with_item
18320 if (p->error_indicator) {
18321 D(p->level--);
18322 return NULL;
18323 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018324 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018325 Token * _literal;
18326 withitem_ty elem;
18327 while (
18328 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18329 &&
18330 (elem = with_item_rule(p)) // with_item
18331 )
18332 {
18333 _res = elem;
18334 if (_res == NULL && PyErr_Occurred()) {
18335 p->error_indicator = 1;
18336 PyMem_Free(_children);
18337 D(p->level--);
18338 return NULL;
18339 }
18340 if (_n == _children_capacity) {
18341 _children_capacity *= 2;
18342 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18343 if (!_new_children) {
18344 p->error_indicator = 1;
18345 PyErr_NoMemory();
18346 D(p->level--);
18347 return NULL;
18348 }
18349 _children = _new_children;
18350 }
18351 _children[_n++] = _res;
18352 _mark = p->mark;
18353 }
18354 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018355 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018356 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
18357 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018358 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018359 if (!_seq) {
18360 PyMem_Free(_children);
18361 p->error_indicator = 1;
18362 PyErr_NoMemory();
18363 D(p->level--);
18364 return NULL;
18365 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018366 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018367 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018368 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018369 D(p->level--);
18370 return _seq;
18371}
18372
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018373// _gather_43: with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018374static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018375_gather_43_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018376{
18377 D(p->level++);
18378 if (p->error_indicator) {
18379 D(p->level--);
18380 return NULL;
18381 }
18382 asdl_seq * _res = NULL;
18383 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018384 { // with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018385 if (p->error_indicator) {
18386 D(p->level--);
18387 return NULL;
18388 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018389 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 +010018390 withitem_ty elem;
18391 asdl_seq * seq;
18392 if (
18393 (elem = with_item_rule(p)) // with_item
18394 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018395 (seq = _loop0_44_rule(p)) // _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018396 )
18397 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018398 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 +010018399 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18400 goto done;
18401 }
18402 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018403 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
18404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018405 }
18406 _res = NULL;
18407 done:
18408 D(p->level--);
18409 return _res;
18410}
18411
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018412// _loop0_46: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018413static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018414_loop0_46_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018415{
18416 D(p->level++);
18417 if (p->error_indicator) {
18418 D(p->level--);
18419 return NULL;
18420 }
18421 void *_res = NULL;
18422 int _mark = p->mark;
18423 int _start_mark = p->mark;
18424 void **_children = PyMem_Malloc(sizeof(void *));
18425 if (!_children) {
18426 p->error_indicator = 1;
18427 PyErr_NoMemory();
18428 D(p->level--);
18429 return NULL;
18430 }
18431 ssize_t _children_capacity = 1;
18432 ssize_t _n = 0;
18433 { // ',' with_item
18434 if (p->error_indicator) {
18435 D(p->level--);
18436 return NULL;
18437 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018438 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018439 Token * _literal;
18440 withitem_ty elem;
18441 while (
18442 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18443 &&
18444 (elem = with_item_rule(p)) // with_item
18445 )
18446 {
18447 _res = elem;
18448 if (_res == NULL && PyErr_Occurred()) {
18449 p->error_indicator = 1;
18450 PyMem_Free(_children);
18451 D(p->level--);
18452 return NULL;
18453 }
18454 if (_n == _children_capacity) {
18455 _children_capacity *= 2;
18456 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18457 if (!_new_children) {
18458 p->error_indicator = 1;
18459 PyErr_NoMemory();
18460 D(p->level--);
18461 return NULL;
18462 }
18463 _children = _new_children;
18464 }
18465 _children[_n++] = _res;
18466 _mark = p->mark;
18467 }
18468 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018469 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018470 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
18471 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018472 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018473 if (!_seq) {
18474 PyMem_Free(_children);
18475 p->error_indicator = 1;
18476 PyErr_NoMemory();
18477 D(p->level--);
18478 return NULL;
18479 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018480 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018481 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018482 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018483 D(p->level--);
18484 return _seq;
18485}
18486
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018487// _gather_45: with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018488static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018489_gather_45_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018490{
18491 D(p->level++);
18492 if (p->error_indicator) {
18493 D(p->level--);
18494 return NULL;
18495 }
18496 asdl_seq * _res = NULL;
18497 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018498 { // with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018499 if (p->error_indicator) {
18500 D(p->level--);
18501 return NULL;
18502 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018503 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 +010018504 withitem_ty elem;
18505 asdl_seq * seq;
18506 if (
18507 (elem = with_item_rule(p)) // with_item
18508 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018509 (seq = _loop0_46_rule(p)) // _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018510 )
18511 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018512 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 +010018513 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18514 goto done;
18515 }
18516 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018517 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
18518 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018519 }
18520 _res = NULL;
18521 done:
18522 D(p->level--);
18523 return _res;
18524}
18525
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018526// _tmp_47: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018527static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018528_tmp_47_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018529{
18530 D(p->level++);
18531 if (p->error_indicator) {
18532 D(p->level--);
18533 return NULL;
18534 }
18535 void * _res = NULL;
18536 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018537 { // ','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018538 if (p->error_indicator) {
18539 D(p->level--);
18540 return NULL;
18541 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018542 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
18543 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018544 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018545 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018546 )
18547 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018548 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
18549 _res = _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018550 goto done;
18551 }
18552 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018553 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18554 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
18555 }
18556 { // ')'
18557 if (p->error_indicator) {
18558 D(p->level--);
18559 return NULL;
18560 }
18561 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
18562 Token * _literal;
18563 if (
18564 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
18565 )
18566 {
18567 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
18568 _res = _literal;
18569 goto done;
18570 }
18571 p->mark = _mark;
18572 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
18574 }
18575 { // ':'
18576 if (p->error_indicator) {
18577 D(p->level--);
18578 return NULL;
18579 }
18580 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
18581 Token * _literal;
18582 if (
18583 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
18584 )
18585 {
18586 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
18587 _res = _literal;
18588 goto done;
18589 }
18590 p->mark = _mark;
18591 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18592 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018593 }
18594 _res = NULL;
18595 done:
18596 D(p->level--);
18597 return _res;
18598}
18599
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018600// _loop1_48: except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018601static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018602_loop1_48_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018603{
18604 D(p->level++);
18605 if (p->error_indicator) {
18606 D(p->level--);
18607 return NULL;
18608 }
18609 void *_res = NULL;
18610 int _mark = p->mark;
18611 int _start_mark = p->mark;
18612 void **_children = PyMem_Malloc(sizeof(void *));
18613 if (!_children) {
18614 p->error_indicator = 1;
18615 PyErr_NoMemory();
18616 D(p->level--);
18617 return NULL;
18618 }
18619 ssize_t _children_capacity = 1;
18620 ssize_t _n = 0;
18621 { // except_block
18622 if (p->error_indicator) {
18623 D(p->level--);
18624 return NULL;
18625 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018626 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018627 excepthandler_ty except_block_var;
18628 while (
18629 (except_block_var = except_block_rule(p)) // except_block
18630 )
18631 {
18632 _res = except_block_var;
18633 if (_n == _children_capacity) {
18634 _children_capacity *= 2;
18635 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18636 if (!_new_children) {
18637 p->error_indicator = 1;
18638 PyErr_NoMemory();
18639 D(p->level--);
18640 return NULL;
18641 }
18642 _children = _new_children;
18643 }
18644 _children[_n++] = _res;
18645 _mark = p->mark;
18646 }
18647 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018648 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
18650 }
18651 if (_n == 0 || p->error_indicator) {
18652 PyMem_Free(_children);
18653 D(p->level--);
18654 return NULL;
18655 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018656 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018657 if (!_seq) {
18658 PyMem_Free(_children);
18659 p->error_indicator = 1;
18660 PyErr_NoMemory();
18661 D(p->level--);
18662 return NULL;
18663 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018664 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018665 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018666 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018667 D(p->level--);
18668 return _seq;
18669}
18670
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018671// _tmp_49: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018672static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018673_tmp_49_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018674{
18675 D(p->level++);
18676 if (p->error_indicator) {
18677 D(p->level--);
18678 return NULL;
18679 }
18680 void * _res = NULL;
18681 int _mark = p->mark;
18682 { // 'as' NAME
18683 if (p->error_indicator) {
18684 D(p->level--);
18685 return NULL;
18686 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018687 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018688 Token * _keyword;
18689 expr_ty z;
18690 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018691 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018692 &&
18693 (z = _PyPegen_name_token(p)) // NAME
18694 )
18695 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018696 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 +010018697 _res = z;
18698 if (_res == NULL && PyErr_Occurred()) {
18699 p->error_indicator = 1;
18700 D(p->level--);
18701 return NULL;
18702 }
18703 goto done;
18704 }
18705 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018706 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018707 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
18708 }
18709 _res = NULL;
18710 done:
18711 D(p->level--);
18712 return _res;
18713}
18714
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018715// _tmp_50: 'from' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018716static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018717_tmp_50_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018718{
18719 D(p->level++);
18720 if (p->error_indicator) {
18721 D(p->level--);
18722 return NULL;
18723 }
18724 void * _res = NULL;
18725 int _mark = p->mark;
18726 { // 'from' expression
18727 if (p->error_indicator) {
18728 D(p->level--);
18729 return NULL;
18730 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018731 D(fprintf(stderr, "%*c> _tmp_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018732 Token * _keyword;
18733 expr_ty z;
18734 if (
18735 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
18736 &&
18737 (z = expression_rule(p)) // expression
18738 )
18739 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018740 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 +010018741 _res = z;
18742 if (_res == NULL && PyErr_Occurred()) {
18743 p->error_indicator = 1;
18744 D(p->level--);
18745 return NULL;
18746 }
18747 goto done;
18748 }
18749 p->mark = _mark;
18750 D(fprintf(stderr, "%*c%s _tmp_50[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018751 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018752 }
18753 _res = NULL;
18754 done:
18755 D(p->level--);
18756 return _res;
18757}
18758
18759// _tmp_51: '->' expression
18760static void *
18761_tmp_51_rule(Parser *p)
18762{
18763 D(p->level++);
18764 if (p->error_indicator) {
18765 D(p->level--);
18766 return NULL;
18767 }
18768 void * _res = NULL;
18769 int _mark = p->mark;
18770 { // '->' expression
18771 if (p->error_indicator) {
18772 D(p->level--);
18773 return NULL;
18774 }
18775 D(fprintf(stderr, "%*c> _tmp_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18776 Token * _literal;
18777 expr_ty z;
18778 if (
18779 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
18780 &&
18781 (z = expression_rule(p)) // expression
18782 )
18783 {
18784 D(fprintf(stderr, "%*c+ _tmp_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18785 _res = z;
18786 if (_res == NULL && PyErr_Occurred()) {
18787 p->error_indicator = 1;
18788 D(p->level--);
18789 return NULL;
18790 }
18791 goto done;
18792 }
18793 p->mark = _mark;
18794 D(fprintf(stderr, "%*c%s _tmp_51[%d-%d]: %s failed!\n", p->level, ' ',
18795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
18796 }
18797 _res = NULL;
18798 done:
18799 D(p->level--);
18800 return _res;
18801}
18802
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018803// _tmp_52: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018804static void *
18805_tmp_52_rule(Parser *p)
18806{
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;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018814 { // '->' expression
18815 if (p->error_indicator) {
18816 D(p->level--);
18817 return NULL;
18818 }
18819 D(fprintf(stderr, "%*c> _tmp_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18820 Token * _literal;
18821 expr_ty z;
18822 if (
18823 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
18824 &&
18825 (z = expression_rule(p)) // expression
18826 )
18827 {
18828 D(fprintf(stderr, "%*c+ _tmp_52[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18829 _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;
18838 D(fprintf(stderr, "%*c%s _tmp_52[%d-%d]: %s failed!\n", p->level, ' ',
18839 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
18840 }
18841 _res = NULL;
18842 done:
18843 D(p->level--);
18844 return _res;
18845}
18846
18847// _tmp_53: NEWLINE INDENT
18848static void *
18849_tmp_53_rule(Parser *p)
18850{
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;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018858 { // NEWLINE INDENT
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_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018864 Token * indent_var;
18865 Token * newline_var;
18866 if (
18867 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18868 &&
18869 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
18870 )
18871 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018872 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 +010018873 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
18874 goto done;
18875 }
18876 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018877 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
18879 }
18880 _res = NULL;
18881 done:
18882 D(p->level--);
18883 return _res;
18884}
18885
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018886// _loop0_54: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018887static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018888_loop0_54_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018889{
18890 D(p->level++);
18891 if (p->error_indicator) {
18892 D(p->level--);
18893 return NULL;
18894 }
18895 void *_res = NULL;
18896 int _mark = p->mark;
18897 int _start_mark = p->mark;
18898 void **_children = PyMem_Malloc(sizeof(void *));
18899 if (!_children) {
18900 p->error_indicator = 1;
18901 PyErr_NoMemory();
18902 D(p->level--);
18903 return NULL;
18904 }
18905 ssize_t _children_capacity = 1;
18906 ssize_t _n = 0;
18907 { // param_no_default
18908 if (p->error_indicator) {
18909 D(p->level--);
18910 return NULL;
18911 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018912 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 +010018913 arg_ty param_no_default_var;
18914 while (
18915 (param_no_default_var = param_no_default_rule(p)) // param_no_default
18916 )
18917 {
18918 _res = param_no_default_var;
18919 if (_n == _children_capacity) {
18920 _children_capacity *= 2;
18921 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18922 if (!_new_children) {
18923 p->error_indicator = 1;
18924 PyErr_NoMemory();
18925 D(p->level--);
18926 return NULL;
18927 }
18928 _children = _new_children;
18929 }
18930 _children[_n++] = _res;
18931 _mark = p->mark;
18932 }
18933 p->mark = _mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018934 D(fprintf(stderr, "%*c%s _loop0_54[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018935 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018936 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018937 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018938 if (!_seq) {
18939 PyMem_Free(_children);
18940 p->error_indicator = 1;
18941 PyErr_NoMemory();
18942 D(p->level--);
18943 return NULL;
18944 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018945 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018946 PyMem_Free(_children);
18947 _PyPegen_insert_memo(p, _start_mark, _loop0_54_type, _seq);
18948 D(p->level--);
18949 return _seq;
18950}
18951
18952// _loop0_55: param_with_default
18953static asdl_seq *
18954_loop0_55_rule(Parser *p)
18955{
18956 D(p->level++);
18957 if (p->error_indicator) {
18958 D(p->level--);
18959 return NULL;
18960 }
18961 void *_res = NULL;
18962 int _mark = p->mark;
18963 int _start_mark = p->mark;
18964 void **_children = PyMem_Malloc(sizeof(void *));
18965 if (!_children) {
18966 p->error_indicator = 1;
18967 PyErr_NoMemory();
18968 D(p->level--);
18969 return NULL;
18970 }
18971 ssize_t _children_capacity = 1;
18972 ssize_t _n = 0;
18973 { // param_with_default
18974 if (p->error_indicator) {
18975 D(p->level--);
18976 return NULL;
18977 }
18978 D(fprintf(stderr, "%*c> _loop0_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
18979 NameDefaultPair* param_with_default_var;
18980 while (
18981 (param_with_default_var = param_with_default_rule(p)) // param_with_default
18982 )
18983 {
18984 _res = param_with_default_var;
18985 if (_n == _children_capacity) {
18986 _children_capacity *= 2;
18987 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18988 if (!_new_children) {
18989 p->error_indicator = 1;
18990 PyErr_NoMemory();
18991 D(p->level--);
18992 return NULL;
18993 }
18994 _children = _new_children;
18995 }
18996 _children[_n++] = _res;
18997 _mark = p->mark;
18998 }
18999 p->mark = _mark;
19000 D(fprintf(stderr, "%*c%s _loop0_55[%d-%d]: %s failed!\n", p->level, ' ',
19001 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
19002 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019003 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019004 if (!_seq) {
19005 PyMem_Free(_children);
19006 p->error_indicator = 1;
19007 PyErr_NoMemory();
19008 D(p->level--);
19009 return NULL;
19010 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019011 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019012 PyMem_Free(_children);
19013 _PyPegen_insert_memo(p, _start_mark, _loop0_55_type, _seq);
19014 D(p->level--);
19015 return _seq;
19016}
19017
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019018// _loop0_56: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019019static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019020_loop0_56_rule(Parser *p)
19021{
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_with_default
19040 if (p->error_indicator) {
19041 D(p->level--);
19042 return NULL;
19043 }
19044 D(fprintf(stderr, "%*c> _loop0_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
19045 NameDefaultPair* param_with_default_var;
19046 while (
19047 (param_with_default_var = param_with_default_rule(p)) // param_with_default
19048 )
19049 {
19050 _res = param_with_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;
19066 D(fprintf(stderr, "%*c%s _loop0_56[%d-%d]: %s failed!\n", p->level, ' ',
19067 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
19068 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019069 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019070 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]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019078 PyMem_Free(_children);
19079 _PyPegen_insert_memo(p, _start_mark, _loop0_56_type, _seq);
19080 D(p->level--);
19081 return _seq;
19082}
19083
19084// _loop1_57: param_no_default
19085static asdl_seq *
19086_loop1_57_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019087{
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_no_default
19106 if (p->error_indicator) {
19107 D(p->level--);
19108 return NULL;
19109 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019110 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 +010019111 arg_ty param_no_default_var;
19112 while (
19113 (param_no_default_var = param_no_default_rule(p)) // param_no_default
19114 )
19115 {
19116 _res = param_no_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;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019132 D(fprintf(stderr, "%*c%s _loop1_57[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
19134 }
19135 if (_n == 0 || p->error_indicator) {
19136 PyMem_Free(_children);
19137 D(p->level--);
19138 return NULL;
19139 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019140 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019141 if (!_seq) {
19142 PyMem_Free(_children);
19143 p->error_indicator = 1;
19144 PyErr_NoMemory();
19145 D(p->level--);
19146 return NULL;
19147 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019148 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019149 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019150 _PyPegen_insert_memo(p, _start_mark, _loop1_57_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019151 D(p->level--);
19152 return _seq;
19153}
19154
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019155// _loop0_58: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019156static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019157_loop0_58_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019158{
19159 D(p->level++);
19160 if (p->error_indicator) {
19161 D(p->level--);
19162 return NULL;
19163 }
19164 void *_res = NULL;
19165 int _mark = p->mark;
19166 int _start_mark = p->mark;
19167 void **_children = PyMem_Malloc(sizeof(void *));
19168 if (!_children) {
19169 p->error_indicator = 1;
19170 PyErr_NoMemory();
19171 D(p->level--);
19172 return NULL;
19173 }
19174 ssize_t _children_capacity = 1;
19175 ssize_t _n = 0;
19176 { // param_with_default
19177 if (p->error_indicator) {
19178 D(p->level--);
19179 return NULL;
19180 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019181 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 +010019182 NameDefaultPair* param_with_default_var;
19183 while (
19184 (param_with_default_var = param_with_default_rule(p)) // param_with_default
19185 )
19186 {
19187 _res = param_with_default_var;
19188 if (_n == _children_capacity) {
19189 _children_capacity *= 2;
19190 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19191 if (!_new_children) {
19192 p->error_indicator = 1;
19193 PyErr_NoMemory();
19194 D(p->level--);
19195 return NULL;
19196 }
19197 _children = _new_children;
19198 }
19199 _children[_n++] = _res;
19200 _mark = p->mark;
19201 }
19202 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019203 D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019204 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
19205 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019206 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019207 if (!_seq) {
19208 PyMem_Free(_children);
19209 p->error_indicator = 1;
19210 PyErr_NoMemory();
19211 D(p->level--);
19212 return NULL;
19213 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019214 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019215 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019216 _PyPegen_insert_memo(p, _start_mark, _loop0_58_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019217 D(p->level--);
19218 return _seq;
19219}
19220
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019221// _loop1_59: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019222static asdl_seq *
19223_loop1_59_rule(Parser *p)
19224{
19225 D(p->level++);
19226 if (p->error_indicator) {
19227 D(p->level--);
19228 return NULL;
19229 }
19230 void *_res = NULL;
19231 int _mark = p->mark;
19232 int _start_mark = p->mark;
19233 void **_children = PyMem_Malloc(sizeof(void *));
19234 if (!_children) {
19235 p->error_indicator = 1;
19236 PyErr_NoMemory();
19237 D(p->level--);
19238 return NULL;
19239 }
19240 ssize_t _children_capacity = 1;
19241 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019242 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019243 if (p->error_indicator) {
19244 D(p->level--);
19245 return NULL;
19246 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019247 D(fprintf(stderr, "%*c> _loop1_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
19248 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019249 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019250 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019251 )
19252 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019253 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019254 if (_n == _children_capacity) {
19255 _children_capacity *= 2;
19256 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19257 if (!_new_children) {
19258 p->error_indicator = 1;
19259 PyErr_NoMemory();
19260 D(p->level--);
19261 return NULL;
19262 }
19263 _children = _new_children;
19264 }
19265 _children[_n++] = _res;
19266 _mark = p->mark;
19267 }
19268 p->mark = _mark;
19269 D(fprintf(stderr, "%*c%s _loop1_59[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019270 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019271 }
19272 if (_n == 0 || p->error_indicator) {
19273 PyMem_Free(_children);
19274 D(p->level--);
19275 return NULL;
19276 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019277 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019278 if (!_seq) {
19279 PyMem_Free(_children);
19280 p->error_indicator = 1;
19281 PyErr_NoMemory();
19282 D(p->level--);
19283 return NULL;
19284 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019285 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019286 PyMem_Free(_children);
19287 _PyPegen_insert_memo(p, _start_mark, _loop1_59_type, _seq);
19288 D(p->level--);
19289 return _seq;
19290}
19291
19292// _loop1_60: param_no_default
19293static asdl_seq *
19294_loop1_60_rule(Parser *p)
19295{
19296 D(p->level++);
19297 if (p->error_indicator) {
19298 D(p->level--);
19299 return NULL;
19300 }
19301 void *_res = NULL;
19302 int _mark = p->mark;
19303 int _start_mark = p->mark;
19304 void **_children = PyMem_Malloc(sizeof(void *));
19305 if (!_children) {
19306 p->error_indicator = 1;
19307 PyErr_NoMemory();
19308 D(p->level--);
19309 return NULL;
19310 }
19311 ssize_t _children_capacity = 1;
19312 ssize_t _n = 0;
19313 { // param_no_default
19314 if (p->error_indicator) {
19315 D(p->level--);
19316 return NULL;
19317 }
19318 D(fprintf(stderr, "%*c> _loop1_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
19319 arg_ty param_no_default_var;
19320 while (
19321 (param_no_default_var = param_no_default_rule(p)) // param_no_default
19322 )
19323 {
19324 _res = param_no_default_var;
19325 if (_n == _children_capacity) {
19326 _children_capacity *= 2;
19327 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19328 if (!_new_children) {
19329 p->error_indicator = 1;
19330 PyErr_NoMemory();
19331 D(p->level--);
19332 return NULL;
19333 }
19334 _children = _new_children;
19335 }
19336 _children[_n++] = _res;
19337 _mark = p->mark;
19338 }
19339 p->mark = _mark;
19340 D(fprintf(stderr, "%*c%s _loop1_60[%d-%d]: %s failed!\n", p->level, ' ',
19341 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
19342 }
19343 if (_n == 0 || p->error_indicator) {
19344 PyMem_Free(_children);
19345 D(p->level--);
19346 return NULL;
19347 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019348 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019349 if (!_seq) {
19350 PyMem_Free(_children);
19351 p->error_indicator = 1;
19352 PyErr_NoMemory();
19353 D(p->level--);
19354 return NULL;
19355 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019356 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019357 PyMem_Free(_children);
19358 _PyPegen_insert_memo(p, _start_mark, _loop1_60_type, _seq);
19359 D(p->level--);
19360 return _seq;
19361}
19362
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019363// _loop1_61: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019364static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019365_loop1_61_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019366{
19367 D(p->level++);
19368 if (p->error_indicator) {
19369 D(p->level--);
19370 return NULL;
19371 }
19372 void *_res = NULL;
19373 int _mark = p->mark;
19374 int _start_mark = p->mark;
19375 void **_children = PyMem_Malloc(sizeof(void *));
19376 if (!_children) {
19377 p->error_indicator = 1;
19378 PyErr_NoMemory();
19379 D(p->level--);
19380 return NULL;
19381 }
19382 ssize_t _children_capacity = 1;
19383 ssize_t _n = 0;
19384 { // param_no_default
19385 if (p->error_indicator) {
19386 D(p->level--);
19387 return NULL;
19388 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019389 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 +010019390 arg_ty param_no_default_var;
19391 while (
19392 (param_no_default_var = param_no_default_rule(p)) // param_no_default
19393 )
19394 {
19395 _res = param_no_default_var;
19396 if (_n == _children_capacity) {
19397 _children_capacity *= 2;
19398 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19399 if (!_new_children) {
19400 p->error_indicator = 1;
19401 PyErr_NoMemory();
19402 D(p->level--);
19403 return NULL;
19404 }
19405 _children = _new_children;
19406 }
19407 _children[_n++] = _res;
19408 _mark = p->mark;
19409 }
19410 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019411 D(fprintf(stderr, "%*c%s _loop1_61[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019412 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
19413 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019414 if (_n == 0 || p->error_indicator) {
19415 PyMem_Free(_children);
19416 D(p->level--);
19417 return NULL;
19418 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019419 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019420 if (!_seq) {
19421 PyMem_Free(_children);
19422 p->error_indicator = 1;
19423 PyErr_NoMemory();
19424 D(p->level--);
19425 return NULL;
19426 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019427 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019428 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019429 _PyPegen_insert_memo(p, _start_mark, _loop1_61_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019430 D(p->level--);
19431 return _seq;
19432}
19433
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019434// _loop0_62: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019435static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019436_loop0_62_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019437{
19438 D(p->level++);
19439 if (p->error_indicator) {
19440 D(p->level--);
19441 return NULL;
19442 }
19443 void *_res = NULL;
19444 int _mark = p->mark;
19445 int _start_mark = p->mark;
19446 void **_children = PyMem_Malloc(sizeof(void *));
19447 if (!_children) {
19448 p->error_indicator = 1;
19449 PyErr_NoMemory();
19450 D(p->level--);
19451 return NULL;
19452 }
19453 ssize_t _children_capacity = 1;
19454 ssize_t _n = 0;
19455 { // param_no_default
19456 if (p->error_indicator) {
19457 D(p->level--);
19458 return NULL;
19459 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019460 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 +010019461 arg_ty param_no_default_var;
19462 while (
19463 (param_no_default_var = param_no_default_rule(p)) // param_no_default
19464 )
19465 {
19466 _res = param_no_default_var;
19467 if (_n == _children_capacity) {
19468 _children_capacity *= 2;
19469 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19470 if (!_new_children) {
19471 p->error_indicator = 1;
19472 PyErr_NoMemory();
19473 D(p->level--);
19474 return NULL;
19475 }
19476 _children = _new_children;
19477 }
19478 _children[_n++] = _res;
19479 _mark = p->mark;
19480 }
19481 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019482 D(fprintf(stderr, "%*c%s _loop0_62[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019483 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
19484 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019485 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019486 if (!_seq) {
19487 PyMem_Free(_children);
19488 p->error_indicator = 1;
19489 PyErr_NoMemory();
19490 D(p->level--);
19491 return NULL;
19492 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019493 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019494 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019495 _PyPegen_insert_memo(p, _start_mark, _loop0_62_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019496 D(p->level--);
19497 return _seq;
19498}
19499
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019500// _loop1_63: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019501static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019502_loop1_63_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019503{
19504 D(p->level++);
19505 if (p->error_indicator) {
19506 D(p->level--);
19507 return NULL;
19508 }
19509 void *_res = NULL;
19510 int _mark = p->mark;
19511 int _start_mark = p->mark;
19512 void **_children = PyMem_Malloc(sizeof(void *));
19513 if (!_children) {
19514 p->error_indicator = 1;
19515 PyErr_NoMemory();
19516 D(p->level--);
19517 return NULL;
19518 }
19519 ssize_t _children_capacity = 1;
19520 ssize_t _n = 0;
19521 { // param_with_default
19522 if (p->error_indicator) {
19523 D(p->level--);
19524 return NULL;
19525 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019526 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 +010019527 NameDefaultPair* param_with_default_var;
19528 while (
19529 (param_with_default_var = param_with_default_rule(p)) // param_with_default
19530 )
19531 {
19532 _res = param_with_default_var;
19533 if (_n == _children_capacity) {
19534 _children_capacity *= 2;
19535 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19536 if (!_new_children) {
19537 p->error_indicator = 1;
19538 PyErr_NoMemory();
19539 D(p->level--);
19540 return NULL;
19541 }
19542 _children = _new_children;
19543 }
19544 _children[_n++] = _res;
19545 _mark = p->mark;
19546 }
19547 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019548 D(fprintf(stderr, "%*c%s _loop1_63[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019549 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
19550 }
19551 if (_n == 0 || p->error_indicator) {
19552 PyMem_Free(_children);
19553 D(p->level--);
19554 return NULL;
19555 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019556 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019557 if (!_seq) {
19558 PyMem_Free(_children);
19559 p->error_indicator = 1;
19560 PyErr_NoMemory();
19561 D(p->level--);
19562 return NULL;
19563 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019564 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019565 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019566 _PyPegen_insert_memo(p, _start_mark, _loop1_63_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019567 D(p->level--);
19568 return _seq;
19569}
19570
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019571// _loop0_64: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019572static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019573_loop0_64_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019574{
19575 D(p->level++);
19576 if (p->error_indicator) {
19577 D(p->level--);
19578 return NULL;
19579 }
19580 void *_res = NULL;
19581 int _mark = p->mark;
19582 int _start_mark = p->mark;
19583 void **_children = PyMem_Malloc(sizeof(void *));
19584 if (!_children) {
19585 p->error_indicator = 1;
19586 PyErr_NoMemory();
19587 D(p->level--);
19588 return NULL;
19589 }
19590 ssize_t _children_capacity = 1;
19591 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019592 { // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019593 if (p->error_indicator) {
19594 D(p->level--);
19595 return NULL;
19596 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019597 D(fprintf(stderr, "%*c> _loop0_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
19598 arg_ty param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019599 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019600 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019601 )
19602 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019603 _res = param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019604 if (_n == _children_capacity) {
19605 _children_capacity *= 2;
19606 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19607 if (!_new_children) {
19608 p->error_indicator = 1;
19609 PyErr_NoMemory();
19610 D(p->level--);
19611 return NULL;
19612 }
19613 _children = _new_children;
19614 }
19615 _children[_n++] = _res;
19616 _mark = p->mark;
19617 }
19618 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019619 D(fprintf(stderr, "%*c%s _loop0_64[%d-%d]: %s failed!\n", p->level, ' ',
19620 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019621 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019622 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019623 if (!_seq) {
19624 PyMem_Free(_children);
19625 p->error_indicator = 1;
19626 PyErr_NoMemory();
19627 D(p->level--);
19628 return NULL;
19629 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019630 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019631 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019632 _PyPegen_insert_memo(p, _start_mark, _loop0_64_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019633 D(p->level--);
19634 return _seq;
19635}
19636
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019637// _loop1_65: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019638static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019639_loop1_65_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019640{
19641 D(p->level++);
19642 if (p->error_indicator) {
19643 D(p->level--);
19644 return NULL;
19645 }
19646 void *_res = NULL;
19647 int _mark = p->mark;
19648 int _start_mark = p->mark;
19649 void **_children = PyMem_Malloc(sizeof(void *));
19650 if (!_children) {
19651 p->error_indicator = 1;
19652 PyErr_NoMemory();
19653 D(p->level--);
19654 return NULL;
19655 }
19656 ssize_t _children_capacity = 1;
19657 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019658 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019659 if (p->error_indicator) {
19660 D(p->level--);
19661 return NULL;
19662 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019663 D(fprintf(stderr, "%*c> _loop1_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
19664 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019665 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019666 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019667 )
19668 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019669 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019670 if (_n == _children_capacity) {
19671 _children_capacity *= 2;
19672 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19673 if (!_new_children) {
19674 p->error_indicator = 1;
19675 PyErr_NoMemory();
19676 D(p->level--);
19677 return NULL;
19678 }
19679 _children = _new_children;
19680 }
19681 _children[_n++] = _res;
19682 _mark = p->mark;
19683 }
19684 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019685 D(fprintf(stderr, "%*c%s _loop1_65[%d-%d]: %s failed!\n", p->level, ' ',
19686 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019687 }
19688 if (_n == 0 || p->error_indicator) {
19689 PyMem_Free(_children);
19690 D(p->level--);
19691 return NULL;
19692 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019693 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019694 if (!_seq) {
19695 PyMem_Free(_children);
19696 p->error_indicator = 1;
19697 PyErr_NoMemory();
19698 D(p->level--);
19699 return NULL;
19700 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019701 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019702 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019703 _PyPegen_insert_memo(p, _start_mark, _loop1_65_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019704 D(p->level--);
19705 return _seq;
19706}
19707
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019708// _loop0_66: param_maybe_default
19709static asdl_seq *
19710_loop0_66_rule(Parser *p)
19711{
19712 D(p->level++);
19713 if (p->error_indicator) {
19714 D(p->level--);
19715 return NULL;
19716 }
19717 void *_res = NULL;
19718 int _mark = p->mark;
19719 int _start_mark = p->mark;
19720 void **_children = PyMem_Malloc(sizeof(void *));
19721 if (!_children) {
19722 p->error_indicator = 1;
19723 PyErr_NoMemory();
19724 D(p->level--);
19725 return NULL;
19726 }
19727 ssize_t _children_capacity = 1;
19728 ssize_t _n = 0;
19729 { // param_maybe_default
19730 if (p->error_indicator) {
19731 D(p->level--);
19732 return NULL;
19733 }
19734 D(fprintf(stderr, "%*c> _loop0_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
19735 NameDefaultPair* param_maybe_default_var;
19736 while (
19737 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
19738 )
19739 {
19740 _res = param_maybe_default_var;
19741 if (_n == _children_capacity) {
19742 _children_capacity *= 2;
19743 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19744 if (!_new_children) {
19745 p->error_indicator = 1;
19746 PyErr_NoMemory();
19747 D(p->level--);
19748 return NULL;
19749 }
19750 _children = _new_children;
19751 }
19752 _children[_n++] = _res;
19753 _mark = p->mark;
19754 }
19755 p->mark = _mark;
19756 D(fprintf(stderr, "%*c%s _loop0_66[%d-%d]: %s failed!\n", p->level, ' ',
19757 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
19758 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019759 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019760 if (!_seq) {
19761 PyMem_Free(_children);
19762 p->error_indicator = 1;
19763 PyErr_NoMemory();
19764 D(p->level--);
19765 return NULL;
19766 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019767 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019768 PyMem_Free(_children);
19769 _PyPegen_insert_memo(p, _start_mark, _loop0_66_type, _seq);
19770 D(p->level--);
19771 return _seq;
19772}
19773
19774// _loop1_67: param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019775static asdl_seq *
19776_loop1_67_rule(Parser *p)
19777{
19778 D(p->level++);
19779 if (p->error_indicator) {
19780 D(p->level--);
19781 return NULL;
19782 }
19783 void *_res = NULL;
19784 int _mark = p->mark;
19785 int _start_mark = p->mark;
19786 void **_children = PyMem_Malloc(sizeof(void *));
19787 if (!_children) {
19788 p->error_indicator = 1;
19789 PyErr_NoMemory();
19790 D(p->level--);
19791 return NULL;
19792 }
19793 ssize_t _children_capacity = 1;
19794 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019795 { // param_maybe_default
19796 if (p->error_indicator) {
19797 D(p->level--);
19798 return NULL;
19799 }
19800 D(fprintf(stderr, "%*c> _loop1_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
19801 NameDefaultPair* param_maybe_default_var;
19802 while (
19803 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
19804 )
19805 {
19806 _res = param_maybe_default_var;
19807 if (_n == _children_capacity) {
19808 _children_capacity *= 2;
19809 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19810 if (!_new_children) {
19811 p->error_indicator = 1;
19812 PyErr_NoMemory();
19813 D(p->level--);
19814 return NULL;
19815 }
19816 _children = _new_children;
19817 }
19818 _children[_n++] = _res;
19819 _mark = p->mark;
19820 }
19821 p->mark = _mark;
19822 D(fprintf(stderr, "%*c%s _loop1_67[%d-%d]: %s failed!\n", p->level, ' ',
19823 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
19824 }
19825 if (_n == 0 || p->error_indicator) {
19826 PyMem_Free(_children);
19827 D(p->level--);
19828 return NULL;
19829 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019830 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019831 if (!_seq) {
19832 PyMem_Free(_children);
19833 p->error_indicator = 1;
19834 PyErr_NoMemory();
19835 D(p->level--);
19836 return NULL;
19837 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019838 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019839 PyMem_Free(_children);
19840 _PyPegen_insert_memo(p, _start_mark, _loop1_67_type, _seq);
19841 D(p->level--);
19842 return _seq;
19843}
19844
19845// _loop1_68: ('@' named_expression NEWLINE)
19846static asdl_seq *
19847_loop1_68_rule(Parser *p)
19848{
19849 D(p->level++);
19850 if (p->error_indicator) {
19851 D(p->level--);
19852 return NULL;
19853 }
19854 void *_res = NULL;
19855 int _mark = p->mark;
19856 int _start_mark = p->mark;
19857 void **_children = PyMem_Malloc(sizeof(void *));
19858 if (!_children) {
19859 p->error_indicator = 1;
19860 PyErr_NoMemory();
19861 D(p->level--);
19862 return NULL;
19863 }
19864 ssize_t _children_capacity = 1;
19865 ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019866 { // ('@' named_expression NEWLINE)
19867 if (p->error_indicator) {
19868 D(p->level--);
19869 return NULL;
19870 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019871 D(fprintf(stderr, "%*c> _loop1_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000019872 void *_tmp_142_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019873 while (
Pablo Galindo835f14f2021-01-31 22:52:56 +000019874 (_tmp_142_var = _tmp_142_rule(p)) // '@' named_expression NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019875 )
19876 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000019877 _res = _tmp_142_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019878 if (_n == _children_capacity) {
19879 _children_capacity *= 2;
19880 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19881 if (!_new_children) {
19882 p->error_indicator = 1;
19883 PyErr_NoMemory();
19884 D(p->level--);
19885 return NULL;
19886 }
19887 _children = _new_children;
19888 }
19889 _children[_n++] = _res;
19890 _mark = p->mark;
19891 }
19892 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019893 D(fprintf(stderr, "%*c%s _loop1_68[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
19895 }
19896 if (_n == 0 || p->error_indicator) {
19897 PyMem_Free(_children);
19898 D(p->level--);
19899 return NULL;
19900 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019901 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019902 if (!_seq) {
19903 PyMem_Free(_children);
19904 p->error_indicator = 1;
19905 PyErr_NoMemory();
19906 D(p->level--);
19907 return NULL;
19908 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019909 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019910 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019911 _PyPegen_insert_memo(p, _start_mark, _loop1_68_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019912 D(p->level--);
19913 return _seq;
19914}
19915
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019916// _tmp_69: '(' arguments? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019917static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019918_tmp_69_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019919{
19920 D(p->level++);
19921 if (p->error_indicator) {
19922 D(p->level--);
19923 return NULL;
19924 }
19925 void * _res = NULL;
19926 int _mark = p->mark;
19927 { // '(' arguments? ')'
19928 if (p->error_indicator) {
19929 D(p->level--);
19930 return NULL;
19931 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019932 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019933 Token * _literal;
19934 Token * _literal_1;
19935 void *z;
19936 if (
19937 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19938 &&
19939 (z = arguments_rule(p), 1) // arguments?
19940 &&
19941 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19942 )
19943 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019944 D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019945 _res = z;
19946 if (_res == NULL && PyErr_Occurred()) {
19947 p->error_indicator = 1;
19948 D(p->level--);
19949 return NULL;
19950 }
19951 goto done;
19952 }
19953 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019954 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
19956 }
19957 _res = NULL;
19958 done:
19959 D(p->level--);
19960 return _res;
19961}
19962
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019963// _loop1_70: (',' star_expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019964static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019965_loop1_70_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019966{
19967 D(p->level++);
19968 if (p->error_indicator) {
19969 D(p->level--);
19970 return NULL;
19971 }
19972 void *_res = NULL;
19973 int _mark = p->mark;
19974 int _start_mark = p->mark;
19975 void **_children = PyMem_Malloc(sizeof(void *));
19976 if (!_children) {
19977 p->error_indicator = 1;
19978 PyErr_NoMemory();
19979 D(p->level--);
19980 return NULL;
19981 }
19982 ssize_t _children_capacity = 1;
19983 ssize_t _n = 0;
19984 { // (',' star_expression)
19985 if (p->error_indicator) {
19986 D(p->level--);
19987 return NULL;
19988 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019989 D(fprintf(stderr, "%*c> _loop1_70[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000019990 void *_tmp_143_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019991 while (
Pablo Galindo835f14f2021-01-31 22:52:56 +000019992 (_tmp_143_var = _tmp_143_rule(p)) // ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019993 )
19994 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000019995 _res = _tmp_143_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019996 if (_n == _children_capacity) {
19997 _children_capacity *= 2;
19998 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19999 if (!_new_children) {
20000 p->error_indicator = 1;
20001 PyErr_NoMemory();
20002 D(p->level--);
20003 return NULL;
20004 }
20005 _children = _new_children;
20006 }
20007 _children[_n++] = _res;
20008 _mark = p->mark;
20009 }
20010 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020011 D(fprintf(stderr, "%*c%s _loop1_70[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020012 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
20013 }
20014 if (_n == 0 || p->error_indicator) {
20015 PyMem_Free(_children);
20016 D(p->level--);
20017 return NULL;
20018 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020019 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020020 if (!_seq) {
20021 PyMem_Free(_children);
20022 p->error_indicator = 1;
20023 PyErr_NoMemory();
20024 D(p->level--);
20025 return NULL;
20026 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020027 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020028 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020029 _PyPegen_insert_memo(p, _start_mark, _loop1_70_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020030 D(p->level--);
20031 return _seq;
20032}
20033
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020034// _loop0_72: ',' star_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020035static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020036_loop0_72_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020037{
20038 D(p->level++);
20039 if (p->error_indicator) {
20040 D(p->level--);
20041 return NULL;
20042 }
20043 void *_res = NULL;
20044 int _mark = p->mark;
20045 int _start_mark = p->mark;
20046 void **_children = PyMem_Malloc(sizeof(void *));
20047 if (!_children) {
20048 p->error_indicator = 1;
20049 PyErr_NoMemory();
20050 D(p->level--);
20051 return NULL;
20052 }
20053 ssize_t _children_capacity = 1;
20054 ssize_t _n = 0;
20055 { // ',' star_named_expression
20056 if (p->error_indicator) {
20057 D(p->level--);
20058 return NULL;
20059 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020060 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 +010020061 Token * _literal;
20062 expr_ty elem;
20063 while (
20064 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20065 &&
20066 (elem = star_named_expression_rule(p)) // star_named_expression
20067 )
20068 {
20069 _res = elem;
20070 if (_res == NULL && PyErr_Occurred()) {
20071 p->error_indicator = 1;
20072 PyMem_Free(_children);
20073 D(p->level--);
20074 return NULL;
20075 }
20076 if (_n == _children_capacity) {
20077 _children_capacity *= 2;
20078 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20079 if (!_new_children) {
20080 p->error_indicator = 1;
20081 PyErr_NoMemory();
20082 D(p->level--);
20083 return NULL;
20084 }
20085 _children = _new_children;
20086 }
20087 _children[_n++] = _res;
20088 _mark = p->mark;
20089 }
20090 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020091 D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020092 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
20093 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020094 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020095 if (!_seq) {
20096 PyMem_Free(_children);
20097 p->error_indicator = 1;
20098 PyErr_NoMemory();
20099 D(p->level--);
20100 return NULL;
20101 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020102 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020103 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020104 _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020105 D(p->level--);
20106 return _seq;
20107}
20108
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020109// _gather_71: star_named_expression _loop0_72
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020110static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020111_gather_71_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020112{
20113 D(p->level++);
20114 if (p->error_indicator) {
20115 D(p->level--);
20116 return NULL;
20117 }
20118 asdl_seq * _res = NULL;
20119 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020120 { // star_named_expression _loop0_72
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020121 if (p->error_indicator) {
20122 D(p->level--);
20123 return NULL;
20124 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020125 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 +010020126 expr_ty elem;
20127 asdl_seq * seq;
20128 if (
20129 (elem = star_named_expression_rule(p)) // star_named_expression
20130 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020131 (seq = _loop0_72_rule(p)) // _loop0_72
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020132 )
20133 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020134 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 +010020135 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20136 goto done;
20137 }
20138 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020139 D(fprintf(stderr, "%*c%s _gather_71[%d-%d]: %s failed!\n", p->level, ' ',
20140 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_72"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020141 }
20142 _res = NULL;
20143 done:
20144 D(p->level--);
20145 return _res;
20146}
20147
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020148// _loop1_73: (',' expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020149static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020150_loop1_73_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020151{
20152 D(p->level++);
20153 if (p->error_indicator) {
20154 D(p->level--);
20155 return NULL;
20156 }
20157 void *_res = NULL;
20158 int _mark = p->mark;
20159 int _start_mark = p->mark;
20160 void **_children = PyMem_Malloc(sizeof(void *));
20161 if (!_children) {
20162 p->error_indicator = 1;
20163 PyErr_NoMemory();
20164 D(p->level--);
20165 return NULL;
20166 }
20167 ssize_t _children_capacity = 1;
20168 ssize_t _n = 0;
20169 { // (',' expression)
20170 if (p->error_indicator) {
20171 D(p->level--);
20172 return NULL;
20173 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020174 D(fprintf(stderr, "%*c> _loop1_73[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000020175 void *_tmp_144_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020176 while (
Pablo Galindo835f14f2021-01-31 22:52:56 +000020177 (_tmp_144_var = _tmp_144_rule(p)) // ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020178 )
20179 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000020180 _res = _tmp_144_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020181 if (_n == _children_capacity) {
20182 _children_capacity *= 2;
20183 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20184 if (!_new_children) {
20185 p->error_indicator = 1;
20186 PyErr_NoMemory();
20187 D(p->level--);
20188 return NULL;
20189 }
20190 _children = _new_children;
20191 }
20192 _children[_n++] = _res;
20193 _mark = p->mark;
20194 }
20195 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020196 D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020197 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
20198 }
20199 if (_n == 0 || p->error_indicator) {
20200 PyMem_Free(_children);
20201 D(p->level--);
20202 return NULL;
20203 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020204 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020205 if (!_seq) {
20206 PyMem_Free(_children);
20207 p->error_indicator = 1;
20208 PyErr_NoMemory();
20209 D(p->level--);
20210 return NULL;
20211 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020212 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020213 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020214 _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020215 D(p->level--);
20216 return _seq;
20217}
20218
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020219// _loop0_74: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020220static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020221_loop0_74_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020222{
20223 D(p->level++);
20224 if (p->error_indicator) {
20225 D(p->level--);
20226 return NULL;
20227 }
20228 void *_res = NULL;
20229 int _mark = p->mark;
20230 int _start_mark = p->mark;
20231 void **_children = PyMem_Malloc(sizeof(void *));
20232 if (!_children) {
20233 p->error_indicator = 1;
20234 PyErr_NoMemory();
20235 D(p->level--);
20236 return NULL;
20237 }
20238 ssize_t _children_capacity = 1;
20239 ssize_t _n = 0;
20240 { // lambda_param_no_default
20241 if (p->error_indicator) {
20242 D(p->level--);
20243 return NULL;
20244 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020245 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 +010020246 arg_ty lambda_param_no_default_var;
20247 while (
20248 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
20249 )
20250 {
20251 _res = lambda_param_no_default_var;
20252 if (_n == _children_capacity) {
20253 _children_capacity *= 2;
20254 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20255 if (!_new_children) {
20256 p->error_indicator = 1;
20257 PyErr_NoMemory();
20258 D(p->level--);
20259 return NULL;
20260 }
20261 _children = _new_children;
20262 }
20263 _children[_n++] = _res;
20264 _mark = p->mark;
20265 }
20266 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020267 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020268 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020269 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020270 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020271 if (!_seq) {
20272 PyMem_Free(_children);
20273 p->error_indicator = 1;
20274 PyErr_NoMemory();
20275 D(p->level--);
20276 return NULL;
20277 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020278 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020279 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020280 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020281 D(p->level--);
20282 return _seq;
20283}
20284
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020285// _loop0_75: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020286static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020287_loop0_75_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020288{
20289 D(p->level++);
20290 if (p->error_indicator) {
20291 D(p->level--);
20292 return NULL;
20293 }
20294 void *_res = NULL;
20295 int _mark = p->mark;
20296 int _start_mark = p->mark;
20297 void **_children = PyMem_Malloc(sizeof(void *));
20298 if (!_children) {
20299 p->error_indicator = 1;
20300 PyErr_NoMemory();
20301 D(p->level--);
20302 return NULL;
20303 }
20304 ssize_t _children_capacity = 1;
20305 ssize_t _n = 0;
20306 { // lambda_param_with_default
20307 if (p->error_indicator) {
20308 D(p->level--);
20309 return NULL;
20310 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020311 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 +010020312 NameDefaultPair* lambda_param_with_default_var;
20313 while (
20314 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20315 )
20316 {
20317 _res = lambda_param_with_default_var;
20318 if (_n == _children_capacity) {
20319 _children_capacity *= 2;
20320 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20321 if (!_new_children) {
20322 p->error_indicator = 1;
20323 PyErr_NoMemory();
20324 D(p->level--);
20325 return NULL;
20326 }
20327 _children = _new_children;
20328 }
20329 _children[_n++] = _res;
20330 _mark = p->mark;
20331 }
20332 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020333 D(fprintf(stderr, "%*c%s _loop0_75[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020334 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
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, _loop0_75_type, _seq);
20347 D(p->level--);
20348 return _seq;
20349}
20350
20351// _loop0_76: lambda_param_with_default
20352static asdl_seq *
20353_loop0_76_rule(Parser *p)
20354{
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_with_default
20373 if (p->error_indicator) {
20374 D(p->level--);
20375 return NULL;
20376 }
20377 D(fprintf(stderr, "%*c> _loop0_76[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20378 NameDefaultPair* lambda_param_with_default_var;
20379 while (
20380 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20381 )
20382 {
20383 _res = lambda_param_with_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;
20399 D(fprintf(stderr, "%*c%s _loop0_76[%d-%d]: %s failed!\n", p->level, ' ',
20400 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
20401 }
20402 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
20403 if (!_seq) {
20404 PyMem_Free(_children);
20405 p->error_indicator = 1;
20406 PyErr_NoMemory();
20407 D(p->level--);
20408 return NULL;
20409 }
20410 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
20411 PyMem_Free(_children);
20412 _PyPegen_insert_memo(p, _start_mark, _loop0_76_type, _seq);
20413 D(p->level--);
20414 return _seq;
20415}
20416
20417// _loop1_77: lambda_param_no_default
20418static asdl_seq *
20419_loop1_77_rule(Parser *p)
20420{
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_no_default
20439 if (p->error_indicator) {
20440 D(p->level--);
20441 return NULL;
20442 }
20443 D(fprintf(stderr, "%*c> _loop1_77[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
20444 arg_ty lambda_param_no_default_var;
20445 while (
20446 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
20447 )
20448 {
20449 _res = lambda_param_no_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;
20465 D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
20466 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
20467 }
20468 if (_n == 0 || p->error_indicator) {
20469 PyMem_Free(_children);
20470 D(p->level--);
20471 return NULL;
20472 }
20473 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
20474 if (!_seq) {
20475 PyMem_Free(_children);
20476 p->error_indicator = 1;
20477 PyErr_NoMemory();
20478 D(p->level--);
20479 return NULL;
20480 }
20481 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
20482 PyMem_Free(_children);
20483 _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020484 D(p->level--);
20485 return _seq;
20486}
20487
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020488// _loop0_78: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020489static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020490_loop0_78_rule(Parser *p)
20491{
20492 D(p->level++);
20493 if (p->error_indicator) {
20494 D(p->level--);
20495 return NULL;
20496 }
20497 void *_res = NULL;
20498 int _mark = p->mark;
20499 int _start_mark = p->mark;
20500 void **_children = PyMem_Malloc(sizeof(void *));
20501 if (!_children) {
20502 p->error_indicator = 1;
20503 PyErr_NoMemory();
20504 D(p->level--);
20505 return NULL;
20506 }
20507 ssize_t _children_capacity = 1;
20508 ssize_t _n = 0;
20509 { // lambda_param_with_default
20510 if (p->error_indicator) {
20511 D(p->level--);
20512 return NULL;
20513 }
20514 D(fprintf(stderr, "%*c> _loop0_78[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20515 NameDefaultPair* lambda_param_with_default_var;
20516 while (
20517 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20518 )
20519 {
20520 _res = lambda_param_with_default_var;
20521 if (_n == _children_capacity) {
20522 _children_capacity *= 2;
20523 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20524 if (!_new_children) {
20525 p->error_indicator = 1;
20526 PyErr_NoMemory();
20527 D(p->level--);
20528 return NULL;
20529 }
20530 _children = _new_children;
20531 }
20532 _children[_n++] = _res;
20533 _mark = p->mark;
20534 }
20535 p->mark = _mark;
20536 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
20537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
20538 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020539 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020540 if (!_seq) {
20541 PyMem_Free(_children);
20542 p->error_indicator = 1;
20543 PyErr_NoMemory();
20544 D(p->level--);
20545 return NULL;
20546 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020547 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020548 PyMem_Free(_children);
20549 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
20550 D(p->level--);
20551 return _seq;
20552}
20553
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020554// _loop1_79: lambda_param_with_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020555static asdl_seq *
20556_loop1_79_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020557{
20558 D(p->level++);
20559 if (p->error_indicator) {
20560 D(p->level--);
20561 return NULL;
20562 }
20563 void *_res = NULL;
20564 int _mark = p->mark;
20565 int _start_mark = p->mark;
20566 void **_children = PyMem_Malloc(sizeof(void *));
20567 if (!_children) {
20568 p->error_indicator = 1;
20569 PyErr_NoMemory();
20570 D(p->level--);
20571 return NULL;
20572 }
20573 ssize_t _children_capacity = 1;
20574 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020575 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020576 if (p->error_indicator) {
20577 D(p->level--);
20578 return NULL;
20579 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020580 D(fprintf(stderr, "%*c> _loop1_79[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20581 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020582 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020583 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020584 )
20585 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020586 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020587 if (_n == _children_capacity) {
20588 _children_capacity *= 2;
20589 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20590 if (!_new_children) {
20591 p->error_indicator = 1;
20592 PyErr_NoMemory();
20593 D(p->level--);
20594 return NULL;
20595 }
20596 _children = _new_children;
20597 }
20598 _children[_n++] = _res;
20599 _mark = p->mark;
20600 }
20601 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020602 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020604 }
20605 if (_n == 0 || p->error_indicator) {
20606 PyMem_Free(_children);
20607 D(p->level--);
20608 return NULL;
20609 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020610 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020611 if (!_seq) {
20612 PyMem_Free(_children);
20613 p->error_indicator = 1;
20614 PyErr_NoMemory();
20615 D(p->level--);
20616 return NULL;
20617 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020618 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020619 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020620 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020621 D(p->level--);
20622 return _seq;
20623}
20624
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020625// _loop1_80: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020626static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020627_loop1_80_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020628{
20629 D(p->level++);
20630 if (p->error_indicator) {
20631 D(p->level--);
20632 return NULL;
20633 }
20634 void *_res = NULL;
20635 int _mark = p->mark;
20636 int _start_mark = p->mark;
20637 void **_children = PyMem_Malloc(sizeof(void *));
20638 if (!_children) {
20639 p->error_indicator = 1;
20640 PyErr_NoMemory();
20641 D(p->level--);
20642 return NULL;
20643 }
20644 ssize_t _children_capacity = 1;
20645 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020646 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020647 if (p->error_indicator) {
20648 D(p->level--);
20649 return NULL;
20650 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020651 D(fprintf(stderr, "%*c> _loop1_80[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
20652 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020653 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020654 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020655 )
20656 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020657 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020658 if (_n == _children_capacity) {
20659 _children_capacity *= 2;
20660 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20661 if (!_new_children) {
20662 p->error_indicator = 1;
20663 PyErr_NoMemory();
20664 D(p->level--);
20665 return NULL;
20666 }
20667 _children = _new_children;
20668 }
20669 _children[_n++] = _res;
20670 _mark = p->mark;
20671 }
20672 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020673 D(fprintf(stderr, "%*c%s _loop1_80[%d-%d]: %s failed!\n", p->level, ' ',
20674 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
20675 }
20676 if (_n == 0 || p->error_indicator) {
20677 PyMem_Free(_children);
20678 D(p->level--);
20679 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020680 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020681 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020682 if (!_seq) {
20683 PyMem_Free(_children);
20684 p->error_indicator = 1;
20685 PyErr_NoMemory();
20686 D(p->level--);
20687 return NULL;
20688 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020689 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020690 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020691 _PyPegen_insert_memo(p, _start_mark, _loop1_80_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020692 D(p->level--);
20693 return _seq;
20694}
20695
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020696// _loop1_81: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020697static asdl_seq *
20698_loop1_81_rule(Parser *p)
20699{
20700 D(p->level++);
20701 if (p->error_indicator) {
20702 D(p->level--);
20703 return NULL;
20704 }
20705 void *_res = NULL;
20706 int _mark = p->mark;
20707 int _start_mark = p->mark;
20708 void **_children = PyMem_Malloc(sizeof(void *));
20709 if (!_children) {
20710 p->error_indicator = 1;
20711 PyErr_NoMemory();
20712 D(p->level--);
20713 return NULL;
20714 }
20715 ssize_t _children_capacity = 1;
20716 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020717 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020718 if (p->error_indicator) {
20719 D(p->level--);
20720 return NULL;
20721 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020722 D(fprintf(stderr, "%*c> _loop1_81[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
20723 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020724 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020725 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020726 )
20727 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020728 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020729 if (_n == _children_capacity) {
20730 _children_capacity *= 2;
20731 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20732 if (!_new_children) {
20733 p->error_indicator = 1;
20734 PyErr_NoMemory();
20735 D(p->level--);
20736 return NULL;
20737 }
20738 _children = _new_children;
20739 }
20740 _children[_n++] = _res;
20741 _mark = p->mark;
20742 }
20743 p->mark = _mark;
20744 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020745 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020746 }
20747 if (_n == 0 || p->error_indicator) {
20748 PyMem_Free(_children);
20749 D(p->level--);
20750 return NULL;
20751 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020752 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020753 if (!_seq) {
20754 PyMem_Free(_children);
20755 p->error_indicator = 1;
20756 PyErr_NoMemory();
20757 D(p->level--);
20758 return NULL;
20759 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020760 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020761 PyMem_Free(_children);
20762 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
20763 D(p->level--);
20764 return _seq;
20765}
20766
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020767// _loop0_82: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020768static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020769_loop0_82_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020770{
20771 D(p->level++);
20772 if (p->error_indicator) {
20773 D(p->level--);
20774 return NULL;
20775 }
20776 void *_res = NULL;
20777 int _mark = p->mark;
20778 int _start_mark = p->mark;
20779 void **_children = PyMem_Malloc(sizeof(void *));
20780 if (!_children) {
20781 p->error_indicator = 1;
20782 PyErr_NoMemory();
20783 D(p->level--);
20784 return NULL;
20785 }
20786 ssize_t _children_capacity = 1;
20787 ssize_t _n = 0;
20788 { // lambda_param_no_default
20789 if (p->error_indicator) {
20790 D(p->level--);
20791 return NULL;
20792 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020793 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 +010020794 arg_ty lambda_param_no_default_var;
20795 while (
20796 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
20797 )
20798 {
20799 _res = lambda_param_no_default_var;
20800 if (_n == _children_capacity) {
20801 _children_capacity *= 2;
20802 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20803 if (!_new_children) {
20804 p->error_indicator = 1;
20805 PyErr_NoMemory();
20806 D(p->level--);
20807 return NULL;
20808 }
20809 _children = _new_children;
20810 }
20811 _children[_n++] = _res;
20812 _mark = p->mark;
20813 }
20814 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020815 D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020816 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
20817 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020818 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020819 if (!_seq) {
20820 PyMem_Free(_children);
20821 p->error_indicator = 1;
20822 PyErr_NoMemory();
20823 D(p->level--);
20824 return NULL;
20825 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020826 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020827 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020828 _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020829 D(p->level--);
20830 return _seq;
20831}
20832
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020833// _loop1_83: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020834static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020835_loop1_83_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020836{
20837 D(p->level++);
20838 if (p->error_indicator) {
20839 D(p->level--);
20840 return NULL;
20841 }
20842 void *_res = NULL;
20843 int _mark = p->mark;
20844 int _start_mark = p->mark;
20845 void **_children = PyMem_Malloc(sizeof(void *));
20846 if (!_children) {
20847 p->error_indicator = 1;
20848 PyErr_NoMemory();
20849 D(p->level--);
20850 return NULL;
20851 }
20852 ssize_t _children_capacity = 1;
20853 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020854 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020855 if (p->error_indicator) {
20856 D(p->level--);
20857 return NULL;
20858 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020859 D(fprintf(stderr, "%*c> _loop1_83[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20860 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020861 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020862 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020863 )
20864 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020865 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020866 if (_n == _children_capacity) {
20867 _children_capacity *= 2;
20868 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20869 if (!_new_children) {
20870 p->error_indicator = 1;
20871 PyErr_NoMemory();
20872 D(p->level--);
20873 return NULL;
20874 }
20875 _children = _new_children;
20876 }
20877 _children[_n++] = _res;
20878 _mark = p->mark;
20879 }
20880 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020881 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020882 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020883 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020884 if (_n == 0 || p->error_indicator) {
20885 PyMem_Free(_children);
20886 D(p->level--);
20887 return NULL;
20888 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020889 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020890 if (!_seq) {
20891 PyMem_Free(_children);
20892 p->error_indicator = 1;
20893 PyErr_NoMemory();
20894 D(p->level--);
20895 return NULL;
20896 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020897 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020898 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020899 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020900 D(p->level--);
20901 return _seq;
20902}
20903
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020904// _loop0_84: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020905static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020906_loop0_84_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020907{
20908 D(p->level++);
20909 if (p->error_indicator) {
20910 D(p->level--);
20911 return NULL;
20912 }
20913 void *_res = NULL;
20914 int _mark = p->mark;
20915 int _start_mark = p->mark;
20916 void **_children = PyMem_Malloc(sizeof(void *));
20917 if (!_children) {
20918 p->error_indicator = 1;
20919 PyErr_NoMemory();
20920 D(p->level--);
20921 return NULL;
20922 }
20923 ssize_t _children_capacity = 1;
20924 ssize_t _n = 0;
20925 { // lambda_param_no_default
20926 if (p->error_indicator) {
20927 D(p->level--);
20928 return NULL;
20929 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020930 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 +010020931 arg_ty lambda_param_no_default_var;
20932 while (
20933 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
20934 )
20935 {
20936 _res = lambda_param_no_default_var;
20937 if (_n == _children_capacity) {
20938 _children_capacity *= 2;
20939 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20940 if (!_new_children) {
20941 p->error_indicator = 1;
20942 PyErr_NoMemory();
20943 D(p->level--);
20944 return NULL;
20945 }
20946 _children = _new_children;
20947 }
20948 _children[_n++] = _res;
20949 _mark = p->mark;
20950 }
20951 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020952 D(fprintf(stderr, "%*c%s _loop0_84[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020953 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
20954 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020955 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020956 if (!_seq) {
20957 PyMem_Free(_children);
20958 p->error_indicator = 1;
20959 PyErr_NoMemory();
20960 D(p->level--);
20961 return NULL;
20962 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020963 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020964 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020965 _PyPegen_insert_memo(p, _start_mark, _loop0_84_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020966 D(p->level--);
20967 return _seq;
20968}
20969
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020970// _loop1_85: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020971static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020972_loop1_85_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020973{
20974 D(p->level++);
20975 if (p->error_indicator) {
20976 D(p->level--);
20977 return NULL;
20978 }
20979 void *_res = NULL;
20980 int _mark = p->mark;
20981 int _start_mark = p->mark;
20982 void **_children = PyMem_Malloc(sizeof(void *));
20983 if (!_children) {
20984 p->error_indicator = 1;
20985 PyErr_NoMemory();
20986 D(p->level--);
20987 return NULL;
20988 }
20989 ssize_t _children_capacity = 1;
20990 ssize_t _n = 0;
20991 { // lambda_param_with_default
20992 if (p->error_indicator) {
20993 D(p->level--);
20994 return NULL;
20995 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020996 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 +010020997 NameDefaultPair* lambda_param_with_default_var;
20998 while (
20999 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
21000 )
21001 {
21002 _res = lambda_param_with_default_var;
21003 if (_n == _children_capacity) {
21004 _children_capacity *= 2;
21005 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21006 if (!_new_children) {
21007 p->error_indicator = 1;
21008 PyErr_NoMemory();
21009 D(p->level--);
21010 return NULL;
21011 }
21012 _children = _new_children;
21013 }
21014 _children[_n++] = _res;
21015 _mark = p->mark;
21016 }
21017 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021018 D(fprintf(stderr, "%*c%s _loop1_85[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021019 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
21020 }
21021 if (_n == 0 || p->error_indicator) {
21022 PyMem_Free(_children);
21023 D(p->level--);
21024 return NULL;
21025 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021026 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021027 if (!_seq) {
21028 PyMem_Free(_children);
21029 p->error_indicator = 1;
21030 PyErr_NoMemory();
21031 D(p->level--);
21032 return NULL;
21033 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021034 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021035 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021036 _PyPegen_insert_memo(p, _start_mark, _loop1_85_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021037 D(p->level--);
21038 return _seq;
21039}
21040
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021041// _loop0_86: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021042static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021043_loop0_86_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021044{
21045 D(p->level++);
21046 if (p->error_indicator) {
21047 D(p->level--);
21048 return NULL;
21049 }
21050 void *_res = NULL;
21051 int _mark = p->mark;
21052 int _start_mark = p->mark;
21053 void **_children = PyMem_Malloc(sizeof(void *));
21054 if (!_children) {
21055 p->error_indicator = 1;
21056 PyErr_NoMemory();
21057 D(p->level--);
21058 return NULL;
21059 }
21060 ssize_t _children_capacity = 1;
21061 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021062 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021063 if (p->error_indicator) {
21064 D(p->level--);
21065 return NULL;
21066 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021067 D(fprintf(stderr, "%*c> _loop0_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
21068 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021069 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021070 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021071 )
21072 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021073 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021074 if (_n == _children_capacity) {
21075 _children_capacity *= 2;
21076 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21077 if (!_new_children) {
21078 p->error_indicator = 1;
21079 PyErr_NoMemory();
21080 D(p->level--);
21081 return NULL;
21082 }
21083 _children = _new_children;
21084 }
21085 _children[_n++] = _res;
21086 _mark = p->mark;
21087 }
21088 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021089 D(fprintf(stderr, "%*c%s _loop0_86[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021090 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021091 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021092 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021093 if (!_seq) {
21094 PyMem_Free(_children);
21095 p->error_indicator = 1;
21096 PyErr_NoMemory();
21097 D(p->level--);
21098 return NULL;
21099 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021100 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021101 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021102 _PyPegen_insert_memo(p, _start_mark, _loop0_86_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021103 D(p->level--);
21104 return _seq;
21105}
21106
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021107// _loop1_87: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021108static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021109_loop1_87_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021110{
21111 D(p->level++);
21112 if (p->error_indicator) {
21113 D(p->level--);
21114 return NULL;
21115 }
21116 void *_res = NULL;
21117 int _mark = p->mark;
21118 int _start_mark = p->mark;
21119 void **_children = PyMem_Malloc(sizeof(void *));
21120 if (!_children) {
21121 p->error_indicator = 1;
21122 PyErr_NoMemory();
21123 D(p->level--);
21124 return NULL;
21125 }
21126 ssize_t _children_capacity = 1;
21127 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021128 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021129 if (p->error_indicator) {
21130 D(p->level--);
21131 return NULL;
21132 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021133 D(fprintf(stderr, "%*c> _loop1_87[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
21134 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021135 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021136 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021137 )
21138 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021139 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021140 if (_n == _children_capacity) {
21141 _children_capacity *= 2;
21142 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21143 if (!_new_children) {
21144 p->error_indicator = 1;
21145 PyErr_NoMemory();
21146 D(p->level--);
21147 return NULL;
21148 }
21149 _children = _new_children;
21150 }
21151 _children[_n++] = _res;
21152 _mark = p->mark;
21153 }
21154 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021155 D(fprintf(stderr, "%*c%s _loop1_87[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021156 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021157 }
21158 if (_n == 0 || p->error_indicator) {
21159 PyMem_Free(_children);
21160 D(p->level--);
21161 return NULL;
21162 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021163 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021164 if (!_seq) {
21165 PyMem_Free(_children);
21166 p->error_indicator = 1;
21167 PyErr_NoMemory();
21168 D(p->level--);
21169 return NULL;
21170 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021171 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021172 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021173 _PyPegen_insert_memo(p, _start_mark, _loop1_87_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021174 D(p->level--);
21175 return _seq;
21176}
21177
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021178// _loop1_88: ('or' conjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021179static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021180_loop1_88_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021181{
21182 D(p->level++);
21183 if (p->error_indicator) {
21184 D(p->level--);
21185 return NULL;
21186 }
21187 void *_res = NULL;
21188 int _mark = p->mark;
21189 int _start_mark = p->mark;
21190 void **_children = PyMem_Malloc(sizeof(void *));
21191 if (!_children) {
21192 p->error_indicator = 1;
21193 PyErr_NoMemory();
21194 D(p->level--);
21195 return NULL;
21196 }
21197 ssize_t _children_capacity = 1;
21198 ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021199 { // ('or' conjunction)
21200 if (p->error_indicator) {
21201 D(p->level--);
21202 return NULL;
21203 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021204 D(fprintf(stderr, "%*c> _loop1_88[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000021205 void *_tmp_145_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021206 while (
Pablo Galindo835f14f2021-01-31 22:52:56 +000021207 (_tmp_145_var = _tmp_145_rule(p)) // 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021208 )
21209 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000021210 _res = _tmp_145_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021211 if (_n == _children_capacity) {
21212 _children_capacity *= 2;
21213 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21214 if (!_new_children) {
21215 p->error_indicator = 1;
21216 PyErr_NoMemory();
21217 D(p->level--);
21218 return NULL;
21219 }
21220 _children = _new_children;
21221 }
21222 _children[_n++] = _res;
21223 _mark = p->mark;
21224 }
21225 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021226 D(fprintf(stderr, "%*c%s _loop1_88[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021227 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
21228 }
21229 if (_n == 0 || p->error_indicator) {
21230 PyMem_Free(_children);
21231 D(p->level--);
21232 return NULL;
21233 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021234 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021235 if (!_seq) {
21236 PyMem_Free(_children);
21237 p->error_indicator = 1;
21238 PyErr_NoMemory();
21239 D(p->level--);
21240 return NULL;
21241 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021242 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021243 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021244 _PyPegen_insert_memo(p, _start_mark, _loop1_88_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021245 D(p->level--);
21246 return _seq;
21247}
21248
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021249// _loop1_89: ('and' inversion)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021250static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021251_loop1_89_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021252{
21253 D(p->level++);
21254 if (p->error_indicator) {
21255 D(p->level--);
21256 return NULL;
21257 }
21258 void *_res = NULL;
21259 int _mark = p->mark;
21260 int _start_mark = p->mark;
21261 void **_children = PyMem_Malloc(sizeof(void *));
21262 if (!_children) {
21263 p->error_indicator = 1;
21264 PyErr_NoMemory();
21265 D(p->level--);
21266 return NULL;
21267 }
21268 ssize_t _children_capacity = 1;
21269 ssize_t _n = 0;
21270 { // ('and' inversion)
21271 if (p->error_indicator) {
21272 D(p->level--);
21273 return NULL;
21274 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021275 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000021276 void *_tmp_146_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021277 while (
Pablo Galindo835f14f2021-01-31 22:52:56 +000021278 (_tmp_146_var = _tmp_146_rule(p)) // 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021279 )
21280 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000021281 _res = _tmp_146_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021282 if (_n == _children_capacity) {
21283 _children_capacity *= 2;
21284 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21285 if (!_new_children) {
21286 p->error_indicator = 1;
21287 PyErr_NoMemory();
21288 D(p->level--);
21289 return NULL;
21290 }
21291 _children = _new_children;
21292 }
21293 _children[_n++] = _res;
21294 _mark = p->mark;
21295 }
21296 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021297 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
21299 }
21300 if (_n == 0 || p->error_indicator) {
21301 PyMem_Free(_children);
21302 D(p->level--);
21303 return NULL;
21304 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021305 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021306 if (!_seq) {
21307 PyMem_Free(_children);
21308 p->error_indicator = 1;
21309 PyErr_NoMemory();
21310 D(p->level--);
21311 return NULL;
21312 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021313 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021314 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021315 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021316 D(p->level--);
21317 return _seq;
21318}
21319
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021320// _loop1_90: compare_op_bitwise_or_pair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021321static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021322_loop1_90_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021323{
21324 D(p->level++);
21325 if (p->error_indicator) {
21326 D(p->level--);
21327 return NULL;
21328 }
21329 void *_res = NULL;
21330 int _mark = p->mark;
21331 int _start_mark = p->mark;
21332 void **_children = PyMem_Malloc(sizeof(void *));
21333 if (!_children) {
21334 p->error_indicator = 1;
21335 PyErr_NoMemory();
21336 D(p->level--);
21337 return NULL;
21338 }
21339 ssize_t _children_capacity = 1;
21340 ssize_t _n = 0;
21341 { // compare_op_bitwise_or_pair
21342 if (p->error_indicator) {
21343 D(p->level--);
21344 return NULL;
21345 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021346 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 +010021347 CmpopExprPair* compare_op_bitwise_or_pair_var;
21348 while (
21349 (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
21350 )
21351 {
21352 _res = compare_op_bitwise_or_pair_var;
21353 if (_n == _children_capacity) {
21354 _children_capacity *= 2;
21355 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21356 if (!_new_children) {
21357 p->error_indicator = 1;
21358 PyErr_NoMemory();
21359 D(p->level--);
21360 return NULL;
21361 }
21362 _children = _new_children;
21363 }
21364 _children[_n++] = _res;
21365 _mark = p->mark;
21366 }
21367 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021368 D(fprintf(stderr, "%*c%s _loop1_90[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021369 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
21370 }
21371 if (_n == 0 || p->error_indicator) {
21372 PyMem_Free(_children);
21373 D(p->level--);
21374 return NULL;
21375 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021376 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021377 if (!_seq) {
21378 PyMem_Free(_children);
21379 p->error_indicator = 1;
21380 PyErr_NoMemory();
21381 D(p->level--);
21382 return NULL;
21383 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021384 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021385 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021386 _PyPegen_insert_memo(p, _start_mark, _loop1_90_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021387 D(p->level--);
21388 return _seq;
21389}
21390
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021391// _tmp_91: '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021392static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021393_tmp_91_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021394{
21395 D(p->level++);
21396 if (p->error_indicator) {
21397 D(p->level--);
21398 return NULL;
21399 }
21400 void * _res = NULL;
21401 int _mark = p->mark;
21402 { // '!='
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> _tmp_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021408 Token * tok;
21409 if (
21410 (tok = _PyPegen_expect_token(p, 28)) // token='!='
21411 )
21412 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021413 D(fprintf(stderr, "%*c+ _tmp_91[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo06f8c332020-10-30 23:48:42 +000021414 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021415 if (_res == NULL && PyErr_Occurred()) {
21416 p->error_indicator = 1;
21417 D(p->level--);
21418 return NULL;
21419 }
21420 goto done;
21421 }
21422 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021423 D(fprintf(stderr, "%*c%s _tmp_91[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021424 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
21425 }
21426 _res = NULL;
21427 done:
21428 D(p->level--);
21429 return _res;
21430}
21431
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021432// _loop0_93: ',' slice
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021433static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021434_loop0_93_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021435{
21436 D(p->level++);
21437 if (p->error_indicator) {
21438 D(p->level--);
21439 return NULL;
21440 }
21441 void *_res = NULL;
21442 int _mark = p->mark;
21443 int _start_mark = p->mark;
21444 void **_children = PyMem_Malloc(sizeof(void *));
21445 if (!_children) {
21446 p->error_indicator = 1;
21447 PyErr_NoMemory();
21448 D(p->level--);
21449 return NULL;
21450 }
21451 ssize_t _children_capacity = 1;
21452 ssize_t _n = 0;
21453 { // ',' slice
21454 if (p->error_indicator) {
21455 D(p->level--);
21456 return NULL;
21457 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021458 D(fprintf(stderr, "%*c> _loop0_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021459 Token * _literal;
21460 expr_ty elem;
21461 while (
21462 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21463 &&
21464 (elem = slice_rule(p)) // slice
21465 )
21466 {
21467 _res = elem;
21468 if (_res == NULL && PyErr_Occurred()) {
21469 p->error_indicator = 1;
21470 PyMem_Free(_children);
21471 D(p->level--);
21472 return NULL;
21473 }
21474 if (_n == _children_capacity) {
21475 _children_capacity *= 2;
21476 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21477 if (!_new_children) {
21478 p->error_indicator = 1;
21479 PyErr_NoMemory();
21480 D(p->level--);
21481 return NULL;
21482 }
21483 _children = _new_children;
21484 }
21485 _children[_n++] = _res;
21486 _mark = p->mark;
21487 }
21488 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021489 D(fprintf(stderr, "%*c%s _loop0_93[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
21491 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021492 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021493 if (!_seq) {
21494 PyMem_Free(_children);
21495 p->error_indicator = 1;
21496 PyErr_NoMemory();
21497 D(p->level--);
21498 return NULL;
21499 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021500 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021501 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021502 _PyPegen_insert_memo(p, _start_mark, _loop0_93_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021503 D(p->level--);
21504 return _seq;
21505}
21506
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021507// _gather_92: slice _loop0_93
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021508static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021509_gather_92_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021510{
21511 D(p->level++);
21512 if (p->error_indicator) {
21513 D(p->level--);
21514 return NULL;
21515 }
21516 asdl_seq * _res = NULL;
21517 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021518 { // slice _loop0_93
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021519 if (p->error_indicator) {
21520 D(p->level--);
21521 return NULL;
21522 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021523 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 +010021524 expr_ty elem;
21525 asdl_seq * seq;
21526 if (
21527 (elem = slice_rule(p)) // slice
21528 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021529 (seq = _loop0_93_rule(p)) // _loop0_93
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021530 )
21531 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021532 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 +010021533 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21534 goto done;
21535 }
21536 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021537 D(fprintf(stderr, "%*c%s _gather_92[%d-%d]: %s failed!\n", p->level, ' ',
21538 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_93"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021539 }
21540 _res = NULL;
21541 done:
21542 D(p->level--);
21543 return _res;
21544}
21545
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021546// _tmp_94: ':' expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021547static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021548_tmp_94_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021549{
21550 D(p->level++);
21551 if (p->error_indicator) {
21552 D(p->level--);
21553 return NULL;
21554 }
21555 void * _res = NULL;
21556 int _mark = p->mark;
21557 { // ':' expression?
21558 if (p->error_indicator) {
21559 D(p->level--);
21560 return NULL;
21561 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021562 D(fprintf(stderr, "%*c> _tmp_94[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021563 Token * _literal;
21564 void *d;
21565 if (
21566 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21567 &&
21568 (d = expression_rule(p), 1) // expression?
21569 )
21570 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021571 D(fprintf(stderr, "%*c+ _tmp_94[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021572 _res = d;
21573 if (_res == NULL && PyErr_Occurred()) {
21574 p->error_indicator = 1;
21575 D(p->level--);
21576 return NULL;
21577 }
21578 goto done;
21579 }
21580 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021581 D(fprintf(stderr, "%*c%s _tmp_94[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
21583 }
21584 _res = NULL;
21585 done:
21586 D(p->level--);
21587 return _res;
21588}
21589
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021590// _tmp_95: tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021591static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021592_tmp_95_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021593{
21594 D(p->level++);
21595 if (p->error_indicator) {
21596 D(p->level--);
21597 return NULL;
21598 }
21599 void * _res = NULL;
21600 int _mark = p->mark;
21601 { // tuple
21602 if (p->error_indicator) {
21603 D(p->level--);
21604 return NULL;
21605 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021606 D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021607 expr_ty tuple_var;
21608 if (
21609 (tuple_var = tuple_rule(p)) // tuple
21610 )
21611 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021612 D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021613 _res = tuple_var;
21614 goto done;
21615 }
21616 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021617 D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021618 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
21619 }
21620 { // group
21621 if (p->error_indicator) {
21622 D(p->level--);
21623 return NULL;
21624 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021625 D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021626 expr_ty group_var;
21627 if (
21628 (group_var = group_rule(p)) // group
21629 )
21630 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021631 D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021632 _res = group_var;
21633 goto done;
21634 }
21635 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021636 D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021637 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
21638 }
21639 { // genexp
21640 if (p->error_indicator) {
21641 D(p->level--);
21642 return NULL;
21643 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021644 D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021645 expr_ty genexp_var;
21646 if (
21647 (genexp_var = genexp_rule(p)) // genexp
21648 )
21649 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021650 D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021651 _res = genexp_var;
21652 goto done;
21653 }
21654 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021655 D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021656 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
21657 }
21658 _res = NULL;
21659 done:
21660 D(p->level--);
21661 return _res;
21662}
21663
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021664// _tmp_96: list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021665static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021666_tmp_96_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021667{
21668 D(p->level++);
21669 if (p->error_indicator) {
21670 D(p->level--);
21671 return NULL;
21672 }
21673 void * _res = NULL;
21674 int _mark = p->mark;
21675 { // list
21676 if (p->error_indicator) {
21677 D(p->level--);
21678 return NULL;
21679 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021680 D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021681 expr_ty list_var;
21682 if (
21683 (list_var = list_rule(p)) // list
21684 )
21685 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021686 D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021687 _res = list_var;
21688 goto done;
21689 }
21690 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021691 D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
21693 }
21694 { // listcomp
21695 if (p->error_indicator) {
21696 D(p->level--);
21697 return NULL;
21698 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021699 D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021700 expr_ty listcomp_var;
21701 if (
21702 (listcomp_var = listcomp_rule(p)) // listcomp
21703 )
21704 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021705 D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021706 _res = listcomp_var;
21707 goto done;
21708 }
21709 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021710 D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021711 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
21712 }
21713 _res = NULL;
21714 done:
21715 D(p->level--);
21716 return _res;
21717}
21718
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021719// _tmp_97: dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021720static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021721_tmp_97_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021722{
21723 D(p->level++);
21724 if (p->error_indicator) {
21725 D(p->level--);
21726 return NULL;
21727 }
21728 void * _res = NULL;
21729 int _mark = p->mark;
21730 { // dict
21731 if (p->error_indicator) {
21732 D(p->level--);
21733 return NULL;
21734 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021735 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021736 expr_ty dict_var;
21737 if (
21738 (dict_var = dict_rule(p)) // dict
21739 )
21740 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021741 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021742 _res = dict_var;
21743 goto done;
21744 }
21745 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021746 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
21748 }
21749 { // set
21750 if (p->error_indicator) {
21751 D(p->level--);
21752 return NULL;
21753 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021754 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021755 expr_ty set_var;
21756 if (
21757 (set_var = set_rule(p)) // set
21758 )
21759 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021760 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021761 _res = set_var;
21762 goto done;
21763 }
21764 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021765 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021766 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
21767 }
21768 { // dictcomp
21769 if (p->error_indicator) {
21770 D(p->level--);
21771 return NULL;
21772 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021773 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021774 expr_ty dictcomp_var;
21775 if (
21776 (dictcomp_var = dictcomp_rule(p)) // dictcomp
21777 )
21778 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021779 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021780 _res = dictcomp_var;
21781 goto done;
21782 }
21783 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021784 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021785 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
21786 }
21787 { // setcomp
21788 if (p->error_indicator) {
21789 D(p->level--);
21790 return NULL;
21791 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021792 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021793 expr_ty setcomp_var;
21794 if (
21795 (setcomp_var = setcomp_rule(p)) // setcomp
21796 )
21797 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021798 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021799 _res = setcomp_var;
21800 goto done;
21801 }
21802 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021803 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021804 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
21805 }
21806 _res = NULL;
21807 done:
21808 D(p->level--);
21809 return _res;
21810}
21811
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021812// _loop1_98: STRING
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021813static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021814_loop1_98_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021815{
21816 D(p->level++);
21817 if (p->error_indicator) {
21818 D(p->level--);
21819 return NULL;
21820 }
21821 void *_res = NULL;
21822 int _mark = p->mark;
21823 int _start_mark = p->mark;
21824 void **_children = PyMem_Malloc(sizeof(void *));
21825 if (!_children) {
21826 p->error_indicator = 1;
21827 PyErr_NoMemory();
21828 D(p->level--);
21829 return NULL;
21830 }
21831 ssize_t _children_capacity = 1;
21832 ssize_t _n = 0;
21833 { // STRING
21834 if (p->error_indicator) {
21835 D(p->level--);
21836 return NULL;
21837 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021838 D(fprintf(stderr, "%*c> _loop1_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021839 expr_ty string_var;
21840 while (
21841 (string_var = _PyPegen_string_token(p)) // STRING
21842 )
21843 {
21844 _res = string_var;
21845 if (_n == _children_capacity) {
21846 _children_capacity *= 2;
21847 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21848 if (!_new_children) {
21849 p->error_indicator = 1;
21850 PyErr_NoMemory();
21851 D(p->level--);
21852 return NULL;
21853 }
21854 _children = _new_children;
21855 }
21856 _children[_n++] = _res;
21857 _mark = p->mark;
21858 }
21859 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021860 D(fprintf(stderr, "%*c%s _loop1_98[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021861 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
21862 }
21863 if (_n == 0 || p->error_indicator) {
21864 PyMem_Free(_children);
21865 D(p->level--);
21866 return NULL;
21867 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021868 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021869 if (!_seq) {
21870 PyMem_Free(_children);
21871 p->error_indicator = 1;
21872 PyErr_NoMemory();
21873 D(p->level--);
21874 return NULL;
21875 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021876 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021877 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021878 _PyPegen_insert_memo(p, _start_mark, _loop1_98_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021879 D(p->level--);
21880 return _seq;
21881}
21882
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021883// _tmp_99: star_named_expression ',' star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021884static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021885_tmp_99_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021886{
21887 D(p->level++);
21888 if (p->error_indicator) {
21889 D(p->level--);
21890 return NULL;
21891 }
21892 void * _res = NULL;
21893 int _mark = p->mark;
21894 { // star_named_expression ',' star_named_expressions?
21895 if (p->error_indicator) {
21896 D(p->level--);
21897 return NULL;
21898 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021899 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 +010021900 Token * _literal;
21901 expr_ty y;
21902 void *z;
21903 if (
21904 (y = star_named_expression_rule(p)) // star_named_expression
21905 &&
21906 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21907 &&
21908 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
21909 )
21910 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021911 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 +010021912 _res = _PyPegen_seq_insert_in_front ( p , y , z );
21913 if (_res == NULL && PyErr_Occurred()) {
21914 p->error_indicator = 1;
21915 D(p->level--);
21916 return NULL;
21917 }
21918 goto done;
21919 }
21920 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021921 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021922 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
21923 }
21924 _res = NULL;
21925 done:
21926 D(p->level--);
21927 return _res;
21928}
21929
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021930// _tmp_100: yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021931static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021932_tmp_100_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021933{
21934 D(p->level++);
21935 if (p->error_indicator) {
21936 D(p->level--);
21937 return NULL;
21938 }
21939 void * _res = NULL;
21940 int _mark = p->mark;
21941 { // yield_expr
21942 if (p->error_indicator) {
21943 D(p->level--);
21944 return NULL;
21945 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021946 D(fprintf(stderr, "%*c> _tmp_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021947 expr_ty yield_expr_var;
21948 if (
21949 (yield_expr_var = yield_expr_rule(p)) // yield_expr
21950 )
21951 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021952 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 +010021953 _res = yield_expr_var;
21954 goto done;
21955 }
21956 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021957 D(fprintf(stderr, "%*c%s _tmp_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021958 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
21959 }
21960 { // named_expression
21961 if (p->error_indicator) {
21962 D(p->level--);
21963 return NULL;
21964 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021965 D(fprintf(stderr, "%*c> _tmp_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021966 expr_ty named_expression_var;
21967 if (
21968 (named_expression_var = named_expression_rule(p)) // named_expression
21969 )
21970 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021971 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 +010021972 _res = named_expression_var;
21973 goto done;
21974 }
21975 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021976 D(fprintf(stderr, "%*c%s _tmp_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021977 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
21978 }
21979 _res = NULL;
21980 done:
21981 D(p->level--);
21982 return _res;
21983}
21984
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021985// _loop0_102: ',' double_starred_kvpair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021986static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021987_loop0_102_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021988{
21989 D(p->level++);
21990 if (p->error_indicator) {
21991 D(p->level--);
21992 return NULL;
21993 }
21994 void *_res = NULL;
21995 int _mark = p->mark;
21996 int _start_mark = p->mark;
21997 void **_children = PyMem_Malloc(sizeof(void *));
21998 if (!_children) {
21999 p->error_indicator = 1;
22000 PyErr_NoMemory();
22001 D(p->level--);
22002 return NULL;
22003 }
22004 ssize_t _children_capacity = 1;
22005 ssize_t _n = 0;
22006 { // ',' double_starred_kvpair
22007 if (p->error_indicator) {
22008 D(p->level--);
22009 return NULL;
22010 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022011 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 +010022012 Token * _literal;
22013 KeyValuePair* elem;
22014 while (
22015 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22016 &&
22017 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
22018 )
22019 {
22020 _res = elem;
22021 if (_res == NULL && PyErr_Occurred()) {
22022 p->error_indicator = 1;
22023 PyMem_Free(_children);
22024 D(p->level--);
22025 return NULL;
22026 }
22027 if (_n == _children_capacity) {
22028 _children_capacity *= 2;
22029 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22030 if (!_new_children) {
22031 p->error_indicator = 1;
22032 PyErr_NoMemory();
22033 D(p->level--);
22034 return NULL;
22035 }
22036 _children = _new_children;
22037 }
22038 _children[_n++] = _res;
22039 _mark = p->mark;
22040 }
22041 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022042 D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022043 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
22044 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022045 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022046 if (!_seq) {
22047 PyMem_Free(_children);
22048 p->error_indicator = 1;
22049 PyErr_NoMemory();
22050 D(p->level--);
22051 return NULL;
22052 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022053 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022054 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022055 _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022056 D(p->level--);
22057 return _seq;
22058}
22059
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022060// _gather_101: double_starred_kvpair _loop0_102
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022061static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022062_gather_101_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022063{
22064 D(p->level++);
22065 if (p->error_indicator) {
22066 D(p->level--);
22067 return NULL;
22068 }
22069 asdl_seq * _res = NULL;
22070 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022071 { // double_starred_kvpair _loop0_102
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022072 if (p->error_indicator) {
22073 D(p->level--);
22074 return NULL;
22075 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022076 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 +010022077 KeyValuePair* elem;
22078 asdl_seq * seq;
22079 if (
22080 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
22081 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022082 (seq = _loop0_102_rule(p)) // _loop0_102
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022083 )
22084 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022085 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 +010022086 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22087 goto done;
22088 }
22089 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022090 D(fprintf(stderr, "%*c%s _gather_101[%d-%d]: %s failed!\n", p->level, ' ',
22091 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_102"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022092 }
22093 _res = NULL;
22094 done:
22095 D(p->level--);
22096 return _res;
22097}
22098
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022099// _loop1_103: for_if_clause
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022100static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022101_loop1_103_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022102{
22103 D(p->level++);
22104 if (p->error_indicator) {
22105 D(p->level--);
22106 return NULL;
22107 }
22108 void *_res = NULL;
22109 int _mark = p->mark;
22110 int _start_mark = p->mark;
22111 void **_children = PyMem_Malloc(sizeof(void *));
22112 if (!_children) {
22113 p->error_indicator = 1;
22114 PyErr_NoMemory();
22115 D(p->level--);
22116 return NULL;
22117 }
22118 ssize_t _children_capacity = 1;
22119 ssize_t _n = 0;
22120 { // for_if_clause
22121 if (p->error_indicator) {
22122 D(p->level--);
22123 return NULL;
22124 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022125 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 +010022126 comprehension_ty for_if_clause_var;
22127 while (
22128 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
22129 )
22130 {
22131 _res = for_if_clause_var;
22132 if (_n == _children_capacity) {
22133 _children_capacity *= 2;
22134 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22135 if (!_new_children) {
22136 p->error_indicator = 1;
22137 PyErr_NoMemory();
22138 D(p->level--);
22139 return NULL;
22140 }
22141 _children = _new_children;
22142 }
22143 _children[_n++] = _res;
22144 _mark = p->mark;
22145 }
22146 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022147 D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
22149 }
22150 if (_n == 0 || p->error_indicator) {
22151 PyMem_Free(_children);
22152 D(p->level--);
22153 return NULL;
22154 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022155 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022156 if (!_seq) {
22157 PyMem_Free(_children);
22158 p->error_indicator = 1;
22159 PyErr_NoMemory();
22160 D(p->level--);
22161 return NULL;
22162 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022163 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022164 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022165 _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022166 D(p->level--);
22167 return _seq;
22168}
22169
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022170// _loop0_104: ('if' disjunction)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022171static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022172_loop0_104_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022173{
22174 D(p->level++);
22175 if (p->error_indicator) {
22176 D(p->level--);
22177 return NULL;
22178 }
22179 void *_res = NULL;
22180 int _mark = p->mark;
22181 int _start_mark = p->mark;
22182 void **_children = PyMem_Malloc(sizeof(void *));
22183 if (!_children) {
22184 p->error_indicator = 1;
22185 PyErr_NoMemory();
22186 D(p->level--);
22187 return NULL;
22188 }
22189 ssize_t _children_capacity = 1;
22190 ssize_t _n = 0;
22191 { // ('if' disjunction)
22192 if (p->error_indicator) {
22193 D(p->level--);
22194 return NULL;
22195 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022196 D(fprintf(stderr, "%*c> _loop0_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000022197 void *_tmp_147_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022198 while (
Pablo Galindo835f14f2021-01-31 22:52:56 +000022199 (_tmp_147_var = _tmp_147_rule(p)) // 'if' disjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022200 )
22201 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000022202 _res = _tmp_147_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022203 if (_n == _children_capacity) {
22204 _children_capacity *= 2;
22205 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22206 if (!_new_children) {
22207 p->error_indicator = 1;
22208 PyErr_NoMemory();
22209 D(p->level--);
22210 return NULL;
22211 }
22212 _children = _new_children;
22213 }
22214 _children[_n++] = _res;
22215 _mark = p->mark;
22216 }
22217 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022218 D(fprintf(stderr, "%*c%s _loop0_104[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022219 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
22220 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022221 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022222 if (!_seq) {
22223 PyMem_Free(_children);
22224 p->error_indicator = 1;
22225 PyErr_NoMemory();
22226 D(p->level--);
22227 return NULL;
22228 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022229 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022230 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022231 _PyPegen_insert_memo(p, _start_mark, _loop0_104_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022232 D(p->level--);
22233 return _seq;
22234}
22235
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022236// _loop0_105: ('if' disjunction)
22237static asdl_seq *
22238_loop0_105_rule(Parser *p)
22239{
22240 D(p->level++);
22241 if (p->error_indicator) {
22242 D(p->level--);
22243 return NULL;
22244 }
22245 void *_res = NULL;
22246 int _mark = p->mark;
22247 int _start_mark = p->mark;
22248 void **_children = PyMem_Malloc(sizeof(void *));
22249 if (!_children) {
22250 p->error_indicator = 1;
22251 PyErr_NoMemory();
22252 D(p->level--);
22253 return NULL;
22254 }
22255 ssize_t _children_capacity = 1;
22256 ssize_t _n = 0;
22257 { // ('if' disjunction)
22258 if (p->error_indicator) {
22259 D(p->level--);
22260 return NULL;
22261 }
22262 D(fprintf(stderr, "%*c> _loop0_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000022263 void *_tmp_148_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022264 while (
Pablo Galindo835f14f2021-01-31 22:52:56 +000022265 (_tmp_148_var = _tmp_148_rule(p)) // 'if' disjunction
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022266 )
22267 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000022268 _res = _tmp_148_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022269 if (_n == _children_capacity) {
22270 _children_capacity *= 2;
22271 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22272 if (!_new_children) {
22273 p->error_indicator = 1;
22274 PyErr_NoMemory();
22275 D(p->level--);
22276 return NULL;
22277 }
22278 _children = _new_children;
22279 }
22280 _children[_n++] = _res;
22281 _mark = p->mark;
22282 }
22283 p->mark = _mark;
22284 D(fprintf(stderr, "%*c%s _loop0_105[%d-%d]: %s failed!\n", p->level, ' ',
22285 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
22286 }
22287 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22288 if (!_seq) {
22289 PyMem_Free(_children);
22290 p->error_indicator = 1;
22291 PyErr_NoMemory();
22292 D(p->level--);
22293 return NULL;
22294 }
22295 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22296 PyMem_Free(_children);
22297 _PyPegen_insert_memo(p, _start_mark, _loop0_105_type, _seq);
22298 D(p->level--);
22299 return _seq;
22300}
22301
22302// _loop0_107: ',' (starred_expression | named_expression !'=')
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022303static asdl_seq *
22304_loop0_107_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 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022311 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022312 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022313 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;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022323 { // ',' (starred_expression | named_expression !'=')
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_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | named_expression !'=')"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010022329 Token * _literal;
22330 void *elem;
22331 while (
22332 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22333 &&
Pablo Galindo835f14f2021-01-31 22:52:56 +000022334 (elem = _tmp_149_rule(p)) // starred_expression | named_expression !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010022335 )
22336 {
22337 _res = elem;
22338 if (_res == NULL && PyErr_Occurred()) {
22339 p->error_indicator = 1;
22340 PyMem_Free(_children);
22341 D(p->level--);
22342 return NULL;
22343 }
22344 if (_n == _children_capacity) {
22345 _children_capacity *= 2;
22346 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22347 if (!_new_children) {
22348 p->error_indicator = 1;
22349 PyErr_NoMemory();
22350 D(p->level--);
22351 return NULL;
22352 }
22353 _children = _new_children;
22354 }
22355 _children[_n++] = _res;
22356 _mark = p->mark;
22357 }
22358 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022359 D(fprintf(stderr, "%*c%s _loop0_107[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010022360 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | named_expression !'=')"));
22361 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022362 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022363 if (!_seq) {
22364 PyMem_Free(_children);
22365 p->error_indicator = 1;
22366 PyErr_NoMemory();
22367 D(p->level--);
22368 return NULL;
22369 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022370 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022371 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022372 _PyPegen_insert_memo(p, _start_mark, _loop0_107_type, _seq);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022373 D(p->level--);
22374 return _seq;
22375}
22376
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022377// _gather_106: (starred_expression | named_expression !'=') _loop0_107
Pablo Galindo4a97b152020-09-02 17:44:19 +010022378static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022379_gather_106_rule(Parser *p)
Pablo Galindo4a97b152020-09-02 17:44:19 +010022380{
22381 D(p->level++);
22382 if (p->error_indicator) {
22383 D(p->level--);
22384 return NULL;
22385 }
22386 asdl_seq * _res = NULL;
22387 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022388 { // (starred_expression | named_expression !'=') _loop0_107
Pablo Galindo4a97b152020-09-02 17:44:19 +010022389 if (p->error_indicator) {
22390 D(p->level--);
22391 return NULL;
22392 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022393 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 +010022394 void *elem;
22395 asdl_seq * seq;
22396 if (
Pablo Galindo835f14f2021-01-31 22:52:56 +000022397 (elem = _tmp_149_rule(p)) // starred_expression | named_expression !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010022398 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022399 (seq = _loop0_107_rule(p)) // _loop0_107
Pablo Galindo4a97b152020-09-02 17:44:19 +010022400 )
22401 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022402 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 +010022403 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22404 goto done;
22405 }
22406 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022407 D(fprintf(stderr, "%*c%s _gather_106[%d-%d]: %s failed!\n", p->level, ' ',
22408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_107"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010022409 }
22410 _res = NULL;
22411 done:
22412 D(p->level--);
22413 return _res;
22414}
22415
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022416// _tmp_108: ',' kwargs
Pablo Galindo4a97b152020-09-02 17:44:19 +010022417static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022418_tmp_108_rule(Parser *p)
Pablo Galindo4a97b152020-09-02 17:44:19 +010022419{
22420 D(p->level++);
22421 if (p->error_indicator) {
22422 D(p->level--);
22423 return NULL;
22424 }
22425 void * _res = NULL;
22426 int _mark = p->mark;
22427 { // ',' kwargs
22428 if (p->error_indicator) {
22429 D(p->level--);
22430 return NULL;
22431 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022432 D(fprintf(stderr, "%*c> _tmp_108[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010022433 Token * _literal;
22434 asdl_seq* k;
22435 if (
22436 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22437 &&
22438 (k = kwargs_rule(p)) // kwargs
22439 )
22440 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022441 D(fprintf(stderr, "%*c+ _tmp_108[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010022442 _res = k;
22443 if (_res == NULL && PyErr_Occurred()) {
22444 p->error_indicator = 1;
22445 D(p->level--);
22446 return NULL;
22447 }
22448 goto done;
22449 }
22450 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022451 D(fprintf(stderr, "%*c%s _tmp_108[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010022452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
22453 }
22454 _res = NULL;
22455 done:
22456 D(p->level--);
22457 return _res;
22458}
22459
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022460// _loop0_110: ',' kwarg_or_starred
Pablo Galindo4a97b152020-09-02 17:44:19 +010022461static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022462_loop0_110_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022463{
22464 D(p->level++);
22465 if (p->error_indicator) {
22466 D(p->level--);
22467 return NULL;
22468 }
22469 void *_res = NULL;
22470 int _mark = p->mark;
22471 int _start_mark = p->mark;
22472 void **_children = PyMem_Malloc(sizeof(void *));
22473 if (!_children) {
22474 p->error_indicator = 1;
22475 PyErr_NoMemory();
22476 D(p->level--);
22477 return NULL;
22478 }
22479 ssize_t _children_capacity = 1;
22480 ssize_t _n = 0;
22481 { // ',' kwarg_or_starred
22482 if (p->error_indicator) {
22483 D(p->level--);
22484 return NULL;
22485 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022486 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 +010022487 Token * _literal;
22488 KeywordOrStarred* elem;
22489 while (
22490 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22491 &&
22492 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
22493 )
22494 {
22495 _res = elem;
22496 if (_res == NULL && PyErr_Occurred()) {
22497 p->error_indicator = 1;
22498 PyMem_Free(_children);
22499 D(p->level--);
22500 return NULL;
22501 }
22502 if (_n == _children_capacity) {
22503 _children_capacity *= 2;
22504 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22505 if (!_new_children) {
22506 p->error_indicator = 1;
22507 PyErr_NoMemory();
22508 D(p->level--);
22509 return NULL;
22510 }
22511 _children = _new_children;
22512 }
22513 _children[_n++] = _res;
22514 _mark = p->mark;
22515 }
22516 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022517 D(fprintf(stderr, "%*c%s _loop0_110[%d-%d]: %s failed!\n", p->level, ' ',
22518 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
22519 }
22520 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22521 if (!_seq) {
22522 PyMem_Free(_children);
22523 p->error_indicator = 1;
22524 PyErr_NoMemory();
22525 D(p->level--);
22526 return NULL;
22527 }
22528 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22529 PyMem_Free(_children);
22530 _PyPegen_insert_memo(p, _start_mark, _loop0_110_type, _seq);
22531 D(p->level--);
22532 return _seq;
22533}
22534
22535// _gather_109: kwarg_or_starred _loop0_110
22536static asdl_seq *
22537_gather_109_rule(Parser *p)
22538{
22539 D(p->level++);
22540 if (p->error_indicator) {
22541 D(p->level--);
22542 return NULL;
22543 }
22544 asdl_seq * _res = NULL;
22545 int _mark = p->mark;
22546 { // kwarg_or_starred _loop0_110
22547 if (p->error_indicator) {
22548 D(p->level--);
22549 return NULL;
22550 }
22551 D(fprintf(stderr, "%*c> _gather_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_110"));
22552 KeywordOrStarred* elem;
22553 asdl_seq * seq;
22554 if (
22555 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
22556 &&
22557 (seq = _loop0_110_rule(p)) // _loop0_110
22558 )
22559 {
22560 D(fprintf(stderr, "%*c+ _gather_109[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_110"));
22561 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22562 goto done;
22563 }
22564 p->mark = _mark;
22565 D(fprintf(stderr, "%*c%s _gather_109[%d-%d]: %s failed!\n", p->level, ' ',
22566 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_110"));
22567 }
22568 _res = NULL;
22569 done:
22570 D(p->level--);
22571 return _res;
22572}
22573
22574// _loop0_112: ',' kwarg_or_double_starred
22575static asdl_seq *
22576_loop0_112_rule(Parser *p)
22577{
22578 D(p->level++);
22579 if (p->error_indicator) {
22580 D(p->level--);
22581 return NULL;
22582 }
22583 void *_res = NULL;
22584 int _mark = p->mark;
22585 int _start_mark = p->mark;
22586 void **_children = PyMem_Malloc(sizeof(void *));
22587 if (!_children) {
22588 p->error_indicator = 1;
22589 PyErr_NoMemory();
22590 D(p->level--);
22591 return NULL;
22592 }
22593 ssize_t _children_capacity = 1;
22594 ssize_t _n = 0;
22595 { // ',' kwarg_or_double_starred
22596 if (p->error_indicator) {
22597 D(p->level--);
22598 return NULL;
22599 }
22600 D(fprintf(stderr, "%*c> _loop0_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
22601 Token * _literal;
22602 KeywordOrStarred* elem;
22603 while (
22604 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22605 &&
22606 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
22607 )
22608 {
22609 _res = elem;
22610 if (_res == NULL && PyErr_Occurred()) {
22611 p->error_indicator = 1;
22612 PyMem_Free(_children);
22613 D(p->level--);
22614 return NULL;
22615 }
22616 if (_n == _children_capacity) {
22617 _children_capacity *= 2;
22618 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22619 if (!_new_children) {
22620 p->error_indicator = 1;
22621 PyErr_NoMemory();
22622 D(p->level--);
22623 return NULL;
22624 }
22625 _children = _new_children;
22626 }
22627 _children[_n++] = _res;
22628 _mark = p->mark;
22629 }
22630 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022631 D(fprintf(stderr, "%*c%s _loop0_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022632 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022633 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022634 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022635 if (!_seq) {
22636 PyMem_Free(_children);
22637 p->error_indicator = 1;
22638 PyErr_NoMemory();
22639 D(p->level--);
22640 return NULL;
22641 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022642 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022643 PyMem_Free(_children);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022644 _PyPegen_insert_memo(p, _start_mark, _loop0_112_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022645 D(p->level--);
22646 return _seq;
22647}
22648
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022649// _gather_111: kwarg_or_double_starred _loop0_112
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022650static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010022651_gather_111_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022652{
22653 D(p->level++);
22654 if (p->error_indicator) {
22655 D(p->level--);
22656 return NULL;
22657 }
22658 asdl_seq * _res = NULL;
22659 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022660 { // kwarg_or_double_starred _loop0_112
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022661 if (p->error_indicator) {
22662 D(p->level--);
22663 return NULL;
22664 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022665 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 +010022666 KeywordOrStarred* elem;
22667 asdl_seq * seq;
22668 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022669 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022670 &&
Pablo Galindo4a97b152020-09-02 17:44:19 +010022671 (seq = _loop0_112_rule(p)) // _loop0_112
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022672 )
22673 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022674 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 +010022675 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22676 goto done;
22677 }
22678 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022679 D(fprintf(stderr, "%*c%s _gather_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022680 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_112"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022681 }
22682 _res = NULL;
22683 done:
22684 D(p->level--);
22685 return _res;
22686}
22687
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022688// _loop0_114: ',' kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022689static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010022690_loop0_114_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022691{
22692 D(p->level++);
22693 if (p->error_indicator) {
22694 D(p->level--);
22695 return NULL;
22696 }
22697 void *_res = NULL;
22698 int _mark = p->mark;
22699 int _start_mark = p->mark;
22700 void **_children = PyMem_Malloc(sizeof(void *));
22701 if (!_children) {
22702 p->error_indicator = 1;
22703 PyErr_NoMemory();
22704 D(p->level--);
22705 return NULL;
22706 }
22707 ssize_t _children_capacity = 1;
22708 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022709 { // ',' kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022710 if (p->error_indicator) {
22711 D(p->level--);
22712 return NULL;
22713 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022714 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 +010022715 Token * _literal;
22716 KeywordOrStarred* elem;
22717 while (
22718 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22719 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022720 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022721 )
22722 {
22723 _res = elem;
22724 if (_res == NULL && PyErr_Occurred()) {
22725 p->error_indicator = 1;
22726 PyMem_Free(_children);
22727 D(p->level--);
22728 return NULL;
22729 }
22730 if (_n == _children_capacity) {
22731 _children_capacity *= 2;
22732 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22733 if (!_new_children) {
22734 p->error_indicator = 1;
22735 PyErr_NoMemory();
22736 D(p->level--);
22737 return NULL;
22738 }
22739 _children = _new_children;
22740 }
22741 _children[_n++] = _res;
22742 _mark = p->mark;
22743 }
22744 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022745 D(fprintf(stderr, "%*c%s _loop0_114[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022746 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022747 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022748 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022749 if (!_seq) {
22750 PyMem_Free(_children);
22751 p->error_indicator = 1;
22752 PyErr_NoMemory();
22753 D(p->level--);
22754 return NULL;
22755 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022756 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022757 PyMem_Free(_children);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022758 _PyPegen_insert_memo(p, _start_mark, _loop0_114_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022759 D(p->level--);
22760 return _seq;
22761}
22762
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022763// _gather_113: kwarg_or_starred _loop0_114
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022764static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010022765_gather_113_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022766{
22767 D(p->level++);
22768 if (p->error_indicator) {
22769 D(p->level--);
22770 return NULL;
22771 }
22772 asdl_seq * _res = NULL;
22773 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022774 { // kwarg_or_starred _loop0_114
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022775 if (p->error_indicator) {
22776 D(p->level--);
22777 return NULL;
22778 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022779 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 +010022780 KeywordOrStarred* elem;
22781 asdl_seq * seq;
22782 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022783 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022784 &&
Pablo Galindo4a97b152020-09-02 17:44:19 +010022785 (seq = _loop0_114_rule(p)) // _loop0_114
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022786 )
22787 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022788 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 +010022789 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22790 goto done;
22791 }
22792 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022793 D(fprintf(stderr, "%*c%s _gather_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022794 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_114"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022795 }
22796 _res = NULL;
22797 done:
22798 D(p->level--);
22799 return _res;
22800}
22801
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022802// _loop0_116: ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022803static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010022804_loop0_116_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022805{
22806 D(p->level++);
22807 if (p->error_indicator) {
22808 D(p->level--);
22809 return NULL;
22810 }
22811 void *_res = NULL;
22812 int _mark = p->mark;
22813 int _start_mark = p->mark;
22814 void **_children = PyMem_Malloc(sizeof(void *));
22815 if (!_children) {
22816 p->error_indicator = 1;
22817 PyErr_NoMemory();
22818 D(p->level--);
22819 return NULL;
22820 }
22821 ssize_t _children_capacity = 1;
22822 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022823 { // ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022824 if (p->error_indicator) {
22825 D(p->level--);
22826 return NULL;
22827 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022828 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 +010022829 Token * _literal;
22830 KeywordOrStarred* elem;
22831 while (
22832 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22833 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022834 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022835 )
22836 {
22837 _res = elem;
22838 if (_res == NULL && PyErr_Occurred()) {
22839 p->error_indicator = 1;
22840 PyMem_Free(_children);
22841 D(p->level--);
22842 return NULL;
22843 }
22844 if (_n == _children_capacity) {
22845 _children_capacity *= 2;
22846 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22847 if (!_new_children) {
22848 p->error_indicator = 1;
22849 PyErr_NoMemory();
22850 D(p->level--);
22851 return NULL;
22852 }
22853 _children = _new_children;
22854 }
22855 _children[_n++] = _res;
22856 _mark = p->mark;
22857 }
22858 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022859 D(fprintf(stderr, "%*c%s _loop0_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022860 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022861 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022862 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022863 if (!_seq) {
22864 PyMem_Free(_children);
22865 p->error_indicator = 1;
22866 PyErr_NoMemory();
22867 D(p->level--);
22868 return NULL;
22869 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022870 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022871 PyMem_Free(_children);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022872 _PyPegen_insert_memo(p, _start_mark, _loop0_116_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022873 D(p->level--);
22874 return _seq;
22875}
22876
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022877// _gather_115: kwarg_or_double_starred _loop0_116
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022878static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010022879_gather_115_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022880{
22881 D(p->level++);
22882 if (p->error_indicator) {
22883 D(p->level--);
22884 return NULL;
22885 }
22886 asdl_seq * _res = NULL;
22887 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022888 { // kwarg_or_double_starred _loop0_116
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022889 if (p->error_indicator) {
22890 D(p->level--);
22891 return NULL;
22892 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022893 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 +010022894 KeywordOrStarred* elem;
22895 asdl_seq * seq;
22896 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022897 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022898 &&
Pablo Galindo4a97b152020-09-02 17:44:19 +010022899 (seq = _loop0_116_rule(p)) // _loop0_116
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022900 )
22901 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022902 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 +010022903 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22904 goto done;
22905 }
22906 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022907 D(fprintf(stderr, "%*c%s _gather_115[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022908 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_116"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022909 }
22910 _res = NULL;
22911 done:
22912 D(p->level--);
22913 return _res;
22914}
22915
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022916// _loop0_117: (',' star_target)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022917static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022918_loop0_117_rule(Parser *p)
Pablo Galindo4a97b152020-09-02 17:44:19 +010022919{
22920 D(p->level++);
22921 if (p->error_indicator) {
22922 D(p->level--);
22923 return NULL;
22924 }
22925 void *_res = NULL;
22926 int _mark = p->mark;
22927 int _start_mark = p->mark;
22928 void **_children = PyMem_Malloc(sizeof(void *));
22929 if (!_children) {
22930 p->error_indicator = 1;
22931 PyErr_NoMemory();
22932 D(p->level--);
22933 return NULL;
22934 }
22935 ssize_t _children_capacity = 1;
22936 ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022937 { // (',' star_target)
22938 if (p->error_indicator) {
22939 D(p->level--);
22940 return NULL;
22941 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022942 D(fprintf(stderr, "%*c> _loop0_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000022943 void *_tmp_150_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022944 while (
Pablo Galindo835f14f2021-01-31 22:52:56 +000022945 (_tmp_150_var = _tmp_150_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022946 )
22947 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000022948 _res = _tmp_150_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022949 if (_n == _children_capacity) {
22950 _children_capacity *= 2;
22951 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22952 if (!_new_children) {
22953 p->error_indicator = 1;
22954 PyErr_NoMemory();
22955 D(p->level--);
22956 return NULL;
22957 }
22958 _children = _new_children;
22959 }
22960 _children[_n++] = _res;
22961 _mark = p->mark;
22962 }
22963 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022964 D(fprintf(stderr, "%*c%s _loop0_117[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
22966 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022967 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022968 if (!_seq) {
22969 PyMem_Free(_children);
22970 p->error_indicator = 1;
22971 PyErr_NoMemory();
22972 D(p->level--);
22973 return NULL;
22974 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022975 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022976 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022977 _PyPegen_insert_memo(p, _start_mark, _loop0_117_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022978 D(p->level--);
22979 return _seq;
22980}
22981
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022982// _loop0_119: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022983static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022984_loop0_119_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022985{
22986 D(p->level++);
22987 if (p->error_indicator) {
22988 D(p->level--);
22989 return NULL;
22990 }
22991 void *_res = NULL;
22992 int _mark = p->mark;
22993 int _start_mark = p->mark;
22994 void **_children = PyMem_Malloc(sizeof(void *));
22995 if (!_children) {
22996 p->error_indicator = 1;
22997 PyErr_NoMemory();
22998 D(p->level--);
22999 return NULL;
23000 }
23001 ssize_t _children_capacity = 1;
23002 ssize_t _n = 0;
23003 { // ',' star_target
23004 if (p->error_indicator) {
23005 D(p->level--);
23006 return NULL;
23007 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023008 D(fprintf(stderr, "%*c> _loop0_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023009 Token * _literal;
23010 expr_ty elem;
23011 while (
23012 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23013 &&
23014 (elem = star_target_rule(p)) // star_target
23015 )
23016 {
23017 _res = elem;
23018 if (_res == NULL && PyErr_Occurred()) {
23019 p->error_indicator = 1;
23020 PyMem_Free(_children);
23021 D(p->level--);
23022 return NULL;
23023 }
23024 if (_n == _children_capacity) {
23025 _children_capacity *= 2;
23026 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23027 if (!_new_children) {
23028 p->error_indicator = 1;
23029 PyErr_NoMemory();
23030 D(p->level--);
23031 return NULL;
23032 }
23033 _children = _new_children;
23034 }
23035 _children[_n++] = _res;
23036 _mark = p->mark;
23037 }
23038 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023039 D(fprintf(stderr, "%*c%s _loop0_119[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023040 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
23041 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023042 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023043 if (!_seq) {
23044 PyMem_Free(_children);
23045 p->error_indicator = 1;
23046 PyErr_NoMemory();
23047 D(p->level--);
23048 return NULL;
23049 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023050 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023051 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023052 _PyPegen_insert_memo(p, _start_mark, _loop0_119_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023053 D(p->level--);
23054 return _seq;
23055}
23056
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023057// _gather_118: star_target _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023058static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023059_gather_118_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023060{
23061 D(p->level++);
23062 if (p->error_indicator) {
23063 D(p->level--);
23064 return NULL;
23065 }
23066 asdl_seq * _res = NULL;
23067 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023068 { // star_target _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023069 if (p->error_indicator) {
23070 D(p->level--);
23071 return NULL;
23072 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023073 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 +010023074 expr_ty elem;
23075 asdl_seq * seq;
23076 if (
23077 (elem = star_target_rule(p)) // star_target
23078 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023079 (seq = _loop0_119_rule(p)) // _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023080 )
23081 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023082 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 +010023083 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23084 goto done;
23085 }
23086 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023087 D(fprintf(stderr, "%*c%s _gather_118[%d-%d]: %s failed!\n", p->level, ' ',
23088 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_119"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023089 }
23090 _res = NULL;
23091 done:
23092 D(p->level--);
23093 return _res;
23094}
23095
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023096// _loop1_120: (',' star_target)
23097static asdl_seq *
23098_loop1_120_rule(Parser *p)
23099{
23100 D(p->level++);
23101 if (p->error_indicator) {
23102 D(p->level--);
23103 return NULL;
23104 }
23105 void *_res = NULL;
23106 int _mark = p->mark;
23107 int _start_mark = p->mark;
23108 void **_children = PyMem_Malloc(sizeof(void *));
23109 if (!_children) {
23110 p->error_indicator = 1;
23111 PyErr_NoMemory();
23112 D(p->level--);
23113 return NULL;
23114 }
23115 ssize_t _children_capacity = 1;
23116 ssize_t _n = 0;
23117 { // (',' star_target)
23118 if (p->error_indicator) {
23119 D(p->level--);
23120 return NULL;
23121 }
23122 D(fprintf(stderr, "%*c> _loop1_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000023123 void *_tmp_151_var;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023124 while (
Pablo Galindo835f14f2021-01-31 22:52:56 +000023125 (_tmp_151_var = _tmp_151_rule(p)) // ',' star_target
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023126 )
23127 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000023128 _res = _tmp_151_var;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023129 if (_n == _children_capacity) {
23130 _children_capacity *= 2;
23131 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23132 if (!_new_children) {
23133 p->error_indicator = 1;
23134 PyErr_NoMemory();
23135 D(p->level--);
23136 return NULL;
23137 }
23138 _children = _new_children;
23139 }
23140 _children[_n++] = _res;
23141 _mark = p->mark;
23142 }
23143 p->mark = _mark;
23144 D(fprintf(stderr, "%*c%s _loop1_120[%d-%d]: %s failed!\n", p->level, ' ',
23145 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
23146 }
23147 if (_n == 0 || p->error_indicator) {
23148 PyMem_Free(_children);
23149 D(p->level--);
23150 return NULL;
23151 }
23152 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23153 if (!_seq) {
23154 PyMem_Free(_children);
23155 p->error_indicator = 1;
23156 PyErr_NoMemory();
23157 D(p->level--);
23158 return NULL;
23159 }
23160 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23161 PyMem_Free(_children);
23162 _PyPegen_insert_memo(p, _start_mark, _loop1_120_type, _seq);
23163 D(p->level--);
23164 return _seq;
23165}
23166
23167// _tmp_121: !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023168static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023169_tmp_121_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023170{
23171 D(p->level++);
23172 if (p->error_indicator) {
23173 D(p->level--);
23174 return NULL;
23175 }
23176 void * _res = NULL;
23177 int _mark = p->mark;
23178 { // !'*' star_target
23179 if (p->error_indicator) {
23180 D(p->level--);
23181 return NULL;
23182 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023183 D(fprintf(stderr, "%*c> _tmp_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023184 expr_ty star_target_var;
23185 if (
23186 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
23187 &&
23188 (star_target_var = star_target_rule(p)) // star_target
23189 )
23190 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023191 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 +010023192 _res = star_target_var;
23193 goto done;
23194 }
23195 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023196 D(fprintf(stderr, "%*c%s _tmp_121[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023197 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
23198 }
23199 _res = NULL;
23200 done:
23201 D(p->level--);
23202 return _res;
23203}
23204
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023205// _loop0_123: ',' del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023206static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023207_loop0_123_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023208{
23209 D(p->level++);
23210 if (p->error_indicator) {
23211 D(p->level--);
23212 return NULL;
23213 }
23214 void *_res = NULL;
23215 int _mark = p->mark;
23216 int _start_mark = p->mark;
23217 void **_children = PyMem_Malloc(sizeof(void *));
23218 if (!_children) {
23219 p->error_indicator = 1;
23220 PyErr_NoMemory();
23221 D(p->level--);
23222 return NULL;
23223 }
23224 ssize_t _children_capacity = 1;
23225 ssize_t _n = 0;
23226 { // ',' del_target
23227 if (p->error_indicator) {
23228 D(p->level--);
23229 return NULL;
23230 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023231 D(fprintf(stderr, "%*c> _loop0_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023232 Token * _literal;
23233 expr_ty elem;
23234 while (
23235 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23236 &&
23237 (elem = del_target_rule(p)) // del_target
23238 )
23239 {
23240 _res = elem;
23241 if (_res == NULL && PyErr_Occurred()) {
23242 p->error_indicator = 1;
23243 PyMem_Free(_children);
23244 D(p->level--);
23245 return NULL;
23246 }
23247 if (_n == _children_capacity) {
23248 _children_capacity *= 2;
23249 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23250 if (!_new_children) {
23251 p->error_indicator = 1;
23252 PyErr_NoMemory();
23253 D(p->level--);
23254 return NULL;
23255 }
23256 _children = _new_children;
23257 }
23258 _children[_n++] = _res;
23259 _mark = p->mark;
23260 }
23261 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023262 D(fprintf(stderr, "%*c%s _loop0_123[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
23264 }
23265 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23266 if (!_seq) {
23267 PyMem_Free(_children);
23268 p->error_indicator = 1;
23269 PyErr_NoMemory();
23270 D(p->level--);
23271 return NULL;
23272 }
23273 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23274 PyMem_Free(_children);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023275 _PyPegen_insert_memo(p, _start_mark, _loop0_123_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023276 D(p->level--);
23277 return _seq;
23278}
23279
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023280// _gather_122: del_target _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023281static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023282_gather_122_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023283{
23284 D(p->level++);
23285 if (p->error_indicator) {
23286 D(p->level--);
23287 return NULL;
23288 }
23289 asdl_seq * _res = NULL;
23290 int _mark = p->mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023291 { // del_target _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023292 if (p->error_indicator) {
23293 D(p->level--);
23294 return NULL;
23295 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023296 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 +000023297 expr_ty elem;
23298 asdl_seq * seq;
23299 if (
23300 (elem = del_target_rule(p)) // del_target
23301 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023302 (seq = _loop0_123_rule(p)) // _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023303 )
23304 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023305 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 +000023306 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23307 goto done;
23308 }
23309 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023310 D(fprintf(stderr, "%*c%s _gather_122[%d-%d]: %s failed!\n", p->level, ' ',
23311 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_123"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023312 }
23313 _res = NULL;
23314 done:
23315 D(p->level--);
23316 return _res;
23317}
23318
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023319// _loop0_125: ',' target
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023320static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023321_loop0_125_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023322{
23323 D(p->level++);
23324 if (p->error_indicator) {
23325 D(p->level--);
23326 return NULL;
23327 }
23328 void *_res = NULL;
23329 int _mark = p->mark;
23330 int _start_mark = p->mark;
23331 void **_children = PyMem_Malloc(sizeof(void *));
23332 if (!_children) {
23333 p->error_indicator = 1;
23334 PyErr_NoMemory();
23335 D(p->level--);
23336 return NULL;
23337 }
23338 ssize_t _children_capacity = 1;
23339 ssize_t _n = 0;
23340 { // ',' target
23341 if (p->error_indicator) {
23342 D(p->level--);
23343 return NULL;
23344 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023345 D(fprintf(stderr, "%*c> _loop0_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' target"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023346 Token * _literal;
23347 expr_ty elem;
23348 while (
23349 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23350 &&
23351 (elem = target_rule(p)) // target
23352 )
23353 {
23354 _res = elem;
23355 if (_res == NULL && PyErr_Occurred()) {
23356 p->error_indicator = 1;
23357 PyMem_Free(_children);
23358 D(p->level--);
23359 return NULL;
23360 }
23361 if (_n == _children_capacity) {
23362 _children_capacity *= 2;
23363 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23364 if (!_new_children) {
23365 p->error_indicator = 1;
23366 PyErr_NoMemory();
23367 D(p->level--);
23368 return NULL;
23369 }
23370 _children = _new_children;
23371 }
23372 _children[_n++] = _res;
23373 _mark = p->mark;
23374 }
23375 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023376 D(fprintf(stderr, "%*c%s _loop0_125[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023377 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023378 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023379 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023380 if (!_seq) {
23381 PyMem_Free(_children);
23382 p->error_indicator = 1;
23383 PyErr_NoMemory();
23384 D(p->level--);
23385 return NULL;
23386 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023387 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023388 PyMem_Free(_children);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023389 _PyPegen_insert_memo(p, _start_mark, _loop0_125_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023390 D(p->level--);
23391 return _seq;
23392}
23393
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023394// _gather_124: target _loop0_125
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023395static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023396_gather_124_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023397{
23398 D(p->level++);
23399 if (p->error_indicator) {
23400 D(p->level--);
23401 return NULL;
23402 }
23403 asdl_seq * _res = NULL;
23404 int _mark = p->mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023405 { // target _loop0_125
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023406 if (p->error_indicator) {
23407 D(p->level--);
23408 return NULL;
23409 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023410 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 +010023411 expr_ty elem;
23412 asdl_seq * seq;
23413 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023414 (elem = target_rule(p)) // target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023415 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023416 (seq = _loop0_125_rule(p)) // _loop0_125
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023417 )
23418 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023419 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 +010023420 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23421 goto done;
23422 }
23423 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023424 D(fprintf(stderr, "%*c%s _gather_124[%d-%d]: %s failed!\n", p->level, ' ',
23425 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target _loop0_125"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023426 }
23427 _res = NULL;
23428 done:
23429 D(p->level--);
23430 return _res;
23431}
23432
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023433// _tmp_126: args | expression for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023434static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023435_tmp_126_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023436{
23437 D(p->level++);
23438 if (p->error_indicator) {
23439 D(p->level--);
23440 return NULL;
23441 }
23442 void * _res = NULL;
23443 int _mark = p->mark;
23444 { // args
23445 if (p->error_indicator) {
23446 D(p->level--);
23447 return NULL;
23448 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023449 D(fprintf(stderr, "%*c> _tmp_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023450 expr_ty args_var;
23451 if (
23452 (args_var = args_rule(p)) // args
23453 )
23454 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023455 D(fprintf(stderr, "%*c+ _tmp_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023456 _res = args_var;
23457 goto done;
23458 }
23459 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023460 D(fprintf(stderr, "%*c%s _tmp_126[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023461 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
23462 }
23463 { // expression for_if_clauses
23464 if (p->error_indicator) {
23465 D(p->level--);
23466 return NULL;
23467 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023468 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 +010023469 expr_ty expression_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010023470 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023471 if (
23472 (expression_var = expression_rule(p)) // expression
23473 &&
23474 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
23475 )
23476 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023477 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 +010023478 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
23479 goto done;
23480 }
23481 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023482 D(fprintf(stderr, "%*c%s _tmp_126[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023483 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
23484 }
23485 _res = NULL;
23486 done:
23487 D(p->level--);
23488 return _res;
23489}
23490
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023491// _loop0_127: star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023492static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023493_loop0_127_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023494{
23495 D(p->level++);
23496 if (p->error_indicator) {
23497 D(p->level--);
23498 return NULL;
23499 }
23500 void *_res = NULL;
23501 int _mark = p->mark;
23502 int _start_mark = p->mark;
23503 void **_children = PyMem_Malloc(sizeof(void *));
23504 if (!_children) {
23505 p->error_indicator = 1;
23506 PyErr_NoMemory();
23507 D(p->level--);
23508 return NULL;
23509 }
23510 ssize_t _children_capacity = 1;
23511 ssize_t _n = 0;
23512 { // star_named_expressions
23513 if (p->error_indicator) {
23514 D(p->level--);
23515 return NULL;
23516 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023517 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 +010023518 asdl_expr_seq* star_named_expressions_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023519 while (
23520 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
23521 )
23522 {
23523 _res = star_named_expressions_var;
23524 if (_n == _children_capacity) {
23525 _children_capacity *= 2;
23526 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23527 if (!_new_children) {
23528 p->error_indicator = 1;
23529 PyErr_NoMemory();
23530 D(p->level--);
23531 return NULL;
23532 }
23533 _children = _new_children;
23534 }
23535 _children[_n++] = _res;
23536 _mark = p->mark;
23537 }
23538 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023539 D(fprintf(stderr, "%*c%s _loop0_127[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023540 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023541 }
23542 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23543 if (!_seq) {
23544 PyMem_Free(_children);
23545 p->error_indicator = 1;
23546 PyErr_NoMemory();
23547 D(p->level--);
23548 return NULL;
23549 }
23550 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23551 PyMem_Free(_children);
23552 _PyPegen_insert_memo(p, _start_mark, _loop0_127_type, _seq);
23553 D(p->level--);
23554 return _seq;
23555}
23556
23557// _loop0_128: (star_targets '=')
23558static asdl_seq *
23559_loop0_128_rule(Parser *p)
23560{
23561 D(p->level++);
23562 if (p->error_indicator) {
23563 D(p->level--);
23564 return NULL;
23565 }
23566 void *_res = NULL;
23567 int _mark = p->mark;
23568 int _start_mark = p->mark;
23569 void **_children = PyMem_Malloc(sizeof(void *));
23570 if (!_children) {
23571 p->error_indicator = 1;
23572 PyErr_NoMemory();
23573 D(p->level--);
23574 return NULL;
23575 }
23576 ssize_t _children_capacity = 1;
23577 ssize_t _n = 0;
23578 { // (star_targets '=')
23579 if (p->error_indicator) {
23580 D(p->level--);
23581 return NULL;
23582 }
23583 D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000023584 void *_tmp_152_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023585 while (
Pablo Galindo835f14f2021-01-31 22:52:56 +000023586 (_tmp_152_var = _tmp_152_rule(p)) // star_targets '='
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023587 )
23588 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000023589 _res = _tmp_152_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023590 if (_n == _children_capacity) {
23591 _children_capacity *= 2;
23592 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23593 if (!_new_children) {
23594 p->error_indicator = 1;
23595 PyErr_NoMemory();
23596 D(p->level--);
23597 return NULL;
23598 }
23599 _children = _new_children;
23600 }
23601 _children[_n++] = _res;
23602 _mark = p->mark;
23603 }
23604 p->mark = _mark;
23605 D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ',
23606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
23607 }
23608 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23609 if (!_seq) {
23610 PyMem_Free(_children);
23611 p->error_indicator = 1;
23612 PyErr_NoMemory();
23613 D(p->level--);
23614 return NULL;
23615 }
23616 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23617 PyMem_Free(_children);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030023618 _PyPegen_insert_memo(p, _start_mark, _loop0_128_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023619 D(p->level--);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030023620 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023621}
23622
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023623// _loop0_129: (star_targets '=')
23624static asdl_seq *
23625_loop0_129_rule(Parser *p)
23626{
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_targets '=')
23645 if (p->error_indicator) {
23646 D(p->level--);
23647 return NULL;
23648 }
23649 D(fprintf(stderr, "%*c> _loop0_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000023650 void *_tmp_153_var;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023651 while (
Pablo Galindo835f14f2021-01-31 22:52:56 +000023652 (_tmp_153_var = _tmp_153_rule(p)) // star_targets '='
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023653 )
23654 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000023655 _res = _tmp_153_var;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023656 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;
23671 D(fprintf(stderr, "%*c%s _loop0_129[%d-%d]: %s failed!\n", p->level, ' ',
23672 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
23673 }
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_129_type, _seq);
23685 D(p->level--);
23686 return _seq;
23687}
23688
23689// _tmp_130: yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023690static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023691_tmp_130_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023692{
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 { // yield_expr
23701 if (p->error_indicator) {
23702 D(p->level--);
23703 return NULL;
23704 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023705 D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023706 expr_ty yield_expr_var;
23707 if (
23708 (yield_expr_var = yield_expr_rule(p)) // yield_expr
23709 )
23710 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023711 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 +010023712 _res = yield_expr_var;
23713 goto done;
23714 }
23715 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023716 D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023717 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
23718 }
23719 { // star_expressions
23720 if (p->error_indicator) {
23721 D(p->level--);
23722 return NULL;
23723 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023724 D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023725 expr_ty star_expressions_var;
23726 if (
23727 (star_expressions_var = star_expressions_rule(p)) // star_expressions
23728 )
23729 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023730 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 +010023731 _res = star_expressions_var;
23732 goto done;
23733 }
23734 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023735 D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
23737 }
23738 _res = NULL;
23739 done:
23740 D(p->level--);
23741 return _res;
23742}
23743
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023744// _tmp_131: '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023745static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023746_tmp_131_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023747{
23748 D(p->level++);
23749 if (p->error_indicator) {
23750 D(p->level--);
23751 return NULL;
23752 }
23753 void * _res = NULL;
23754 int _mark = p->mark;
23755 { // '['
23756 if (p->error_indicator) {
23757 D(p->level--);
23758 return NULL;
23759 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023760 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023761 Token * _literal;
23762 if (
23763 (_literal = _PyPegen_expect_token(p, 9)) // token='['
23764 )
23765 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023766 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023767 _res = _literal;
23768 goto done;
23769 }
23770 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023771 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023772 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
23773 }
23774 { // '('
23775 if (p->error_indicator) {
23776 D(p->level--);
23777 return NULL;
23778 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023779 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023780 Token * _literal;
23781 if (
23782 (_literal = _PyPegen_expect_token(p, 7)) // token='('
23783 )
23784 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023785 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023786 _res = _literal;
23787 goto done;
23788 }
23789 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023790 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023791 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
23792 }
23793 { // '{'
23794 if (p->error_indicator) {
23795 D(p->level--);
23796 return NULL;
23797 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023798 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023799 Token * _literal;
23800 if (
23801 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
23802 )
23803 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023804 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023805 _res = _literal;
23806 goto done;
23807 }
23808 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023809 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023810 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
23811 }
23812 _res = NULL;
23813 done:
23814 D(p->level--);
23815 return _res;
23816}
23817
Pablo Galindo835f14f2021-01-31 22:52:56 +000023818// _tmp_132: '[' | '{'
23819static void *
23820_tmp_132_rule(Parser *p)
23821{
23822 D(p->level++);
23823 if (p->error_indicator) {
23824 D(p->level--);
23825 return NULL;
23826 }
23827 void * _res = NULL;
23828 int _mark = p->mark;
23829 { // '['
23830 if (p->error_indicator) {
23831 D(p->level--);
23832 return NULL;
23833 }
23834 D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
23835 Token * _literal;
23836 if (
23837 (_literal = _PyPegen_expect_token(p, 9)) // token='['
23838 )
23839 {
23840 D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
23841 _res = _literal;
23842 goto done;
23843 }
23844 p->mark = _mark;
23845 D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
23846 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
23847 }
23848 { // '{'
23849 if (p->error_indicator) {
23850 D(p->level--);
23851 return NULL;
23852 }
23853 D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
23854 Token * _literal;
23855 if (
23856 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
23857 )
23858 {
23859 D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
23860 _res = _literal;
23861 goto done;
23862 }
23863 p->mark = _mark;
23864 D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
23865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
23866 }
23867 _res = NULL;
23868 done:
23869 D(p->level--);
23870 return _res;
23871}
23872
23873// _loop0_133: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023874static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000023875_loop0_133_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023876{
23877 D(p->level++);
23878 if (p->error_indicator) {
23879 D(p->level--);
23880 return NULL;
23881 }
23882 void *_res = NULL;
23883 int _mark = p->mark;
23884 int _start_mark = p->mark;
23885 void **_children = PyMem_Malloc(sizeof(void *));
23886 if (!_children) {
23887 p->error_indicator = 1;
23888 PyErr_NoMemory();
23889 D(p->level--);
23890 return NULL;
23891 }
23892 ssize_t _children_capacity = 1;
23893 ssize_t _n = 0;
23894 { // param_no_default
23895 if (p->error_indicator) {
23896 D(p->level--);
23897 return NULL;
23898 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000023899 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 +010023900 arg_ty param_no_default_var;
23901 while (
23902 (param_no_default_var = param_no_default_rule(p)) // param_no_default
23903 )
23904 {
23905 _res = param_no_default_var;
23906 if (_n == _children_capacity) {
23907 _children_capacity *= 2;
23908 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23909 if (!_new_children) {
23910 p->error_indicator = 1;
23911 PyErr_NoMemory();
23912 D(p->level--);
23913 return NULL;
23914 }
23915 _children = _new_children;
23916 }
23917 _children[_n++] = _res;
23918 _mark = p->mark;
23919 }
23920 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000023921 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023922 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
23923 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023924 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023925 if (!_seq) {
23926 PyMem_Free(_children);
23927 p->error_indicator = 1;
23928 PyErr_NoMemory();
23929 D(p->level--);
23930 return NULL;
23931 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023932 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023933 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000023934 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023935 D(p->level--);
23936 return _seq;
23937}
23938
Pablo Galindo835f14f2021-01-31 22:52:56 +000023939// _loop1_134: param_with_default
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020023940static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000023941_loop1_134_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023942{
23943 D(p->level++);
23944 if (p->error_indicator) {
23945 D(p->level--);
23946 return NULL;
23947 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020023948 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023949 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020023950 int _start_mark = p->mark;
23951 void **_children = PyMem_Malloc(sizeof(void *));
23952 if (!_children) {
23953 p->error_indicator = 1;
23954 PyErr_NoMemory();
23955 D(p->level--);
23956 return NULL;
23957 }
23958 ssize_t _children_capacity = 1;
23959 ssize_t _n = 0;
23960 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023961 if (p->error_indicator) {
23962 D(p->level--);
23963 return NULL;
23964 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000023965 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 +020023966 NameDefaultPair* param_with_default_var;
23967 while (
23968 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023969 )
23970 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020023971 _res = param_with_default_var;
23972 if (_n == _children_capacity) {
23973 _children_capacity *= 2;
23974 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23975 if (!_new_children) {
23976 p->error_indicator = 1;
23977 PyErr_NoMemory();
23978 D(p->level--);
23979 return NULL;
23980 }
23981 _children = _new_children;
23982 }
23983 _children[_n++] = _res;
23984 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023985 }
23986 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000023987 D(fprintf(stderr, "%*c%s _loop1_134[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020023988 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023989 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020023990 if (_n == 0 || p->error_indicator) {
23991 PyMem_Free(_children);
23992 D(p->level--);
23993 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023994 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020023995 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23996 if (!_seq) {
23997 PyMem_Free(_children);
23998 p->error_indicator = 1;
23999 PyErr_NoMemory();
24000 D(p->level--);
24001 return NULL;
24002 }
24003 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24004 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000024005 _PyPegen_insert_memo(p, _start_mark, _loop1_134_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024006 D(p->level--);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024007 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024008}
24009
Pablo Galindo835f14f2021-01-31 22:52:56 +000024010// _loop0_135: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024011static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000024012_loop0_135_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024013{
24014 D(p->level++);
24015 if (p->error_indicator) {
24016 D(p->level--);
24017 return NULL;
24018 }
24019 void *_res = NULL;
24020 int _mark = p->mark;
24021 int _start_mark = p->mark;
24022 void **_children = PyMem_Malloc(sizeof(void *));
24023 if (!_children) {
24024 p->error_indicator = 1;
24025 PyErr_NoMemory();
24026 D(p->level--);
24027 return NULL;
24028 }
24029 ssize_t _children_capacity = 1;
24030 ssize_t _n = 0;
24031 { // lambda_param_no_default
24032 if (p->error_indicator) {
24033 D(p->level--);
24034 return NULL;
24035 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024036 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 +010024037 arg_ty lambda_param_no_default_var;
24038 while (
24039 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
24040 )
24041 {
24042 _res = lambda_param_no_default_var;
24043 if (_n == _children_capacity) {
24044 _children_capacity *= 2;
24045 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24046 if (!_new_children) {
24047 p->error_indicator = 1;
24048 PyErr_NoMemory();
24049 D(p->level--);
24050 return NULL;
24051 }
24052 _children = _new_children;
24053 }
24054 _children[_n++] = _res;
24055 _mark = p->mark;
24056 }
24057 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024058 D(fprintf(stderr, "%*c%s _loop0_135[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024059 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
24060 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024061 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024062 if (!_seq) {
24063 PyMem_Free(_children);
24064 p->error_indicator = 1;
24065 PyErr_NoMemory();
24066 D(p->level--);
24067 return NULL;
24068 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024069 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024070 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000024071 _PyPegen_insert_memo(p, _start_mark, _loop0_135_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024072 D(p->level--);
24073 return _seq;
24074}
24075
Pablo Galindo835f14f2021-01-31 22:52:56 +000024076// _loop1_136: lambda_param_with_default
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024077static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000024078_loop1_136_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024079{
24080 D(p->level++);
24081 if (p->error_indicator) {
24082 D(p->level--);
24083 return NULL;
24084 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024085 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024086 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024087 int _start_mark = p->mark;
24088 void **_children = PyMem_Malloc(sizeof(void *));
24089 if (!_children) {
24090 p->error_indicator = 1;
24091 PyErr_NoMemory();
24092 D(p->level--);
24093 return NULL;
24094 }
24095 ssize_t _children_capacity = 1;
24096 ssize_t _n = 0;
24097 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024098 if (p->error_indicator) {
24099 D(p->level--);
24100 return NULL;
24101 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024102 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 +020024103 NameDefaultPair* lambda_param_with_default_var;
24104 while (
24105 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024106 )
24107 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024108 _res = lambda_param_with_default_var;
24109 if (_n == _children_capacity) {
24110 _children_capacity *= 2;
24111 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24112 if (!_new_children) {
24113 p->error_indicator = 1;
24114 PyErr_NoMemory();
24115 D(p->level--);
24116 return NULL;
24117 }
24118 _children = _new_children;
24119 }
24120 _children[_n++] = _res;
24121 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024122 }
24123 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024124 D(fprintf(stderr, "%*c%s _loop1_136[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024125 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024126 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024127 if (_n == 0 || p->error_indicator) {
24128 PyMem_Free(_children);
24129 D(p->level--);
24130 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024131 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024132 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24133 if (!_seq) {
24134 PyMem_Free(_children);
24135 p->error_indicator = 1;
24136 PyErr_NoMemory();
24137 D(p->level--);
24138 return NULL;
24139 }
24140 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24141 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000024142 _PyPegen_insert_memo(p, _start_mark, _loop1_136_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024143 D(p->level--);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024144 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024145}
24146
Pablo Galindo835f14f2021-01-31 22:52:56 +000024147// _tmp_137: ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024148static void *
Pablo Galindo835f14f2021-01-31 22:52:56 +000024149_tmp_137_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024150{
24151 D(p->level++);
24152 if (p->error_indicator) {
24153 D(p->level--);
24154 return NULL;
24155 }
24156 void * _res = NULL;
24157 int _mark = p->mark;
24158 { // ')'
24159 if (p->error_indicator) {
24160 D(p->level--);
24161 return NULL;
24162 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024163 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024164 Token * _literal;
24165 if (
24166 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
24167 )
24168 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000024169 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024170 _res = _literal;
24171 goto done;
24172 }
24173 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024174 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
24176 }
24177 { // ',' (')' | '**')
24178 if (p->error_indicator) {
24179 D(p->level--);
24180 return NULL;
24181 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024182 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024183 Token * _literal;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024184 void *_tmp_154_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024185 if (
24186 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24187 &&
Pablo Galindo835f14f2021-01-31 22:52:56 +000024188 (_tmp_154_var = _tmp_154_rule(p)) // ')' | '**'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024189 )
24190 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000024191 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
24192 _res = _PyPegen_dummy_name(p, _literal, _tmp_154_var);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024193 goto done;
24194 }
24195 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024196 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024197 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
24198 }
24199 _res = NULL;
24200 done:
24201 D(p->level--);
24202 return _res;
24203}
24204
Pablo Galindo835f14f2021-01-31 22:52:56 +000024205// _tmp_138: ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024206static void *
Pablo Galindo835f14f2021-01-31 22:52:56 +000024207_tmp_138_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024208{
24209 D(p->level++);
24210 if (p->error_indicator) {
24211 D(p->level--);
24212 return NULL;
24213 }
24214 void * _res = NULL;
24215 int _mark = p->mark;
24216 { // ':'
24217 if (p->error_indicator) {
24218 D(p->level--);
24219 return NULL;
24220 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024221 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024222 Token * _literal;
24223 if (
24224 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
24225 )
24226 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000024227 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024228 _res = _literal;
24229 goto done;
24230 }
24231 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024232 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024233 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
24234 }
24235 { // ',' (':' | '**')
24236 if (p->error_indicator) {
24237 D(p->level--);
24238 return NULL;
24239 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024240 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024241 Token * _literal;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024242 void *_tmp_155_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024243 if (
24244 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24245 &&
Pablo Galindo835f14f2021-01-31 22:52:56 +000024246 (_tmp_155_var = _tmp_155_rule(p)) // ':' | '**'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024247 )
24248 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000024249 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
24250 _res = _PyPegen_dummy_name(p, _literal, _tmp_155_var);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024251 goto done;
24252 }
24253 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024254 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024255 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
24256 }
24257 _res = NULL;
24258 done:
24259 D(p->level--);
24260 return _res;
24261}
24262
Pablo Galindo835f14f2021-01-31 22:52:56 +000024263// _tmp_139: star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024264static void *
Pablo Galindo835f14f2021-01-31 22:52:56 +000024265_tmp_139_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024266{
24267 D(p->level++);
24268 if (p->error_indicator) {
24269 D(p->level--);
24270 return NULL;
24271 }
24272 void * _res = NULL;
24273 int _mark = p->mark;
24274 { // star_targets '='
24275 if (p->error_indicator) {
24276 D(p->level--);
24277 return NULL;
24278 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024279 D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024280 Token * _literal;
24281 expr_ty z;
24282 if (
24283 (z = star_targets_rule(p)) // star_targets
24284 &&
24285 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24286 )
24287 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000024288 D(fprintf(stderr, "%*c+ _tmp_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024289 _res = z;
24290 if (_res == NULL && PyErr_Occurred()) {
24291 p->error_indicator = 1;
24292 D(p->level--);
24293 return NULL;
24294 }
24295 goto done;
24296 }
24297 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024298 D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024299 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
24300 }
24301 _res = NULL;
24302 done:
24303 D(p->level--);
24304 return _res;
24305}
24306
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024307// _tmp_140: '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024308static void *
24309_tmp_140_rule(Parser *p)
24310{
24311 D(p->level++);
24312 if (p->error_indicator) {
24313 D(p->level--);
24314 return NULL;
24315 }
24316 void * _res = NULL;
24317 int _mark = p->mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024318 { // '.'
24319 if (p->error_indicator) {
24320 D(p->level--);
24321 return NULL;
24322 }
24323 D(fprintf(stderr, "%*c> _tmp_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24324 Token * _literal;
24325 if (
24326 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24327 )
24328 {
24329 D(fprintf(stderr, "%*c+ _tmp_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24330 _res = _literal;
24331 goto done;
24332 }
24333 p->mark = _mark;
24334 D(fprintf(stderr, "%*c%s _tmp_140[%d-%d]: %s failed!\n", p->level, ' ',
24335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24336 }
24337 { // '...'
24338 if (p->error_indicator) {
24339 D(p->level--);
24340 return NULL;
24341 }
24342 D(fprintf(stderr, "%*c> _tmp_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
24343 Token * _literal;
24344 if (
24345 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
24346 )
24347 {
24348 D(fprintf(stderr, "%*c+ _tmp_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
24349 _res = _literal;
24350 goto done;
24351 }
24352 p->mark = _mark;
24353 D(fprintf(stderr, "%*c%s _tmp_140[%d-%d]: %s failed!\n", p->level, ' ',
24354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
24355 }
24356 _res = NULL;
24357 done:
24358 D(p->level--);
24359 return _res;
24360}
24361
Pablo Galindo835f14f2021-01-31 22:52:56 +000024362// _tmp_141: '.' | '...'
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024363static void *
24364_tmp_141_rule(Parser *p)
24365{
24366 D(p->level++);
24367 if (p->error_indicator) {
24368 D(p->level--);
24369 return NULL;
24370 }
24371 void * _res = NULL;
24372 int _mark = p->mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024373 { // '.'
24374 if (p->error_indicator) {
24375 D(p->level--);
24376 return NULL;
24377 }
24378 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24379 Token * _literal;
24380 if (
24381 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24382 )
24383 {
24384 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24385 _res = _literal;
24386 goto done;
24387 }
24388 p->mark = _mark;
24389 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
24390 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24391 }
24392 { // '...'
24393 if (p->error_indicator) {
24394 D(p->level--);
24395 return NULL;
24396 }
24397 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
24398 Token * _literal;
24399 if (
24400 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
24401 )
24402 {
24403 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
24404 _res = _literal;
24405 goto done;
24406 }
24407 p->mark = _mark;
24408 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
24409 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
24410 }
24411 _res = NULL;
24412 done:
24413 D(p->level--);
24414 return _res;
24415}
24416
24417// _tmp_142: '@' named_expression NEWLINE
24418static void *
24419_tmp_142_rule(Parser *p)
24420{
24421 D(p->level++);
24422 if (p->error_indicator) {
24423 D(p->level--);
24424 return NULL;
24425 }
24426 void * _res = NULL;
24427 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024428 { // '@' named_expression NEWLINE
24429 if (p->error_indicator) {
24430 D(p->level--);
24431 return NULL;
24432 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024433 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024434 Token * _literal;
24435 expr_ty f;
24436 Token * newline_var;
24437 if (
24438 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
24439 &&
24440 (f = named_expression_rule(p)) // named_expression
24441 &&
24442 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
24443 )
24444 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000024445 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024446 _res = f;
24447 if (_res == NULL && PyErr_Occurred()) {
24448 p->error_indicator = 1;
24449 D(p->level--);
24450 return NULL;
24451 }
24452 goto done;
24453 }
24454 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024455 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
24457 }
24458 _res = NULL;
24459 done:
24460 D(p->level--);
24461 return _res;
24462}
24463
Pablo Galindo835f14f2021-01-31 22:52:56 +000024464// _tmp_143: ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024465static void *
Pablo Galindo835f14f2021-01-31 22:52:56 +000024466_tmp_143_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024467{
24468 D(p->level++);
24469 if (p->error_indicator) {
24470 D(p->level--);
24471 return NULL;
24472 }
24473 void * _res = NULL;
24474 int _mark = p->mark;
24475 { // ',' star_expression
24476 if (p->error_indicator) {
24477 D(p->level--);
24478 return NULL;
24479 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024480 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024481 Token * _literal;
24482 expr_ty c;
24483 if (
24484 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24485 &&
24486 (c = star_expression_rule(p)) // star_expression
24487 )
24488 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000024489 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024490 _res = c;
24491 if (_res == NULL && PyErr_Occurred()) {
24492 p->error_indicator = 1;
24493 D(p->level--);
24494 return NULL;
24495 }
24496 goto done;
24497 }
24498 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024499 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024500 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
24501 }
24502 _res = NULL;
24503 done:
24504 D(p->level--);
24505 return _res;
24506}
24507
Pablo Galindo835f14f2021-01-31 22:52:56 +000024508// _tmp_144: ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024509static void *
Pablo Galindo835f14f2021-01-31 22:52:56 +000024510_tmp_144_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024511{
24512 D(p->level++);
24513 if (p->error_indicator) {
24514 D(p->level--);
24515 return NULL;
24516 }
24517 void * _res = NULL;
24518 int _mark = p->mark;
24519 { // ',' expression
24520 if (p->error_indicator) {
24521 D(p->level--);
24522 return NULL;
24523 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024524 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024525 Token * _literal;
24526 expr_ty c;
24527 if (
24528 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24529 &&
24530 (c = expression_rule(p)) // expression
24531 )
24532 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000024533 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024534 _res = c;
24535 if (_res == NULL && PyErr_Occurred()) {
24536 p->error_indicator = 1;
24537 D(p->level--);
24538 return NULL;
24539 }
24540 goto done;
24541 }
24542 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024543 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
24545 }
24546 _res = NULL;
24547 done:
24548 D(p->level--);
24549 return _res;
24550}
24551
Pablo Galindo835f14f2021-01-31 22:52:56 +000024552// _tmp_145: 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024553static void *
Pablo Galindo835f14f2021-01-31 22:52:56 +000024554_tmp_145_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024555{
24556 D(p->level++);
24557 if (p->error_indicator) {
24558 D(p->level--);
24559 return NULL;
24560 }
24561 void * _res = NULL;
24562 int _mark = p->mark;
24563 { // 'or' conjunction
24564 if (p->error_indicator) {
24565 D(p->level--);
24566 return NULL;
24567 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024568 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024569 Token * _keyword;
24570 expr_ty c;
24571 if (
24572 (_keyword = _PyPegen_expect_token(p, 531)) // token='or'
24573 &&
24574 (c = conjunction_rule(p)) // conjunction
24575 )
24576 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000024577 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024578 _res = c;
24579 if (_res == NULL && PyErr_Occurred()) {
24580 p->error_indicator = 1;
24581 D(p->level--);
24582 return NULL;
24583 }
24584 goto done;
24585 }
24586 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024587 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024588 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
24589 }
24590 _res = NULL;
24591 done:
24592 D(p->level--);
24593 return _res;
24594}
24595
Pablo Galindo835f14f2021-01-31 22:52:56 +000024596// _tmp_146: 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024597static void *
Pablo Galindo835f14f2021-01-31 22:52:56 +000024598_tmp_146_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024599{
24600 D(p->level++);
24601 if (p->error_indicator) {
24602 D(p->level--);
24603 return NULL;
24604 }
24605 void * _res = NULL;
24606 int _mark = p->mark;
24607 { // 'and' inversion
24608 if (p->error_indicator) {
24609 D(p->level--);
24610 return NULL;
24611 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024612 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024613 Token * _keyword;
24614 expr_ty c;
24615 if (
24616 (_keyword = _PyPegen_expect_token(p, 532)) // token='and'
24617 &&
24618 (c = inversion_rule(p)) // inversion
24619 )
24620 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000024621 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024622 _res = c;
24623 if (_res == NULL && PyErr_Occurred()) {
24624 p->error_indicator = 1;
24625 D(p->level--);
24626 return NULL;
24627 }
24628 goto done;
24629 }
24630 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024631 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000024632 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024633 }
24634 _res = NULL;
24635 done:
24636 D(p->level--);
24637 return _res;
24638}
24639
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024640// _tmp_147: 'if' disjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024641static void *
24642_tmp_147_rule(Parser *p)
24643{
24644 D(p->level++);
24645 if (p->error_indicator) {
24646 D(p->level--);
24647 return NULL;
24648 }
24649 void * _res = NULL;
24650 int _mark = p->mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024651 { // 'if' disjunction
24652 if (p->error_indicator) {
24653 D(p->level--);
24654 return NULL;
24655 }
24656 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24657 Token * _keyword;
24658 expr_ty z;
24659 if (
24660 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
24661 &&
24662 (z = disjunction_rule(p)) // disjunction
24663 )
24664 {
24665 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24666 _res = z;
24667 if (_res == NULL && PyErr_Occurred()) {
24668 p->error_indicator = 1;
24669 D(p->level--);
24670 return NULL;
24671 }
24672 goto done;
24673 }
24674 p->mark = _mark;
24675 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
24676 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
24677 }
24678 _res = NULL;
24679 done:
24680 D(p->level--);
24681 return _res;
24682}
24683
Pablo Galindo835f14f2021-01-31 22:52:56 +000024684// _tmp_148: 'if' disjunction
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024685static void *
24686_tmp_148_rule(Parser *p)
24687{
24688 D(p->level++);
24689 if (p->error_indicator) {
24690 D(p->level--);
24691 return NULL;
24692 }
24693 void * _res = NULL;
24694 int _mark = p->mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024695 { // 'if' disjunction
24696 if (p->error_indicator) {
24697 D(p->level--);
24698 return NULL;
24699 }
24700 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24701 Token * _keyword;
24702 expr_ty z;
24703 if (
24704 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
24705 &&
24706 (z = disjunction_rule(p)) // disjunction
24707 )
24708 {
24709 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24710 _res = z;
24711 if (_res == NULL && PyErr_Occurred()) {
24712 p->error_indicator = 1;
24713 D(p->level--);
24714 return NULL;
24715 }
24716 goto done;
24717 }
24718 p->mark = _mark;
24719 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
24720 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
24721 }
24722 _res = NULL;
24723 done:
24724 D(p->level--);
24725 return _res;
24726}
24727
24728// _tmp_149: starred_expression | named_expression !'='
24729static void *
24730_tmp_149_rule(Parser *p)
24731{
24732 D(p->level++);
24733 if (p->error_indicator) {
24734 D(p->level--);
24735 return NULL;
24736 }
24737 void * _res = NULL;
24738 int _mark = p->mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010024739 { // starred_expression
24740 if (p->error_indicator) {
24741 D(p->level--);
24742 return NULL;
24743 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024744 D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010024745 expr_ty starred_expression_var;
24746 if (
24747 (starred_expression_var = starred_expression_rule(p)) // starred_expression
24748 )
24749 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000024750 D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010024751 _res = starred_expression_var;
24752 goto done;
24753 }
24754 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024755 D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010024756 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
24757 }
24758 { // named_expression !'='
24759 if (p->error_indicator) {
24760 D(p->level--);
24761 return NULL;
24762 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024763 D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010024764 expr_ty named_expression_var;
24765 if (
24766 (named_expression_var = named_expression_rule(p)) // named_expression
24767 &&
24768 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
24769 )
24770 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000024771 D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010024772 _res = named_expression_var;
24773 goto done;
24774 }
24775 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024776 D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000024777 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression !'='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024778 }
24779 _res = NULL;
24780 done:
24781 D(p->level--);
24782 return _res;
24783}
24784
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024785// _tmp_150: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024786static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024787_tmp_150_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024788{
24789 D(p->level++);
24790 if (p->error_indicator) {
24791 D(p->level--);
24792 return NULL;
24793 }
24794 void * _res = NULL;
24795 int _mark = p->mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024796 { // ',' star_target
24797 if (p->error_indicator) {
24798 D(p->level--);
24799 return NULL;
24800 }
24801 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
24802 Token * _literal;
24803 expr_ty c;
24804 if (
24805 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24806 &&
24807 (c = star_target_rule(p)) // star_target
24808 )
24809 {
24810 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
24811 _res = c;
24812 if (_res == NULL && PyErr_Occurred()) {
24813 p->error_indicator = 1;
24814 D(p->level--);
24815 return NULL;
24816 }
24817 goto done;
24818 }
24819 p->mark = _mark;
24820 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
24821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
24822 }
24823 _res = NULL;
24824 done:
24825 D(p->level--);
24826 return _res;
24827}
24828
Pablo Galindo835f14f2021-01-31 22:52:56 +000024829// _tmp_151: ',' star_target
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024830static void *
24831_tmp_151_rule(Parser *p)
24832{
24833 D(p->level++);
24834 if (p->error_indicator) {
24835 D(p->level--);
24836 return NULL;
24837 }
24838 void * _res = NULL;
24839 int _mark = p->mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024840 { // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024841 if (p->error_indicator) {
24842 D(p->level--);
24843 return NULL;
24844 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024845 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024846 Token * _literal;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024847 expr_ty c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024848 if (
Pablo Galindo835f14f2021-01-31 22:52:56 +000024849 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024850 &&
Pablo Galindo835f14f2021-01-31 22:52:56 +000024851 (c = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024852 )
24853 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000024854 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
24855 _res = c;
24856 if (_res == NULL && PyErr_Occurred()) {
24857 p->error_indicator = 1;
24858 D(p->level--);
24859 return NULL;
24860 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024861 goto done;
24862 }
24863 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024864 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000024865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024866 }
24867 _res = NULL;
24868 done:
24869 D(p->level--);
24870 return _res;
24871}
24872
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024873// _tmp_152: star_targets '='
24874static void *
24875_tmp_152_rule(Parser *p)
24876{
24877 D(p->level++);
24878 if (p->error_indicator) {
24879 D(p->level--);
24880 return NULL;
24881 }
24882 void * _res = NULL;
24883 int _mark = p->mark;
24884 { // star_targets '='
24885 if (p->error_indicator) {
24886 D(p->level--);
24887 return NULL;
24888 }
24889 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
24890 Token * _literal;
24891 expr_ty star_targets_var;
24892 if (
24893 (star_targets_var = star_targets_rule(p)) // star_targets
24894 &&
24895 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24896 )
24897 {
24898 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
24899 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
24900 goto done;
24901 }
24902 p->mark = _mark;
24903 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
24904 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
24905 }
24906 _res = NULL;
24907 done:
24908 D(p->level--);
24909 return _res;
24910}
24911
Pablo Galindo835f14f2021-01-31 22:52:56 +000024912// _tmp_153: star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024913static void *
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024914_tmp_153_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024915{
24916 D(p->level++);
24917 if (p->error_indicator) {
24918 D(p->level--);
24919 return NULL;
24920 }
24921 void * _res = NULL;
24922 int _mark = p->mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000024923 { // star_targets '='
24924 if (p->error_indicator) {
24925 D(p->level--);
24926 return NULL;
24927 }
24928 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
24929 Token * _literal;
24930 expr_ty star_targets_var;
24931 if (
24932 (star_targets_var = star_targets_rule(p)) // star_targets
24933 &&
24934 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24935 )
24936 {
24937 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
24938 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
24939 goto done;
24940 }
24941 p->mark = _mark;
24942 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
24943 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
24944 }
24945 _res = NULL;
24946 done:
24947 D(p->level--);
24948 return _res;
24949}
24950
24951// _tmp_154: ')' | '**'
24952static void *
24953_tmp_154_rule(Parser *p)
24954{
24955 D(p->level++);
24956 if (p->error_indicator) {
24957 D(p->level--);
24958 return NULL;
24959 }
24960 void * _res = NULL;
24961 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024962 { // ')'
24963 if (p->error_indicator) {
24964 D(p->level--);
24965 return NULL;
24966 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000024967 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024968 Token * _literal;
24969 if (
24970 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
24971 )
24972 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000024973 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024974 _res = _literal;
24975 goto done;
24976 }
24977 p->mark = _mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024978 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000024979 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024980 }
24981 { // '**'
24982 if (p->error_indicator) {
24983 D(p->level--);
24984 return NULL;
24985 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024986 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024987 Token * _literal;
24988 if (
24989 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
24990 )
24991 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024992 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024993 _res = _literal;
24994 goto done;
24995 }
24996 p->mark = _mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024997 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024998 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
24999 }
25000 _res = NULL;
25001 done:
25002 D(p->level--);
25003 return _res;
25004}
25005
Pablo Galindo835f14f2021-01-31 22:52:56 +000025006// _tmp_155: ':' | '**'
25007static void *
25008_tmp_155_rule(Parser *p)
25009{
25010 D(p->level++);
25011 if (p->error_indicator) {
25012 D(p->level--);
25013 return NULL;
25014 }
25015 void * _res = NULL;
25016 int _mark = p->mark;
25017 { // ':'
25018 if (p->error_indicator) {
25019 D(p->level--);
25020 return NULL;
25021 }
25022 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
25023 Token * _literal;
25024 if (
25025 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
25026 )
25027 {
25028 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
25029 _res = _literal;
25030 goto done;
25031 }
25032 p->mark = _mark;
25033 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
25034 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
25035 }
25036 { // '**'
25037 if (p->error_indicator) {
25038 D(p->level--);
25039 return NULL;
25040 }
25041 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
25042 Token * _literal;
25043 if (
25044 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
25045 )
25046 {
25047 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
25048 _res = _literal;
25049 goto done;
25050 }
25051 p->mark = _mark;
25052 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
25053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
25054 }
25055 _res = NULL;
25056 done:
25057 D(p->level--);
25058 return _res;
25059}
25060
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025061void *
25062_PyPegen_parse(Parser *p)
25063{
25064 // Initialize keywords
25065 p->keywords = reserved_keywords;
25066 p->n_keyword_lists = n_keyword_lists;
25067
25068 // Run parser
25069 void *result = NULL;
25070 if (p->start_rule == Py_file_input) {
25071 result = file_rule(p);
25072 } else if (p->start_rule == Py_single_input) {
25073 result = interactive_rule(p);
25074 } else if (p->start_rule == Py_eval_input) {
25075 result = eval_rule(p);
25076 } else if (p->start_rule == Py_func_type_input) {
25077 result = func_type_rule(p);
25078 } else if (p->start_rule == Py_fstring_input) {
25079 result = fstring_rule(p);
25080 }
25081
25082 return result;
25083}
25084
25085// The end