blob: f7794e715b918f0a4f04d8b29edc7c1477b09c61 [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
365#define _loop0_132_type 1296
366#define _loop1_133_type 1297
367#define _loop0_134_type 1298
368#define _loop1_135_type 1299
369#define _tmp_136_type 1300
370#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 Galindo1ed83ad2020-06-11 17:30:46 +0100388
389static mod_ty file_rule(Parser *p);
390static mod_ty interactive_rule(Parser *p);
391static mod_ty eval_rule(Parser *p);
392static mod_ty func_type_rule(Parser *p);
393static expr_ty fstring_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100394static asdl_expr_seq* type_expressions_rule(Parser *p);
395static asdl_stmt_seq* statements_rule(Parser *p);
396static asdl_stmt_seq* statement_rule(Parser *p);
397static asdl_stmt_seq* statement_newline_rule(Parser *p);
Pablo Galindo9bdc40e2020-11-30 19:42:38 +0000398static asdl_stmt_seq* simple_stmts_rule(Parser *p);
399static stmt_ty simple_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100400static stmt_ty compound_stmt_rule(Parser *p);
401static stmt_ty assignment_rule(Parser *p);
402static AugOperator* augassign_rule(Parser *p);
403static stmt_ty global_stmt_rule(Parser *p);
404static stmt_ty nonlocal_stmt_rule(Parser *p);
405static stmt_ty yield_stmt_rule(Parser *p);
406static stmt_ty assert_stmt_rule(Parser *p);
407static stmt_ty del_stmt_rule(Parser *p);
408static stmt_ty import_stmt_rule(Parser *p);
409static stmt_ty import_name_rule(Parser *p);
410static stmt_ty import_from_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100411static asdl_alias_seq* import_from_targets_rule(Parser *p);
412static asdl_alias_seq* import_from_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100413static alias_ty import_from_as_name_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100414static asdl_alias_seq* dotted_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100415static alias_ty dotted_as_name_rule(Parser *p);
416static expr_ty dotted_name_rule(Parser *p);
417static stmt_ty if_stmt_rule(Parser *p);
418static stmt_ty elif_stmt_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100419static asdl_stmt_seq* else_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100420static stmt_ty while_stmt_rule(Parser *p);
421static stmt_ty for_stmt_rule(Parser *p);
422static stmt_ty with_stmt_rule(Parser *p);
423static withitem_ty with_item_rule(Parser *p);
424static stmt_ty try_stmt_rule(Parser *p);
425static excepthandler_ty except_block_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100426static asdl_stmt_seq* finally_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100427static stmt_ty return_stmt_rule(Parser *p);
428static stmt_ty raise_stmt_rule(Parser *p);
429static stmt_ty function_def_rule(Parser *p);
430static stmt_ty function_def_raw_rule(Parser *p);
431static Token* func_type_comment_rule(Parser *p);
432static arguments_ty params_rule(Parser *p);
433static arguments_ty parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100434static asdl_arg_seq* slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100435static SlashWithDefault* slash_with_default_rule(Parser *p);
436static StarEtc* star_etc_rule(Parser *p);
437static arg_ty kwds_rule(Parser *p);
438static arg_ty param_no_default_rule(Parser *p);
439static NameDefaultPair* param_with_default_rule(Parser *p);
440static NameDefaultPair* param_maybe_default_rule(Parser *p);
441static arg_ty param_rule(Parser *p);
442static expr_ty annotation_rule(Parser *p);
443static expr_ty default_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100444static asdl_expr_seq* decorators_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100445static stmt_ty class_def_rule(Parser *p);
446static stmt_ty class_def_raw_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100447static asdl_stmt_seq* block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100448static expr_ty star_expressions_rule(Parser *p);
449static expr_ty star_expression_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100450static asdl_expr_seq* star_named_expressions_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100451static expr_ty star_named_expression_rule(Parser *p);
452static expr_ty named_expression_rule(Parser *p);
453static expr_ty annotated_rhs_rule(Parser *p);
454static expr_ty expressions_rule(Parser *p);
455static expr_ty expression_rule(Parser *p);
456static expr_ty lambdef_rule(Parser *p);
457static arguments_ty lambda_params_rule(Parser *p);
458static arguments_ty lambda_parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100459static asdl_arg_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100460static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
461static StarEtc* lambda_star_etc_rule(Parser *p);
462static arg_ty lambda_kwds_rule(Parser *p);
463static arg_ty lambda_param_no_default_rule(Parser *p);
464static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
465static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
466static arg_ty lambda_param_rule(Parser *p);
467static expr_ty disjunction_rule(Parser *p);
468static expr_ty conjunction_rule(Parser *p);
469static expr_ty inversion_rule(Parser *p);
470static expr_ty comparison_rule(Parser *p);
471static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
472static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
473static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
474static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
475static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
476static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
477static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
478static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
479static CmpopExprPair* in_bitwise_or_rule(Parser *p);
480static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
481static CmpopExprPair* is_bitwise_or_rule(Parser *p);
482static expr_ty bitwise_or_rule(Parser *p);
483static expr_ty bitwise_xor_rule(Parser *p);
484static expr_ty bitwise_and_rule(Parser *p);
485static expr_ty shift_expr_rule(Parser *p);
486static expr_ty sum_rule(Parser *p);
487static expr_ty term_rule(Parser *p);
488static expr_ty factor_rule(Parser *p);
489static expr_ty power_rule(Parser *p);
490static expr_ty await_primary_rule(Parser *p);
491static expr_ty primary_rule(Parser *p);
492static expr_ty slices_rule(Parser *p);
493static expr_ty slice_rule(Parser *p);
494static expr_ty atom_rule(Parser *p);
495static expr_ty strings_rule(Parser *p);
496static expr_ty list_rule(Parser *p);
497static expr_ty listcomp_rule(Parser *p);
498static expr_ty tuple_rule(Parser *p);
499static expr_ty group_rule(Parser *p);
500static expr_ty genexp_rule(Parser *p);
501static expr_ty set_rule(Parser *p);
502static expr_ty setcomp_rule(Parser *p);
503static expr_ty dict_rule(Parser *p);
504static expr_ty dictcomp_rule(Parser *p);
505static asdl_seq* double_starred_kvpairs_rule(Parser *p);
506static KeyValuePair* double_starred_kvpair_rule(Parser *p);
507static KeyValuePair* kvpair_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100508static asdl_comprehension_seq* for_if_clauses_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100509static comprehension_ty for_if_clause_rule(Parser *p);
510static expr_ty yield_expr_rule(Parser *p);
511static expr_ty arguments_rule(Parser *p);
512static expr_ty args_rule(Parser *p);
513static asdl_seq* kwargs_rule(Parser *p);
514static expr_ty starred_expression_rule(Parser *p);
515static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
516static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
517static expr_ty star_targets_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200518static asdl_expr_seq* star_targets_list_seq_rule(Parser *p);
519static asdl_expr_seq* star_targets_tuple_seq_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100520static expr_ty star_target_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200521static expr_ty target_with_star_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100522static expr_ty star_atom_rule(Parser *p);
523static expr_ty single_target_rule(Parser *p);
524static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100525static asdl_expr_seq* del_targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100526static expr_ty del_target_rule(Parser *p);
527static expr_ty del_t_atom_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100528static asdl_expr_seq* targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100529static expr_ty target_rule(Parser *p);
530static expr_ty t_primary_rule(Parser *p);
531static void *t_lookahead_rule(Parser *p);
532static expr_ty t_atom_rule(Parser *p);
Lysandros Nikolaoubca70142020-10-27 00:42:04 +0200533static void *invalid_arguments_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100534static void *invalid_kwarg_rule(Parser *p);
535static void *invalid_named_expression_rule(Parser *p);
536static void *invalid_assignment_rule(Parser *p);
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +0300537static expr_ty invalid_ann_assign_target_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300538static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100539static void *invalid_block_rule(Parser *p);
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +0200540static void *invalid_primary_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100541static void *invalid_comprehension_rule(Parser *p);
542static void *invalid_dict_comprehension_rule(Parser *p);
543static void *invalid_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200544static void *invalid_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100545static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200546static void *invalid_lambda_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100547static void *invalid_star_etc_rule(Parser *p);
548static void *invalid_lambda_star_etc_rule(Parser *p);
549static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300550static void *invalid_with_item_rule(Parser *p);
551static void *invalid_for_target_rule(Parser *p);
552static void *invalid_group_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100553static void *invalid_import_from_targets_rule(Parser *p);
554static asdl_seq *_loop0_1_rule(Parser *p);
555static asdl_seq *_loop0_2_rule(Parser *p);
556static asdl_seq *_loop0_4_rule(Parser *p);
557static asdl_seq *_gather_3_rule(Parser *p);
558static asdl_seq *_loop0_6_rule(Parser *p);
559static asdl_seq *_gather_5_rule(Parser *p);
560static asdl_seq *_loop0_8_rule(Parser *p);
561static asdl_seq *_gather_7_rule(Parser *p);
562static asdl_seq *_loop0_10_rule(Parser *p);
563static asdl_seq *_gather_9_rule(Parser *p);
564static asdl_seq *_loop1_11_rule(Parser *p);
565static asdl_seq *_loop0_13_rule(Parser *p);
566static asdl_seq *_gather_12_rule(Parser *p);
567static void *_tmp_14_rule(Parser *p);
568static void *_tmp_15_rule(Parser *p);
569static void *_tmp_16_rule(Parser *p);
570static void *_tmp_17_rule(Parser *p);
571static void *_tmp_18_rule(Parser *p);
572static void *_tmp_19_rule(Parser *p);
573static void *_tmp_20_rule(Parser *p);
574static void *_tmp_21_rule(Parser *p);
575static asdl_seq *_loop1_22_rule(Parser *p);
576static void *_tmp_23_rule(Parser *p);
577static void *_tmp_24_rule(Parser *p);
578static asdl_seq *_loop0_26_rule(Parser *p);
579static asdl_seq *_gather_25_rule(Parser *p);
580static asdl_seq *_loop0_28_rule(Parser *p);
581static asdl_seq *_gather_27_rule(Parser *p);
582static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300583static void *_tmp_30_rule(Parser *p);
584static asdl_seq *_loop0_31_rule(Parser *p);
585static asdl_seq *_loop1_32_rule(Parser *p);
586static asdl_seq *_loop0_34_rule(Parser *p);
587static asdl_seq *_gather_33_rule(Parser *p);
588static void *_tmp_35_rule(Parser *p);
589static asdl_seq *_loop0_37_rule(Parser *p);
590static asdl_seq *_gather_36_rule(Parser *p);
591static void *_tmp_38_rule(Parser *p);
592static asdl_seq *_loop0_40_rule(Parser *p);
593static asdl_seq *_gather_39_rule(Parser *p);
594static asdl_seq *_loop0_42_rule(Parser *p);
595static asdl_seq *_gather_41_rule(Parser *p);
596static asdl_seq *_loop0_44_rule(Parser *p);
597static asdl_seq *_gather_43_rule(Parser *p);
598static asdl_seq *_loop0_46_rule(Parser *p);
599static asdl_seq *_gather_45_rule(Parser *p);
600static void *_tmp_47_rule(Parser *p);
601static asdl_seq *_loop1_48_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100602static void *_tmp_49_rule(Parser *p);
603static void *_tmp_50_rule(Parser *p);
604static void *_tmp_51_rule(Parser *p);
605static void *_tmp_52_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300606static void *_tmp_53_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100607static asdl_seq *_loop0_54_rule(Parser *p);
608static asdl_seq *_loop0_55_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300609static asdl_seq *_loop0_56_rule(Parser *p);
610static asdl_seq *_loop1_57_rule(Parser *p);
611static asdl_seq *_loop0_58_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100612static asdl_seq *_loop1_59_rule(Parser *p);
613static asdl_seq *_loop1_60_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300614static asdl_seq *_loop1_61_rule(Parser *p);
615static asdl_seq *_loop0_62_rule(Parser *p);
616static asdl_seq *_loop1_63_rule(Parser *p);
617static asdl_seq *_loop0_64_rule(Parser *p);
618static asdl_seq *_loop1_65_rule(Parser *p);
619static asdl_seq *_loop0_66_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100620static asdl_seq *_loop1_67_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300621static asdl_seq *_loop1_68_rule(Parser *p);
622static void *_tmp_69_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000623static asdl_seq *_loop1_70_rule(Parser *p);
624static asdl_seq *_loop0_72_rule(Parser *p);
625static asdl_seq *_gather_71_rule(Parser *p);
626static asdl_seq *_loop1_73_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300627static asdl_seq *_loop0_74_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000628static asdl_seq *_loop0_75_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100629static asdl_seq *_loop0_76_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000630static asdl_seq *_loop1_77_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300631static asdl_seq *_loop0_78_rule(Parser *p);
632static asdl_seq *_loop1_79_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000633static asdl_seq *_loop1_80_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100634static asdl_seq *_loop1_81_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000635static asdl_seq *_loop0_82_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300636static asdl_seq *_loop1_83_rule(Parser *p);
637static asdl_seq *_loop0_84_rule(Parser *p);
638static asdl_seq *_loop1_85_rule(Parser *p);
639static asdl_seq *_loop0_86_rule(Parser *p);
640static asdl_seq *_loop1_87_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000641static asdl_seq *_loop1_88_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100642static asdl_seq *_loop1_89_rule(Parser *p);
643static asdl_seq *_loop1_90_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000644static void *_tmp_91_rule(Parser *p);
645static asdl_seq *_loop0_93_rule(Parser *p);
646static asdl_seq *_gather_92_rule(Parser *p);
647static void *_tmp_94_rule(Parser *p);
648static void *_tmp_95_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100649static void *_tmp_96_rule(Parser *p);
650static void *_tmp_97_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000651static asdl_seq *_loop1_98_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300652static void *_tmp_99_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000653static void *_tmp_100_rule(Parser *p);
654static asdl_seq *_loop0_102_rule(Parser *p);
655static asdl_seq *_gather_101_rule(Parser *p);
656static asdl_seq *_loop1_103_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300657static asdl_seq *_loop0_104_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000658static asdl_seq *_loop0_105_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300659static asdl_seq *_loop0_107_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000660static asdl_seq *_gather_106_rule(Parser *p);
661static void *_tmp_108_rule(Parser *p);
662static asdl_seq *_loop0_110_rule(Parser *p);
663static asdl_seq *_gather_109_rule(Parser *p);
Pablo Galindo4a97b152020-09-02 17:44:19 +0100664static asdl_seq *_loop0_112_rule(Parser *p);
665static asdl_seq *_gather_111_rule(Parser *p);
666static asdl_seq *_loop0_114_rule(Parser *p);
667static asdl_seq *_gather_113_rule(Parser *p);
668static asdl_seq *_loop0_116_rule(Parser *p);
669static asdl_seq *_gather_115_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000670static asdl_seq *_loop0_117_rule(Parser *p);
Pablo Galindo4a97b152020-09-02 17:44:19 +0100671static asdl_seq *_loop0_119_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000672static asdl_seq *_gather_118_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200673static asdl_seq *_loop1_120_rule(Parser *p);
674static void *_tmp_121_rule(Parser *p);
675static asdl_seq *_loop0_123_rule(Parser *p);
676static asdl_seq *_gather_122_rule(Parser *p);
677static asdl_seq *_loop0_125_rule(Parser *p);
678static asdl_seq *_gather_124_rule(Parser *p);
679static void *_tmp_126_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000680static asdl_seq *_loop0_127_rule(Parser *p);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +0300681static asdl_seq *_loop0_128_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200682static asdl_seq *_loop0_129_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000683static void *_tmp_130_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200684static void *_tmp_131_rule(Parser *p);
685static asdl_seq *_loop0_132_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200686static asdl_seq *_loop1_133_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200687static asdl_seq *_loop0_134_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200688static asdl_seq *_loop1_135_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100689static void *_tmp_136_rule(Parser *p);
690static void *_tmp_137_rule(Parser *p);
691static void *_tmp_138_rule(Parser *p);
692static void *_tmp_139_rule(Parser *p);
693static void *_tmp_140_rule(Parser *p);
694static void *_tmp_141_rule(Parser *p);
695static void *_tmp_142_rule(Parser *p);
696static void *_tmp_143_rule(Parser *p);
697static void *_tmp_144_rule(Parser *p);
698static void *_tmp_145_rule(Parser *p);
699static void *_tmp_146_rule(Parser *p);
700static void *_tmp_147_rule(Parser *p);
701static void *_tmp_148_rule(Parser *p);
702static void *_tmp_149_rule(Parser *p);
703static void *_tmp_150_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200704static void *_tmp_151_rule(Parser *p);
705static void *_tmp_152_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200706static void *_tmp_153_rule(Parser *p);
707static void *_tmp_154_rule(Parser *p);
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000708
709
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100710// file: statements? $
711static mod_ty
712file_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000713{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100714 D(p->level++);
715 if (p->error_indicator) {
716 D(p->level--);
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000717 return NULL;
718 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100719 mod_ty _res = NULL;
720 int _mark = p->mark;
721 { // statements? $
722 if (p->error_indicator) {
723 D(p->level--);
724 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000725 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100726 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
727 void *a;
728 Token * endmarker_var;
729 if (
730 (a = statements_rule(p), 1) // statements?
731 &&
732 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
733 )
734 {
735 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
736 _res = _PyPegen_make_module ( p , a );
737 if (_res == NULL && PyErr_Occurred()) {
738 p->error_indicator = 1;
739 D(p->level--);
740 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000741 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100742 goto done;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000743 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100744 p->mark = _mark;
745 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
746 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000747 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100748 _res = NULL;
749 done:
750 D(p->level--);
751 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000752}
753
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100754// interactive: statement_newline
755static mod_ty
756interactive_rule(Parser *p)
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000757{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100758 D(p->level++);
759 if (p->error_indicator) {
760 D(p->level--);
761 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000762 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100763 mod_ty _res = NULL;
764 int _mark = p->mark;
765 { // statement_newline
766 if (p->error_indicator) {
767 D(p->level--);
768 return NULL;
769 }
770 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoa5634c42020-09-16 19:42:00 +0100771 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100772 if (
773 (a = statement_newline_rule(p)) // statement_newline
774 )
775 {
776 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
777 _res = Interactive ( a , p -> arena );
778 if (_res == NULL && PyErr_Occurred()) {
779 p->error_indicator = 1;
780 D(p->level--);
781 return NULL;
782 }
783 goto done;
784 }
785 p->mark = _mark;
786 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
787 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
788 }
789 _res = NULL;
790 done:
791 D(p->level--);
792 return _res;
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000793}
794
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100795// eval: expressions NEWLINE* $
796static mod_ty
797eval_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000798{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100799 D(p->level++);
800 if (p->error_indicator) {
801 D(p->level--);
802 return NULL;
803 }
804 mod_ty _res = NULL;
805 int _mark = p->mark;
806 { // expressions NEWLINE* $
807 if (p->error_indicator) {
808 D(p->level--);
809 return NULL;
810 }
811 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
812 asdl_seq * _loop0_1_var;
813 expr_ty a;
814 Token * endmarker_var;
815 if (
816 (a = expressions_rule(p)) // expressions
817 &&
818 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
819 &&
820 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
821 )
822 {
823 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
824 _res = Expression ( a , p -> arena );
825 if (_res == NULL && PyErr_Occurred()) {
826 p->error_indicator = 1;
827 D(p->level--);
828 return NULL;
829 }
830 goto done;
831 }
832 p->mark = _mark;
833 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
834 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
835 }
836 _res = NULL;
837 done:
838 D(p->level--);
839 return _res;
840}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000841
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100842// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
843static mod_ty
844func_type_rule(Parser *p)
845{
846 D(p->level++);
847 if (p->error_indicator) {
848 D(p->level--);
849 return NULL;
850 }
851 mod_ty _res = NULL;
852 int _mark = p->mark;
853 { // '(' type_expressions? ')' '->' expression NEWLINE* $
854 if (p->error_indicator) {
855 D(p->level--);
856 return NULL;
857 }
858 D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
859 Token * _literal;
860 Token * _literal_1;
861 Token * _literal_2;
862 asdl_seq * _loop0_2_var;
863 void *a;
864 expr_ty b;
865 Token * endmarker_var;
866 if (
867 (_literal = _PyPegen_expect_token(p, 7)) // token='('
868 &&
869 (a = type_expressions_rule(p), 1) // type_expressions?
870 &&
871 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
872 &&
873 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
874 &&
875 (b = expression_rule(p)) // expression
876 &&
877 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
878 &&
879 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
880 )
881 {
882 D(fprintf(stderr, "%*c+ func_type[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
883 _res = FunctionType ( a , b , p -> arena );
884 if (_res == NULL && PyErr_Occurred()) {
885 p->error_indicator = 1;
886 D(p->level--);
887 return NULL;
888 }
889 goto done;
890 }
891 p->mark = _mark;
892 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
893 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
894 }
895 _res = NULL;
896 done:
897 D(p->level--);
898 return _res;
899}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000900
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100901// fstring: star_expressions
902static expr_ty
903fstring_rule(Parser *p)
904{
905 D(p->level++);
906 if (p->error_indicator) {
907 D(p->level--);
908 return NULL;
909 }
910 expr_ty _res = NULL;
911 int _mark = p->mark;
912 { // star_expressions
913 if (p->error_indicator) {
914 D(p->level--);
915 return NULL;
916 }
917 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
918 expr_ty star_expressions_var;
919 if (
920 (star_expressions_var = star_expressions_rule(p)) // star_expressions
921 )
922 {
923 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
924 _res = star_expressions_var;
925 goto done;
926 }
927 p->mark = _mark;
928 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
929 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
930 }
931 _res = NULL;
932 done:
933 D(p->level--);
934 return _res;
935}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000936
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100937// type_expressions:
938// | ','.expression+ ',' '*' expression ',' '**' expression
939// | ','.expression+ ',' '*' expression
940// | ','.expression+ ',' '**' expression
941// | '*' expression ',' '**' expression
942// | '*' expression
943// | '**' expression
944// | ','.expression+
Pablo Galindoa5634c42020-09-16 19:42:00 +0100945static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100946type_expressions_rule(Parser *p)
947{
948 D(p->level++);
949 if (p->error_indicator) {
950 D(p->level--);
951 return NULL;
952 }
Pablo Galindoa5634c42020-09-16 19:42:00 +0100953 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100954 int _mark = p->mark;
955 { // ','.expression+ ',' '*' expression ',' '**' expression
956 if (p->error_indicator) {
957 D(p->level--);
958 return NULL;
959 }
960 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
961 Token * _literal;
962 Token * _literal_1;
963 Token * _literal_2;
964 Token * _literal_3;
965 asdl_seq * a;
966 expr_ty b;
967 expr_ty c;
968 if (
969 (a = _gather_3_rule(p)) // ','.expression+
970 &&
971 (_literal = _PyPegen_expect_token(p, 12)) // token=','
972 &&
973 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
974 &&
975 (b = expression_rule(p)) // expression
976 &&
977 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
978 &&
979 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
980 &&
981 (c = expression_rule(p)) // expression
982 )
983 {
984 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 +0300985 _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 +0100986 if (_res == NULL && PyErr_Occurred()) {
987 p->error_indicator = 1;
988 D(p->level--);
989 return NULL;
990 }
991 goto done;
992 }
993 p->mark = _mark;
994 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
996 }
997 { // ','.expression+ ',' '*' expression
998 if (p->error_indicator) {
999 D(p->level--);
1000 return NULL;
1001 }
1002 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
1003 Token * _literal;
1004 Token * _literal_1;
1005 asdl_seq * a;
1006 expr_ty b;
1007 if (
1008 (a = _gather_5_rule(p)) // ','.expression+
1009 &&
1010 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1011 &&
1012 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1013 &&
1014 (b = expression_rule(p)) // expression
1015 )
1016 {
1017 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 +01001018 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001019 if (_res == NULL && PyErr_Occurred()) {
1020 p->error_indicator = 1;
1021 D(p->level--);
1022 return NULL;
1023 }
1024 goto done;
1025 }
1026 p->mark = _mark;
1027 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1028 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
1029 }
1030 { // ','.expression+ ',' '**' expression
1031 if (p->error_indicator) {
1032 D(p->level--);
1033 return NULL;
1034 }
1035 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
1036 Token * _literal;
1037 Token * _literal_1;
1038 asdl_seq * a;
1039 expr_ty b;
1040 if (
1041 (a = _gather_7_rule(p)) // ','.expression+
1042 &&
1043 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1044 &&
1045 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
1046 &&
1047 (b = expression_rule(p)) // expression
1048 )
1049 {
1050 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 +01001051 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001052 if (_res == NULL && PyErr_Occurred()) {
1053 p->error_indicator = 1;
1054 D(p->level--);
1055 return NULL;
1056 }
1057 goto done;
1058 }
1059 p->mark = _mark;
1060 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1061 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
1062 }
1063 { // '*' expression ',' '**' expression
1064 if (p->error_indicator) {
1065 D(p->level--);
1066 return NULL;
1067 }
1068 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
1069 Token * _literal;
1070 Token * _literal_1;
1071 Token * _literal_2;
1072 expr_ty a;
1073 expr_ty b;
1074 if (
1075 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1076 &&
1077 (a = expression_rule(p)) // expression
1078 &&
1079 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
1080 &&
1081 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
1082 &&
1083 (b = expression_rule(p)) // expression
1084 )
1085 {
1086 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 +03001087 _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 +01001088 if (_res == NULL && PyErr_Occurred()) {
1089 p->error_indicator = 1;
1090 D(p->level--);
1091 return NULL;
1092 }
1093 goto done;
1094 }
1095 p->mark = _mark;
1096 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1097 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
1098 }
1099 { // '*' expression
1100 if (p->error_indicator) {
1101 D(p->level--);
1102 return NULL;
1103 }
1104 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
1105 Token * _literal;
1106 expr_ty a;
1107 if (
1108 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1109 &&
1110 (a = expression_rule(p)) // expression
1111 )
1112 {
1113 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001114 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001115 if (_res == NULL && PyErr_Occurred()) {
1116 p->error_indicator = 1;
1117 D(p->level--);
1118 return NULL;
1119 }
1120 goto done;
1121 }
1122 p->mark = _mark;
1123 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
1125 }
1126 { // '**' expression
1127 if (p->error_indicator) {
1128 D(p->level--);
1129 return NULL;
1130 }
1131 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
1132 Token * _literal;
1133 expr_ty a;
1134 if (
1135 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
1136 &&
1137 (a = expression_rule(p)) // expression
1138 )
1139 {
1140 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001141 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001142 if (_res == NULL && PyErr_Occurred()) {
1143 p->error_indicator = 1;
1144 D(p->level--);
1145 return NULL;
1146 }
1147 goto done;
1148 }
1149 p->mark = _mark;
1150 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1151 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
1152 }
1153 { // ','.expression+
1154 if (p->error_indicator) {
1155 D(p->level--);
1156 return NULL;
1157 }
1158 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001159 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001160 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01001161 (a = (asdl_expr_seq*)_gather_9_rule(p)) // ','.expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001162 )
1163 {
1164 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001165 _res = a;
1166 if (_res == NULL && PyErr_Occurred()) {
1167 p->error_indicator = 1;
1168 D(p->level--);
1169 return NULL;
1170 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001171 goto done;
1172 }
1173 p->mark = _mark;
1174 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
1176 }
1177 _res = NULL;
1178 done:
1179 D(p->level--);
1180 return _res;
1181}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001182
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001183// statements: statement+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001184static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001185statements_rule(Parser *p)
1186{
1187 D(p->level++);
1188 if (p->error_indicator) {
1189 D(p->level--);
1190 return NULL;
1191 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001192 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001193 int _mark = p->mark;
1194 { // statement+
1195 if (p->error_indicator) {
1196 D(p->level--);
1197 return NULL;
1198 }
1199 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
1200 asdl_seq * a;
1201 if (
1202 (a = _loop1_11_rule(p)) // statement+
1203 )
1204 {
1205 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001206 _res = ( asdl_stmt_seq * ) _PyPegen_seq_flatten ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001207 if (_res == NULL && PyErr_Occurred()) {
1208 p->error_indicator = 1;
1209 D(p->level--);
1210 return NULL;
1211 }
1212 goto done;
1213 }
1214 p->mark = _mark;
1215 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1216 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
1217 }
1218 _res = NULL;
1219 done:
1220 D(p->level--);
1221 return _res;
1222}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001223
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001224// statement: compound_stmt | simple_stmts
Pablo Galindoa5634c42020-09-16 19:42:00 +01001225static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001226statement_rule(Parser *p)
1227{
1228 D(p->level++);
1229 if (p->error_indicator) {
1230 D(p->level--);
1231 return NULL;
1232 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001233 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001234 int _mark = p->mark;
1235 { // compound_stmt
1236 if (p->error_indicator) {
1237 D(p->level--);
1238 return NULL;
1239 }
1240 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
1241 stmt_ty a;
1242 if (
1243 (a = compound_stmt_rule(p)) // compound_stmt
1244 )
1245 {
1246 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001247 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001248 if (_res == NULL && PyErr_Occurred()) {
1249 p->error_indicator = 1;
1250 D(p->level--);
1251 return NULL;
1252 }
1253 goto done;
1254 }
1255 p->mark = _mark;
1256 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1257 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
1258 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001259 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001260 if (p->error_indicator) {
1261 D(p->level--);
1262 return NULL;
1263 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001264 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001265 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001266 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001267 (a = (asdl_stmt_seq*)simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001268 )
1269 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001270 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001271 _res = a;
1272 if (_res == NULL && PyErr_Occurred()) {
1273 p->error_indicator = 1;
1274 D(p->level--);
1275 return NULL;
1276 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001277 goto done;
1278 }
1279 p->mark = _mark;
1280 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001281 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001282 }
1283 _res = NULL;
1284 done:
1285 D(p->level--);
1286 return _res;
1287}
1288
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001289// statement_newline: compound_stmt NEWLINE | simple_stmts | NEWLINE | $
Pablo Galindoa5634c42020-09-16 19:42:00 +01001290static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001291statement_newline_rule(Parser *p)
1292{
1293 D(p->level++);
1294 if (p->error_indicator) {
1295 D(p->level--);
1296 return NULL;
1297 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001298 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001299 int _mark = p->mark;
1300 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1301 p->error_indicator = 1;
1302 D(p->level--);
1303 return NULL;
1304 }
1305 int _start_lineno = p->tokens[_mark]->lineno;
1306 UNUSED(_start_lineno); // Only used by EXTRA macro
1307 int _start_col_offset = p->tokens[_mark]->col_offset;
1308 UNUSED(_start_col_offset); // Only used by EXTRA macro
1309 { // compound_stmt NEWLINE
1310 if (p->error_indicator) {
1311 D(p->level--);
1312 return NULL;
1313 }
1314 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
1315 stmt_ty a;
1316 Token * newline_var;
1317 if (
1318 (a = compound_stmt_rule(p)) // compound_stmt
1319 &&
1320 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1321 )
1322 {
1323 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 +01001324 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001325 if (_res == NULL && PyErr_Occurred()) {
1326 p->error_indicator = 1;
1327 D(p->level--);
1328 return NULL;
1329 }
1330 goto done;
1331 }
1332 p->mark = _mark;
1333 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1334 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
1335 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001336 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001337 if (p->error_indicator) {
1338 D(p->level--);
1339 return NULL;
1340 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001341 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1342 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001343 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001344 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001345 )
1346 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001347 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1348 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001349 goto done;
1350 }
1351 p->mark = _mark;
1352 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001354 }
1355 { // NEWLINE
1356 if (p->error_indicator) {
1357 D(p->level--);
1358 return NULL;
1359 }
1360 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1361 Token * newline_var;
1362 if (
1363 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1364 )
1365 {
1366 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1367 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1368 if (_token == NULL) {
1369 D(p->level--);
1370 return NULL;
1371 }
1372 int _end_lineno = _token->end_lineno;
1373 UNUSED(_end_lineno); // Only used by EXTRA macro
1374 int _end_col_offset = _token->end_col_offset;
1375 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03001376 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , CHECK ( stmt_ty , _Py_Pass ( EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001377 if (_res == NULL && PyErr_Occurred()) {
1378 p->error_indicator = 1;
1379 D(p->level--);
1380 return NULL;
1381 }
1382 goto done;
1383 }
1384 p->mark = _mark;
1385 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1386 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
1387 }
1388 { // $
1389 if (p->error_indicator) {
1390 D(p->level--);
1391 return NULL;
1392 }
1393 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
1394 Token * endmarker_var;
1395 if (
1396 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1397 )
1398 {
1399 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
1400 _res = _PyPegen_interactive_exit ( p );
1401 if (_res == NULL && PyErr_Occurred()) {
1402 p->error_indicator = 1;
1403 D(p->level--);
1404 return NULL;
1405 }
1406 goto done;
1407 }
1408 p->mark = _mark;
1409 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1410 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
1411 }
1412 _res = NULL;
1413 done:
1414 D(p->level--);
1415 return _res;
1416}
1417
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001418// simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindoa5634c42020-09-16 19:42:00 +01001419static asdl_stmt_seq*
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001420simple_stmts_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001421{
1422 D(p->level++);
1423 if (p->error_indicator) {
1424 D(p->level--);
1425 return NULL;
1426 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001427 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001428 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001429 { // simple_stmt !';' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001430 if (p->error_indicator) {
1431 D(p->level--);
1432 return NULL;
1433 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001434 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 +01001435 stmt_ty a;
1436 Token * newline_var;
1437 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001438 (a = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001439 &&
1440 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
1441 &&
1442 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1443 )
1444 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001445 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 +01001446 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001447 if (_res == NULL && PyErr_Occurred()) {
1448 p->error_indicator = 1;
1449 D(p->level--);
1450 return NULL;
1451 }
1452 goto done;
1453 }
1454 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001455 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001457 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001458 { // ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001459 if (p->error_indicator) {
1460 D(p->level--);
1461 return NULL;
1462 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001463 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 +01001464 void *_opt_var;
1465 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01001466 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001467 Token * newline_var;
1468 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001469 (a = (asdl_stmt_seq*)_gather_12_rule(p)) // ';'.simple_stmt+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001470 &&
1471 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
1472 &&
1473 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1474 )
1475 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001476 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 +01001477 _res = a;
1478 if (_res == NULL && PyErr_Occurred()) {
1479 p->error_indicator = 1;
1480 D(p->level--);
1481 return NULL;
1482 }
1483 goto done;
1484 }
1485 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001486 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1487 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001488 }
1489 _res = NULL;
1490 done:
1491 D(p->level--);
1492 return _res;
1493}
1494
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001495// simple_stmt:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001496// | assignment
1497// | star_expressions
1498// | &'return' return_stmt
1499// | &('import' | 'from') import_stmt
1500// | &'raise' raise_stmt
1501// | 'pass'
1502// | &'del' del_stmt
1503// | &'yield' yield_stmt
1504// | &'assert' assert_stmt
1505// | 'break'
1506// | 'continue'
1507// | &'global' global_stmt
1508// | &'nonlocal' nonlocal_stmt
1509static stmt_ty
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001510simple_stmt_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001511{
1512 D(p->level++);
1513 if (p->error_indicator) {
1514 D(p->level--);
1515 return NULL;
1516 }
1517 stmt_ty _res = NULL;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001518 if (_PyPegen_is_memoized(p, simple_stmt_type, &_res)) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001519 D(p->level--);
1520 return _res;
1521 }
1522 int _mark = p->mark;
1523 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1524 p->error_indicator = 1;
1525 D(p->level--);
1526 return NULL;
1527 }
1528 int _start_lineno = p->tokens[_mark]->lineno;
1529 UNUSED(_start_lineno); // Only used by EXTRA macro
1530 int _start_col_offset = p->tokens[_mark]->col_offset;
1531 UNUSED(_start_col_offset); // Only used by EXTRA macro
1532 { // assignment
1533 if (p->error_indicator) {
1534 D(p->level--);
1535 return NULL;
1536 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001537 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001538 stmt_ty assignment_var;
1539 if (
1540 (assignment_var = assignment_rule(p)) // assignment
1541 )
1542 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001543 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001544 _res = assignment_var;
1545 goto done;
1546 }
1547 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001548 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001549 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
1550 }
1551 { // star_expressions
1552 if (p->error_indicator) {
1553 D(p->level--);
1554 return NULL;
1555 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001556 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001557 expr_ty e;
1558 if (
1559 (e = star_expressions_rule(p)) // star_expressions
1560 )
1561 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001562 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 +01001563 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1564 if (_token == NULL) {
1565 D(p->level--);
1566 return NULL;
1567 }
1568 int _end_lineno = _token->end_lineno;
1569 UNUSED(_end_lineno); // Only used by EXTRA macro
1570 int _end_col_offset = _token->end_col_offset;
1571 UNUSED(_end_col_offset); // Only used by EXTRA macro
1572 _res = _Py_Expr ( e , EXTRA );
1573 if (_res == NULL && PyErr_Occurred()) {
1574 p->error_indicator = 1;
1575 D(p->level--);
1576 return NULL;
1577 }
1578 goto done;
1579 }
1580 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001581 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1583 }
1584 { // &'return' return_stmt
1585 if (p->error_indicator) {
1586 D(p->level--);
1587 return NULL;
1588 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001589 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 +01001590 stmt_ty return_stmt_var;
1591 if (
1592 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
1593 &&
1594 (return_stmt_var = return_stmt_rule(p)) // return_stmt
1595 )
1596 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001597 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 +01001598 _res = return_stmt_var;
1599 goto done;
1600 }
1601 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001602 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
1604 }
1605 { // &('import' | 'from') import_stmt
1606 if (p->error_indicator) {
1607 D(p->level--);
1608 return NULL;
1609 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001610 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 +01001611 stmt_ty import_stmt_var;
1612 if (
1613 _PyPegen_lookahead(1, _tmp_14_rule, p)
1614 &&
1615 (import_stmt_var = import_stmt_rule(p)) // import_stmt
1616 )
1617 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001618 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 +01001619 _res = import_stmt_var;
1620 goto done;
1621 }
1622 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001623 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
1625 }
1626 { // &'raise' raise_stmt
1627 if (p->error_indicator) {
1628 D(p->level--);
1629 return NULL;
1630 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001631 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 +01001632 stmt_ty raise_stmt_var;
1633 if (
1634 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
1635 &&
1636 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
1637 )
1638 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001639 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 +01001640 _res = raise_stmt_var;
1641 goto done;
1642 }
1643 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001644 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001645 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
1646 }
1647 { // 'pass'
1648 if (p->error_indicator) {
1649 D(p->level--);
1650 return NULL;
1651 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001652 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001653 Token * _keyword;
1654 if (
1655 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
1656 )
1657 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001658 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001659 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1660 if (_token == NULL) {
1661 D(p->level--);
1662 return NULL;
1663 }
1664 int _end_lineno = _token->end_lineno;
1665 UNUSED(_end_lineno); // Only used by EXTRA macro
1666 int _end_col_offset = _token->end_col_offset;
1667 UNUSED(_end_col_offset); // Only used by EXTRA macro
1668 _res = _Py_Pass ( EXTRA );
1669 if (_res == NULL && PyErr_Occurred()) {
1670 p->error_indicator = 1;
1671 D(p->level--);
1672 return NULL;
1673 }
1674 goto done;
1675 }
1676 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001677 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001678 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
1679 }
1680 { // &'del' del_stmt
1681 if (p->error_indicator) {
1682 D(p->level--);
1683 return NULL;
1684 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001685 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 +01001686 stmt_ty del_stmt_var;
1687 if (
1688 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
1689 &&
1690 (del_stmt_var = del_stmt_rule(p)) // del_stmt
1691 )
1692 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001693 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 +01001694 _res = del_stmt_var;
1695 goto done;
1696 }
1697 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001698 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001699 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
1700 }
1701 { // &'yield' yield_stmt
1702 if (p->error_indicator) {
1703 D(p->level--);
1704 return NULL;
1705 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001706 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 +01001707 stmt_ty yield_stmt_var;
1708 if (
1709 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
1710 &&
1711 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
1712 )
1713 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001714 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 +01001715 _res = yield_stmt_var;
1716 goto done;
1717 }
1718 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001719 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001720 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
1721 }
1722 { // &'assert' assert_stmt
1723 if (p->error_indicator) {
1724 D(p->level--);
1725 return NULL;
1726 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001727 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 +01001728 stmt_ty assert_stmt_var;
1729 if (
1730 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
1731 &&
1732 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
1733 )
1734 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001735 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 +01001736 _res = assert_stmt_var;
1737 goto done;
1738 }
1739 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001740 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
1742 }
1743 { // 'break'
1744 if (p->error_indicator) {
1745 D(p->level--);
1746 return NULL;
1747 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001748 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001749 Token * _keyword;
1750 if (
1751 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
1752 )
1753 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001754 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001755 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1756 if (_token == NULL) {
1757 D(p->level--);
1758 return NULL;
1759 }
1760 int _end_lineno = _token->end_lineno;
1761 UNUSED(_end_lineno); // Only used by EXTRA macro
1762 int _end_col_offset = _token->end_col_offset;
1763 UNUSED(_end_col_offset); // Only used by EXTRA macro
1764 _res = _Py_Break ( EXTRA );
1765 if (_res == NULL && PyErr_Occurred()) {
1766 p->error_indicator = 1;
1767 D(p->level--);
1768 return NULL;
1769 }
1770 goto done;
1771 }
1772 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001773 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001774 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
1775 }
1776 { // 'continue'
1777 if (p->error_indicator) {
1778 D(p->level--);
1779 return NULL;
1780 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001781 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001782 Token * _keyword;
1783 if (
1784 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
1785 )
1786 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001787 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001788 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1789 if (_token == NULL) {
1790 D(p->level--);
1791 return NULL;
1792 }
1793 int _end_lineno = _token->end_lineno;
1794 UNUSED(_end_lineno); // Only used by EXTRA macro
1795 int _end_col_offset = _token->end_col_offset;
1796 UNUSED(_end_col_offset); // Only used by EXTRA macro
1797 _res = _Py_Continue ( EXTRA );
1798 if (_res == NULL && PyErr_Occurred()) {
1799 p->error_indicator = 1;
1800 D(p->level--);
1801 return NULL;
1802 }
1803 goto done;
1804 }
1805 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001806 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001807 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
1808 }
1809 { // &'global' global_stmt
1810 if (p->error_indicator) {
1811 D(p->level--);
1812 return NULL;
1813 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001814 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 +01001815 stmt_ty global_stmt_var;
1816 if (
1817 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
1818 &&
1819 (global_stmt_var = global_stmt_rule(p)) // global_stmt
1820 )
1821 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001822 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 +01001823 _res = global_stmt_var;
1824 goto done;
1825 }
1826 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001827 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001828 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
1829 }
1830 { // &'nonlocal' nonlocal_stmt
1831 if (p->error_indicator) {
1832 D(p->level--);
1833 return NULL;
1834 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001835 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 +01001836 stmt_ty nonlocal_stmt_var;
1837 if (
1838 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
1839 &&
1840 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
1841 )
1842 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001843 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 +01001844 _res = nonlocal_stmt_var;
1845 goto done;
1846 }
1847 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001848 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001849 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
1850 }
1851 _res = NULL;
1852 done:
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001853 _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001854 D(p->level--);
1855 return _res;
1856}
1857
1858// compound_stmt:
1859// | &('def' | '@' | ASYNC) function_def
1860// | &'if' if_stmt
1861// | &('class' | '@') class_def
1862// | &('with' | ASYNC) with_stmt
1863// | &('for' | ASYNC) for_stmt
1864// | &'try' try_stmt
1865// | &'while' while_stmt
1866static stmt_ty
1867compound_stmt_rule(Parser *p)
1868{
1869 D(p->level++);
1870 if (p->error_indicator) {
1871 D(p->level--);
1872 return NULL;
1873 }
1874 stmt_ty _res = NULL;
1875 int _mark = p->mark;
1876 { // &('def' | '@' | ASYNC) function_def
1877 if (p->error_indicator) {
1878 D(p->level--);
1879 return NULL;
1880 }
1881 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
1882 stmt_ty function_def_var;
1883 if (
1884 _PyPegen_lookahead(1, _tmp_15_rule, p)
1885 &&
1886 (function_def_var = function_def_rule(p)) // function_def
1887 )
1888 {
1889 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
1890 _res = function_def_var;
1891 goto done;
1892 }
1893 p->mark = _mark;
1894 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
1896 }
1897 { // &'if' if_stmt
1898 if (p->error_indicator) {
1899 D(p->level--);
1900 return NULL;
1901 }
1902 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
1903 stmt_ty if_stmt_var;
1904 if (
1905 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
1906 &&
1907 (if_stmt_var = if_stmt_rule(p)) // if_stmt
1908 )
1909 {
1910 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
1911 _res = if_stmt_var;
1912 goto done;
1913 }
1914 p->mark = _mark;
1915 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1916 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
1917 }
1918 { // &('class' | '@') class_def
1919 if (p->error_indicator) {
1920 D(p->level--);
1921 return NULL;
1922 }
1923 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
1924 stmt_ty class_def_var;
1925 if (
1926 _PyPegen_lookahead(1, _tmp_16_rule, p)
1927 &&
1928 (class_def_var = class_def_rule(p)) // class_def
1929 )
1930 {
1931 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
1932 _res = class_def_var;
1933 goto done;
1934 }
1935 p->mark = _mark;
1936 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1937 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
1938 }
1939 { // &('with' | ASYNC) with_stmt
1940 if (p->error_indicator) {
1941 D(p->level--);
1942 return NULL;
1943 }
1944 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
1945 stmt_ty with_stmt_var;
1946 if (
1947 _PyPegen_lookahead(1, _tmp_17_rule, p)
1948 &&
1949 (with_stmt_var = with_stmt_rule(p)) // with_stmt
1950 )
1951 {
1952 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
1953 _res = with_stmt_var;
1954 goto done;
1955 }
1956 p->mark = _mark;
1957 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1958 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
1959 }
1960 { // &('for' | ASYNC) for_stmt
1961 if (p->error_indicator) {
1962 D(p->level--);
1963 return NULL;
1964 }
1965 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
1966 stmt_ty for_stmt_var;
1967 if (
1968 _PyPegen_lookahead(1, _tmp_18_rule, p)
1969 &&
1970 (for_stmt_var = for_stmt_rule(p)) // for_stmt
1971 )
1972 {
1973 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
1974 _res = for_stmt_var;
1975 goto done;
1976 }
1977 p->mark = _mark;
1978 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1979 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
1980 }
1981 { // &'try' try_stmt
1982 if (p->error_indicator) {
1983 D(p->level--);
1984 return NULL;
1985 }
1986 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
1987 stmt_ty try_stmt_var;
1988 if (
1989 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
1990 &&
1991 (try_stmt_var = try_stmt_rule(p)) // try_stmt
1992 )
1993 {
1994 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
1995 _res = try_stmt_var;
1996 goto done;
1997 }
1998 p->mark = _mark;
1999 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2000 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
2001 }
2002 { // &'while' while_stmt
2003 if (p->error_indicator) {
2004 D(p->level--);
2005 return NULL;
2006 }
2007 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2008 stmt_ty while_stmt_var;
2009 if (
2010 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
2011 &&
2012 (while_stmt_var = while_stmt_rule(p)) // while_stmt
2013 )
2014 {
2015 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2016 _res = while_stmt_var;
2017 goto done;
2018 }
2019 p->mark = _mark;
2020 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2021 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
2022 }
2023 _res = NULL;
2024 done:
2025 D(p->level--);
2026 return _res;
2027}
2028
2029// assignment:
2030// | NAME ':' expression ['=' annotated_rhs]
2031// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2032// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002033// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002034// | invalid_assignment
2035static stmt_ty
2036assignment_rule(Parser *p)
2037{
2038 D(p->level++);
2039 if (p->error_indicator) {
2040 D(p->level--);
2041 return NULL;
2042 }
2043 stmt_ty _res = NULL;
2044 int _mark = p->mark;
2045 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2046 p->error_indicator = 1;
2047 D(p->level--);
2048 return NULL;
2049 }
2050 int _start_lineno = p->tokens[_mark]->lineno;
2051 UNUSED(_start_lineno); // Only used by EXTRA macro
2052 int _start_col_offset = p->tokens[_mark]->col_offset;
2053 UNUSED(_start_col_offset); // Only used by EXTRA macro
2054 { // NAME ':' expression ['=' annotated_rhs]
2055 if (p->error_indicator) {
2056 D(p->level--);
2057 return NULL;
2058 }
2059 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2060 Token * _literal;
2061 expr_ty a;
2062 expr_ty b;
2063 void *c;
2064 if (
2065 (a = _PyPegen_name_token(p)) // NAME
2066 &&
2067 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2068 &&
2069 (b = expression_rule(p)) // expression
2070 &&
2071 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
2072 )
2073 {
2074 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2075 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2076 if (_token == NULL) {
2077 D(p->level--);
2078 return NULL;
2079 }
2080 int _end_lineno = _token->end_lineno;
2081 UNUSED(_end_lineno); // Only used by EXTRA macro
2082 int _end_col_offset = _token->end_col_offset;
2083 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002084 _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 +01002085 if (_res == NULL && PyErr_Occurred()) {
2086 p->error_indicator = 1;
2087 D(p->level--);
2088 return NULL;
2089 }
2090 goto done;
2091 }
2092 p->mark = _mark;
2093 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2095 }
2096 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2097 if (p->error_indicator) {
2098 D(p->level--);
2099 return NULL;
2100 }
2101 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2102 Token * _literal;
2103 void *a;
2104 expr_ty b;
2105 void *c;
2106 if (
2107 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
2108 &&
2109 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2110 &&
2111 (b = expression_rule(p)) // expression
2112 &&
2113 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
2114 )
2115 {
2116 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2117 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2118 if (_token == NULL) {
2119 D(p->level--);
2120 return NULL;
2121 }
2122 int _end_lineno = _token->end_lineno;
2123 UNUSED(_end_lineno); // Only used by EXTRA macro
2124 int _end_col_offset = _token->end_col_offset;
2125 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002126 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotations syntax is" , _Py_AnnAssign ( a , b , c , 0 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002127 if (_res == NULL && PyErr_Occurred()) {
2128 p->error_indicator = 1;
2129 D(p->level--);
2130 return NULL;
2131 }
2132 goto done;
2133 }
2134 p->mark = _mark;
2135 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2136 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2137 }
2138 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
2139 if (p->error_indicator) {
2140 D(p->level--);
2141 return NULL;
2142 }
2143 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 +01002144 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002145 void *b;
2146 void *tc;
2147 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01002148 (a = (asdl_expr_seq*)_loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002149 &&
2150 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
2151 &&
2152 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2153 &&
2154 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
2155 )
2156 {
2157 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2158 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2159 if (_token == NULL) {
2160 D(p->level--);
2161 return NULL;
2162 }
2163 int _end_lineno = _token->end_lineno;
2164 UNUSED(_end_lineno); // Only used by EXTRA macro
2165 int _end_col_offset = _token->end_col_offset;
2166 UNUSED(_end_col_offset); // Only used by EXTRA macro
2167 _res = _Py_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
2168 if (_res == NULL && PyErr_Occurred()) {
2169 p->error_indicator = 1;
2170 D(p->level--);
2171 return NULL;
2172 }
2173 goto done;
2174 }
2175 p->mark = _mark;
2176 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2177 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2178 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002179 { // single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002180 if (p->error_indicator) {
2181 D(p->level--);
2182 return NULL;
2183 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002184 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2185 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002186 expr_ty a;
2187 AugOperator* b;
2188 void *c;
2189 if (
2190 (a = single_target_rule(p)) // single_target
2191 &&
2192 (b = augassign_rule(p)) // augassign
2193 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002194 (_cut_var = 1)
2195 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002196 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
2197 )
2198 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002199 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 +01002200 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2201 if (_token == NULL) {
2202 D(p->level--);
2203 return NULL;
2204 }
2205 int _end_lineno = _token->end_lineno;
2206 UNUSED(_end_lineno); // Only used by EXTRA macro
2207 int _end_col_offset = _token->end_col_offset;
2208 UNUSED(_end_col_offset); // Only used by EXTRA macro
2209 _res = _Py_AugAssign ( a , b -> kind , c , EXTRA );
2210 if (_res == NULL && PyErr_Occurred()) {
2211 p->error_indicator = 1;
2212 D(p->level--);
2213 return NULL;
2214 }
2215 goto done;
2216 }
2217 p->mark = _mark;
2218 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002219 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2220 if (_cut_var) {
2221 D(p->level--);
2222 return NULL;
2223 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002224 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002225 if (p->call_invalid_rules) { // invalid_assignment
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002226 if (p->error_indicator) {
2227 D(p->level--);
2228 return NULL;
2229 }
2230 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2231 void *invalid_assignment_var;
2232 if (
2233 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
2234 )
2235 {
2236 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2237 _res = invalid_assignment_var;
2238 goto done;
2239 }
2240 p->mark = _mark;
2241 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
2243 }
2244 _res = NULL;
2245 done:
2246 D(p->level--);
2247 return _res;
2248}
2249
2250// augassign:
2251// | '+='
2252// | '-='
2253// | '*='
2254// | '@='
2255// | '/='
2256// | '%='
2257// | '&='
2258// | '|='
2259// | '^='
2260// | '<<='
2261// | '>>='
2262// | '**='
2263// | '//='
2264static AugOperator*
2265augassign_rule(Parser *p)
2266{
2267 D(p->level++);
2268 if (p->error_indicator) {
2269 D(p->level--);
2270 return NULL;
2271 }
2272 AugOperator* _res = NULL;
2273 int _mark = p->mark;
2274 { // '+='
2275 if (p->error_indicator) {
2276 D(p->level--);
2277 return NULL;
2278 }
2279 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
2280 Token * _literal;
2281 if (
2282 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
2283 )
2284 {
2285 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
2286 _res = _PyPegen_augoperator ( p , Add );
2287 if (_res == NULL && PyErr_Occurred()) {
2288 p->error_indicator = 1;
2289 D(p->level--);
2290 return NULL;
2291 }
2292 goto done;
2293 }
2294 p->mark = _mark;
2295 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2296 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
2297 }
2298 { // '-='
2299 if (p->error_indicator) {
2300 D(p->level--);
2301 return NULL;
2302 }
2303 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
2304 Token * _literal;
2305 if (
2306 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
2307 )
2308 {
2309 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
2310 _res = _PyPegen_augoperator ( p , Sub );
2311 if (_res == NULL && PyErr_Occurred()) {
2312 p->error_indicator = 1;
2313 D(p->level--);
2314 return NULL;
2315 }
2316 goto done;
2317 }
2318 p->mark = _mark;
2319 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2320 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
2321 }
2322 { // '*='
2323 if (p->error_indicator) {
2324 D(p->level--);
2325 return NULL;
2326 }
2327 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
2328 Token * _literal;
2329 if (
2330 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
2331 )
2332 {
2333 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
2334 _res = _PyPegen_augoperator ( p , Mult );
2335 if (_res == NULL && PyErr_Occurred()) {
2336 p->error_indicator = 1;
2337 D(p->level--);
2338 return NULL;
2339 }
2340 goto done;
2341 }
2342 p->mark = _mark;
2343 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2344 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
2345 }
2346 { // '@='
2347 if (p->error_indicator) {
2348 D(p->level--);
2349 return NULL;
2350 }
2351 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
2352 Token * _literal;
2353 if (
2354 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
2355 )
2356 {
2357 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002358 _res = CHECK_VERSION ( AugOperator * , 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002359 if (_res == NULL && PyErr_Occurred()) {
2360 p->error_indicator = 1;
2361 D(p->level--);
2362 return NULL;
2363 }
2364 goto done;
2365 }
2366 p->mark = _mark;
2367 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2368 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
2369 }
2370 { // '/='
2371 if (p->error_indicator) {
2372 D(p->level--);
2373 return NULL;
2374 }
2375 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
2376 Token * _literal;
2377 if (
2378 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
2379 )
2380 {
2381 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
2382 _res = _PyPegen_augoperator ( p , Div );
2383 if (_res == NULL && PyErr_Occurred()) {
2384 p->error_indicator = 1;
2385 D(p->level--);
2386 return NULL;
2387 }
2388 goto done;
2389 }
2390 p->mark = _mark;
2391 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2392 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
2393 }
2394 { // '%='
2395 if (p->error_indicator) {
2396 D(p->level--);
2397 return NULL;
2398 }
2399 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
2400 Token * _literal;
2401 if (
2402 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
2403 )
2404 {
2405 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
2406 _res = _PyPegen_augoperator ( p , Mod );
2407 if (_res == NULL && PyErr_Occurred()) {
2408 p->error_indicator = 1;
2409 D(p->level--);
2410 return NULL;
2411 }
2412 goto done;
2413 }
2414 p->mark = _mark;
2415 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2416 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
2417 }
2418 { // '&='
2419 if (p->error_indicator) {
2420 D(p->level--);
2421 return NULL;
2422 }
2423 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
2424 Token * _literal;
2425 if (
2426 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
2427 )
2428 {
2429 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
2430 _res = _PyPegen_augoperator ( p , BitAnd );
2431 if (_res == NULL && PyErr_Occurred()) {
2432 p->error_indicator = 1;
2433 D(p->level--);
2434 return NULL;
2435 }
2436 goto done;
2437 }
2438 p->mark = _mark;
2439 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2440 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
2441 }
2442 { // '|='
2443 if (p->error_indicator) {
2444 D(p->level--);
2445 return NULL;
2446 }
2447 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
2448 Token * _literal;
2449 if (
2450 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
2451 )
2452 {
2453 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
2454 _res = _PyPegen_augoperator ( p , BitOr );
2455 if (_res == NULL && PyErr_Occurred()) {
2456 p->error_indicator = 1;
2457 D(p->level--);
2458 return NULL;
2459 }
2460 goto done;
2461 }
2462 p->mark = _mark;
2463 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2464 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
2465 }
2466 { // '^='
2467 if (p->error_indicator) {
2468 D(p->level--);
2469 return NULL;
2470 }
2471 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
2472 Token * _literal;
2473 if (
2474 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
2475 )
2476 {
2477 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
2478 _res = _PyPegen_augoperator ( p , BitXor );
2479 if (_res == NULL && PyErr_Occurred()) {
2480 p->error_indicator = 1;
2481 D(p->level--);
2482 return NULL;
2483 }
2484 goto done;
2485 }
2486 p->mark = _mark;
2487 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2488 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
2489 }
2490 { // '<<='
2491 if (p->error_indicator) {
2492 D(p->level--);
2493 return NULL;
2494 }
2495 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
2496 Token * _literal;
2497 if (
2498 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
2499 )
2500 {
2501 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
2502 _res = _PyPegen_augoperator ( p , LShift );
2503 if (_res == NULL && PyErr_Occurred()) {
2504 p->error_indicator = 1;
2505 D(p->level--);
2506 return NULL;
2507 }
2508 goto done;
2509 }
2510 p->mark = _mark;
2511 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2512 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
2513 }
2514 { // '>>='
2515 if (p->error_indicator) {
2516 D(p->level--);
2517 return NULL;
2518 }
2519 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
2520 Token * _literal;
2521 if (
2522 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
2523 )
2524 {
2525 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
2526 _res = _PyPegen_augoperator ( p , RShift );
2527 if (_res == NULL && PyErr_Occurred()) {
2528 p->error_indicator = 1;
2529 D(p->level--);
2530 return NULL;
2531 }
2532 goto done;
2533 }
2534 p->mark = _mark;
2535 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2536 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
2537 }
2538 { // '**='
2539 if (p->error_indicator) {
2540 D(p->level--);
2541 return NULL;
2542 }
2543 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
2544 Token * _literal;
2545 if (
2546 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
2547 )
2548 {
2549 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
2550 _res = _PyPegen_augoperator ( p , Pow );
2551 if (_res == NULL && PyErr_Occurred()) {
2552 p->error_indicator = 1;
2553 D(p->level--);
2554 return NULL;
2555 }
2556 goto done;
2557 }
2558 p->mark = _mark;
2559 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2560 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
2561 }
2562 { // '//='
2563 if (p->error_indicator) {
2564 D(p->level--);
2565 return NULL;
2566 }
2567 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
2568 Token * _literal;
2569 if (
2570 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
2571 )
2572 {
2573 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
2574 _res = _PyPegen_augoperator ( p , FloorDiv );
2575 if (_res == NULL && PyErr_Occurred()) {
2576 p->error_indicator = 1;
2577 D(p->level--);
2578 return NULL;
2579 }
2580 goto done;
2581 }
2582 p->mark = _mark;
2583 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
2585 }
2586 _res = NULL;
2587 done:
2588 D(p->level--);
2589 return _res;
2590}
2591
2592// global_stmt: 'global' ','.NAME+
2593static stmt_ty
2594global_stmt_rule(Parser *p)
2595{
2596 D(p->level++);
2597 if (p->error_indicator) {
2598 D(p->level--);
2599 return NULL;
2600 }
2601 stmt_ty _res = NULL;
2602 int _mark = p->mark;
2603 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2604 p->error_indicator = 1;
2605 D(p->level--);
2606 return NULL;
2607 }
2608 int _start_lineno = p->tokens[_mark]->lineno;
2609 UNUSED(_start_lineno); // Only used by EXTRA macro
2610 int _start_col_offset = p->tokens[_mark]->col_offset;
2611 UNUSED(_start_col_offset); // Only used by EXTRA macro
2612 { // 'global' ','.NAME+
2613 if (p->error_indicator) {
2614 D(p->level--);
2615 return NULL;
2616 }
2617 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2618 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002619 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002620 if (
2621 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
2622 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002623 (a = (asdl_expr_seq*)_gather_25_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002624 )
2625 {
2626 D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2627 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2628 if (_token == NULL) {
2629 D(p->level--);
2630 return NULL;
2631 }
2632 int _end_lineno = _token->end_lineno;
2633 UNUSED(_end_lineno); // Only used by EXTRA macro
2634 int _end_col_offset = _token->end_col_offset;
2635 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002636 _res = _Py_Global ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002637 if (_res == NULL && PyErr_Occurred()) {
2638 p->error_indicator = 1;
2639 D(p->level--);
2640 return NULL;
2641 }
2642 goto done;
2643 }
2644 p->mark = _mark;
2645 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2646 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
2647 }
2648 _res = NULL;
2649 done:
2650 D(p->level--);
2651 return _res;
2652}
2653
2654// nonlocal_stmt: 'nonlocal' ','.NAME+
2655static stmt_ty
2656nonlocal_stmt_rule(Parser *p)
2657{
2658 D(p->level++);
2659 if (p->error_indicator) {
2660 D(p->level--);
2661 return NULL;
2662 }
2663 stmt_ty _res = NULL;
2664 int _mark = p->mark;
2665 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2666 p->error_indicator = 1;
2667 D(p->level--);
2668 return NULL;
2669 }
2670 int _start_lineno = p->tokens[_mark]->lineno;
2671 UNUSED(_start_lineno); // Only used by EXTRA macro
2672 int _start_col_offset = p->tokens[_mark]->col_offset;
2673 UNUSED(_start_col_offset); // Only used by EXTRA macro
2674 { // 'nonlocal' ','.NAME+
2675 if (p->error_indicator) {
2676 D(p->level--);
2677 return NULL;
2678 }
2679 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2680 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002681 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002682 if (
2683 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
2684 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002685 (a = (asdl_expr_seq*)_gather_27_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002686 )
2687 {
2688 D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2689 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2690 if (_token == NULL) {
2691 D(p->level--);
2692 return NULL;
2693 }
2694 int _end_lineno = _token->end_lineno;
2695 UNUSED(_end_lineno); // Only used by EXTRA macro
2696 int _end_col_offset = _token->end_col_offset;
2697 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002698 _res = _Py_Nonlocal ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002699 if (_res == NULL && PyErr_Occurred()) {
2700 p->error_indicator = 1;
2701 D(p->level--);
2702 return NULL;
2703 }
2704 goto done;
2705 }
2706 p->mark = _mark;
2707 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2708 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
2709 }
2710 _res = NULL;
2711 done:
2712 D(p->level--);
2713 return _res;
2714}
2715
2716// yield_stmt: yield_expr
2717static stmt_ty
2718yield_stmt_rule(Parser *p)
2719{
2720 D(p->level++);
2721 if (p->error_indicator) {
2722 D(p->level--);
2723 return NULL;
2724 }
2725 stmt_ty _res = NULL;
2726 int _mark = p->mark;
2727 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2728 p->error_indicator = 1;
2729 D(p->level--);
2730 return NULL;
2731 }
2732 int _start_lineno = p->tokens[_mark]->lineno;
2733 UNUSED(_start_lineno); // Only used by EXTRA macro
2734 int _start_col_offset = p->tokens[_mark]->col_offset;
2735 UNUSED(_start_col_offset); // Only used by EXTRA macro
2736 { // yield_expr
2737 if (p->error_indicator) {
2738 D(p->level--);
2739 return NULL;
2740 }
2741 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2742 expr_ty y;
2743 if (
2744 (y = yield_expr_rule(p)) // yield_expr
2745 )
2746 {
2747 D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2748 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2749 if (_token == NULL) {
2750 D(p->level--);
2751 return NULL;
2752 }
2753 int _end_lineno = _token->end_lineno;
2754 UNUSED(_end_lineno); // Only used by EXTRA macro
2755 int _end_col_offset = _token->end_col_offset;
2756 UNUSED(_end_col_offset); // Only used by EXTRA macro
2757 _res = _Py_Expr ( y , EXTRA );
2758 if (_res == NULL && PyErr_Occurred()) {
2759 p->error_indicator = 1;
2760 D(p->level--);
2761 return NULL;
2762 }
2763 goto done;
2764 }
2765 p->mark = _mark;
2766 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2767 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
2768 }
2769 _res = NULL;
2770 done:
2771 D(p->level--);
2772 return _res;
2773}
2774
2775// assert_stmt: 'assert' expression [',' expression]
2776static stmt_ty
2777assert_stmt_rule(Parser *p)
2778{
2779 D(p->level++);
2780 if (p->error_indicator) {
2781 D(p->level--);
2782 return NULL;
2783 }
2784 stmt_ty _res = NULL;
2785 int _mark = p->mark;
2786 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2787 p->error_indicator = 1;
2788 D(p->level--);
2789 return NULL;
2790 }
2791 int _start_lineno = p->tokens[_mark]->lineno;
2792 UNUSED(_start_lineno); // Only used by EXTRA macro
2793 int _start_col_offset = p->tokens[_mark]->col_offset;
2794 UNUSED(_start_col_offset); // Only used by EXTRA macro
2795 { // 'assert' expression [',' expression]
2796 if (p->error_indicator) {
2797 D(p->level--);
2798 return NULL;
2799 }
2800 D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
2801 Token * _keyword;
2802 expr_ty a;
2803 void *b;
2804 if (
2805 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
2806 &&
2807 (a = expression_rule(p)) // expression
2808 &&
2809 (b = _tmp_29_rule(p), 1) // [',' expression]
2810 )
2811 {
2812 D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
2813 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2814 if (_token == NULL) {
2815 D(p->level--);
2816 return NULL;
2817 }
2818 int _end_lineno = _token->end_lineno;
2819 UNUSED(_end_lineno); // Only used by EXTRA macro
2820 int _end_col_offset = _token->end_col_offset;
2821 UNUSED(_end_col_offset); // Only used by EXTRA macro
2822 _res = _Py_Assert ( a , b , EXTRA );
2823 if (_res == NULL && PyErr_Occurred()) {
2824 p->error_indicator = 1;
2825 D(p->level--);
2826 return NULL;
2827 }
2828 goto done;
2829 }
2830 p->mark = _mark;
2831 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2832 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
2833 }
2834 _res = NULL;
2835 done:
2836 D(p->level--);
2837 return _res;
2838}
2839
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002840// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002841static stmt_ty
2842del_stmt_rule(Parser *p)
2843{
2844 D(p->level++);
2845 if (p->error_indicator) {
2846 D(p->level--);
2847 return NULL;
2848 }
2849 stmt_ty _res = NULL;
2850 int _mark = p->mark;
2851 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2852 p->error_indicator = 1;
2853 D(p->level--);
2854 return NULL;
2855 }
2856 int _start_lineno = p->tokens[_mark]->lineno;
2857 UNUSED(_start_lineno); // Only used by EXTRA macro
2858 int _start_col_offset = p->tokens[_mark]->col_offset;
2859 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002860 { // 'del' del_targets &(';' | NEWLINE)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002861 if (p->error_indicator) {
2862 D(p->level--);
2863 return NULL;
2864 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002865 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 +01002866 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002867 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002868 if (
2869 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
2870 &&
2871 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002872 &&
2873 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002874 )
2875 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002876 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 +01002877 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2878 if (_token == NULL) {
2879 D(p->level--);
2880 return NULL;
2881 }
2882 int _end_lineno = _token->end_lineno;
2883 UNUSED(_end_lineno); // Only used by EXTRA macro
2884 int _end_col_offset = _token->end_col_offset;
2885 UNUSED(_end_col_offset); // Only used by EXTRA macro
2886 _res = _Py_Delete ( a , EXTRA );
2887 if (_res == NULL && PyErr_Occurred()) {
2888 p->error_indicator = 1;
2889 D(p->level--);
2890 return NULL;
2891 }
2892 goto done;
2893 }
2894 p->mark = _mark;
2895 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002896 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
2897 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002898 if (p->call_invalid_rules) { // invalid_del_stmt
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002899 if (p->error_indicator) {
2900 D(p->level--);
2901 return NULL;
2902 }
2903 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
2904 void *invalid_del_stmt_var;
2905 if (
2906 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
2907 )
2908 {
2909 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
2910 _res = invalid_del_stmt_var;
2911 goto done;
2912 }
2913 p->mark = _mark;
2914 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2915 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002916 }
2917 _res = NULL;
2918 done:
2919 D(p->level--);
2920 return _res;
2921}
2922
2923// import_stmt: import_name | import_from
2924static stmt_ty
2925import_stmt_rule(Parser *p)
2926{
2927 D(p->level++);
2928 if (p->error_indicator) {
2929 D(p->level--);
2930 return NULL;
2931 }
2932 stmt_ty _res = NULL;
2933 int _mark = p->mark;
2934 { // import_name
2935 if (p->error_indicator) {
2936 D(p->level--);
2937 return NULL;
2938 }
2939 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
2940 stmt_ty import_name_var;
2941 if (
2942 (import_name_var = import_name_rule(p)) // import_name
2943 )
2944 {
2945 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
2946 _res = import_name_var;
2947 goto done;
2948 }
2949 p->mark = _mark;
2950 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2951 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
2952 }
2953 { // import_from
2954 if (p->error_indicator) {
2955 D(p->level--);
2956 return NULL;
2957 }
2958 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
2959 stmt_ty import_from_var;
2960 if (
2961 (import_from_var = import_from_rule(p)) // import_from
2962 )
2963 {
2964 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
2965 _res = import_from_var;
2966 goto done;
2967 }
2968 p->mark = _mark;
2969 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2970 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
2971 }
2972 _res = NULL;
2973 done:
2974 D(p->level--);
2975 return _res;
2976}
2977
2978// import_name: 'import' dotted_as_names
2979static stmt_ty
2980import_name_rule(Parser *p)
2981{
2982 D(p->level++);
2983 if (p->error_indicator) {
2984 D(p->level--);
2985 return NULL;
2986 }
2987 stmt_ty _res = NULL;
2988 int _mark = p->mark;
2989 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2990 p->error_indicator = 1;
2991 D(p->level--);
2992 return NULL;
2993 }
2994 int _start_lineno = p->tokens[_mark]->lineno;
2995 UNUSED(_start_lineno); // Only used by EXTRA macro
2996 int _start_col_offset = p->tokens[_mark]->col_offset;
2997 UNUSED(_start_col_offset); // Only used by EXTRA macro
2998 { // 'import' dotted_as_names
2999 if (p->error_indicator) {
3000 D(p->level--);
3001 return NULL;
3002 }
3003 D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3004 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003005 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003006 if (
3007 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
3008 &&
3009 (a = dotted_as_names_rule(p)) // dotted_as_names
3010 )
3011 {
3012 D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3013 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3014 if (_token == NULL) {
3015 D(p->level--);
3016 return NULL;
3017 }
3018 int _end_lineno = _token->end_lineno;
3019 UNUSED(_end_lineno); // Only used by EXTRA macro
3020 int _end_col_offset = _token->end_col_offset;
3021 UNUSED(_end_col_offset); // Only used by EXTRA macro
3022 _res = _Py_Import ( a , EXTRA );
3023 if (_res == NULL && PyErr_Occurred()) {
3024 p->error_indicator = 1;
3025 D(p->level--);
3026 return NULL;
3027 }
3028 goto done;
3029 }
3030 p->mark = _mark;
3031 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3032 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
3033 }
3034 _res = NULL;
3035 done:
3036 D(p->level--);
3037 return _res;
3038}
3039
3040// import_from:
3041// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3042// | 'from' (('.' | '...'))+ 'import' import_from_targets
3043static stmt_ty
3044import_from_rule(Parser *p)
3045{
3046 D(p->level++);
3047 if (p->error_indicator) {
3048 D(p->level--);
3049 return NULL;
3050 }
3051 stmt_ty _res = NULL;
3052 int _mark = p->mark;
3053 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3054 p->error_indicator = 1;
3055 D(p->level--);
3056 return NULL;
3057 }
3058 int _start_lineno = p->tokens[_mark]->lineno;
3059 UNUSED(_start_lineno); // Only used by EXTRA macro
3060 int _start_col_offset = p->tokens[_mark]->col_offset;
3061 UNUSED(_start_col_offset); // Only used by EXTRA macro
3062 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3063 if (p->error_indicator) {
3064 D(p->level--);
3065 return NULL;
3066 }
3067 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3068 Token * _keyword;
3069 Token * _keyword_1;
3070 asdl_seq * a;
3071 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003072 asdl_alias_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003073 if (
3074 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3075 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003076 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003077 &&
3078 (b = dotted_name_rule(p)) // dotted_name
3079 &&
3080 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3081 &&
3082 (c = import_from_targets_rule(p)) // import_from_targets
3083 )
3084 {
3085 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3086 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3087 if (_token == NULL) {
3088 D(p->level--);
3089 return NULL;
3090 }
3091 int _end_lineno = _token->end_lineno;
3092 UNUSED(_end_lineno); // Only used by EXTRA macro
3093 int _end_col_offset = _token->end_col_offset;
3094 UNUSED(_end_col_offset); // Only used by EXTRA macro
3095 _res = _Py_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
3096 if (_res == NULL && PyErr_Occurred()) {
3097 p->error_indicator = 1;
3098 D(p->level--);
3099 return NULL;
3100 }
3101 goto done;
3102 }
3103 p->mark = _mark;
3104 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3106 }
3107 { // 'from' (('.' | '...'))+ 'import' import_from_targets
3108 if (p->error_indicator) {
3109 D(p->level--);
3110 return NULL;
3111 }
3112 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3113 Token * _keyword;
3114 Token * _keyword_1;
3115 asdl_seq * a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003116 asdl_alias_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003117 if (
3118 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3119 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003120 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003121 &&
3122 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3123 &&
3124 (b = import_from_targets_rule(p)) // import_from_targets
3125 )
3126 {
3127 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3128 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3129 if (_token == NULL) {
3130 D(p->level--);
3131 return NULL;
3132 }
3133 int _end_lineno = _token->end_lineno;
3134 UNUSED(_end_lineno); // Only used by EXTRA macro
3135 int _end_col_offset = _token->end_col_offset;
3136 UNUSED(_end_col_offset); // Only used by EXTRA macro
3137 _res = _Py_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
3138 if (_res == NULL && PyErr_Occurred()) {
3139 p->error_indicator = 1;
3140 D(p->level--);
3141 return NULL;
3142 }
3143 goto done;
3144 }
3145 p->mark = _mark;
3146 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3147 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3148 }
3149 _res = NULL;
3150 done:
3151 D(p->level--);
3152 return _res;
3153}
3154
3155// import_from_targets:
3156// | '(' import_from_as_names ','? ')'
3157// | import_from_as_names !','
3158// | '*'
3159// | invalid_import_from_targets
Pablo Galindoa5634c42020-09-16 19:42:00 +01003160static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003161import_from_targets_rule(Parser *p)
3162{
3163 D(p->level++);
3164 if (p->error_indicator) {
3165 D(p->level--);
3166 return NULL;
3167 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003168 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003169 int _mark = p->mark;
3170 { // '(' import_from_as_names ','? ')'
3171 if (p->error_indicator) {
3172 D(p->level--);
3173 return NULL;
3174 }
3175 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3176 Token * _literal;
3177 Token * _literal_1;
3178 void *_opt_var;
3179 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01003180 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003181 if (
3182 (_literal = _PyPegen_expect_token(p, 7)) // token='('
3183 &&
3184 (a = import_from_as_names_rule(p)) // import_from_as_names
3185 &&
3186 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
3187 &&
3188 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
3189 )
3190 {
3191 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3192 _res = a;
3193 if (_res == NULL && PyErr_Occurred()) {
3194 p->error_indicator = 1;
3195 D(p->level--);
3196 return NULL;
3197 }
3198 goto done;
3199 }
3200 p->mark = _mark;
3201 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3202 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3203 }
3204 { // import_from_as_names !','
3205 if (p->error_indicator) {
3206 D(p->level--);
3207 return NULL;
3208 }
3209 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 +01003210 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003211 if (
3212 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
3213 &&
3214 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
3215 )
3216 {
3217 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
3218 _res = import_from_as_names_var;
3219 goto done;
3220 }
3221 p->mark = _mark;
3222 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
3224 }
3225 { // '*'
3226 if (p->error_indicator) {
3227 D(p->level--);
3228 return NULL;
3229 }
3230 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
3231 Token * _literal;
3232 if (
3233 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
3234 )
3235 {
3236 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03003237 _res = ( asdl_alias_seq * ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003238 if (_res == NULL && PyErr_Occurred()) {
3239 p->error_indicator = 1;
3240 D(p->level--);
3241 return NULL;
3242 }
3243 goto done;
3244 }
3245 p->mark = _mark;
3246 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3247 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
3248 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003249 if (p->call_invalid_rules) { // invalid_import_from_targets
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003250 if (p->error_indicator) {
3251 D(p->level--);
3252 return NULL;
3253 }
3254 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3255 void *invalid_import_from_targets_var;
3256 if (
3257 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3258 )
3259 {
3260 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3261 _res = invalid_import_from_targets_var;
3262 goto done;
3263 }
3264 p->mark = _mark;
3265 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3266 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
3267 }
3268 _res = NULL;
3269 done:
3270 D(p->level--);
3271 return _res;
3272}
3273
3274// import_from_as_names: ','.import_from_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003275static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003276import_from_as_names_rule(Parser *p)
3277{
3278 D(p->level++);
3279 if (p->error_indicator) {
3280 D(p->level--);
3281 return NULL;
3282 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003283 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003284 int _mark = p->mark;
3285 { // ','.import_from_as_name+
3286 if (p->error_indicator) {
3287 D(p->level--);
3288 return NULL;
3289 }
3290 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 +01003291 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003292 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003293 (a = (asdl_alias_seq*)_gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003294 )
3295 {
3296 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
3297 _res = a;
3298 if (_res == NULL && PyErr_Occurred()) {
3299 p->error_indicator = 1;
3300 D(p->level--);
3301 return NULL;
3302 }
3303 goto done;
3304 }
3305 p->mark = _mark;
3306 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3307 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
3308 }
3309 _res = NULL;
3310 done:
3311 D(p->level--);
3312 return _res;
3313}
3314
3315// import_from_as_name: NAME ['as' NAME]
3316static alias_ty
3317import_from_as_name_rule(Parser *p)
3318{
3319 D(p->level++);
3320 if (p->error_indicator) {
3321 D(p->level--);
3322 return NULL;
3323 }
3324 alias_ty _res = NULL;
3325 int _mark = p->mark;
3326 { // NAME ['as' NAME]
3327 if (p->error_indicator) {
3328 D(p->level--);
3329 return NULL;
3330 }
3331 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3332 expr_ty a;
3333 void *b;
3334 if (
3335 (a = _PyPegen_name_token(p)) // NAME
3336 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003337 (b = _tmp_35_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003338 )
3339 {
3340 D(fprintf(stderr, "%*c+ import_from_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3341 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3342 if (_res == NULL && PyErr_Occurred()) {
3343 p->error_indicator = 1;
3344 D(p->level--);
3345 return NULL;
3346 }
3347 goto done;
3348 }
3349 p->mark = _mark;
3350 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3351 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
3352 }
3353 _res = NULL;
3354 done:
3355 D(p->level--);
3356 return _res;
3357}
3358
3359// dotted_as_names: ','.dotted_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003360static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003361dotted_as_names_rule(Parser *p)
3362{
3363 D(p->level++);
3364 if (p->error_indicator) {
3365 D(p->level--);
3366 return NULL;
3367 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003368 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003369 int _mark = p->mark;
3370 { // ','.dotted_as_name+
3371 if (p->error_indicator) {
3372 D(p->level--);
3373 return NULL;
3374 }
3375 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 +01003376 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003377 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003378 (a = (asdl_alias_seq*)_gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003379 )
3380 {
3381 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
3382 _res = a;
3383 if (_res == NULL && PyErr_Occurred()) {
3384 p->error_indicator = 1;
3385 D(p->level--);
3386 return NULL;
3387 }
3388 goto done;
3389 }
3390 p->mark = _mark;
3391 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3392 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
3393 }
3394 _res = NULL;
3395 done:
3396 D(p->level--);
3397 return _res;
3398}
3399
3400// dotted_as_name: dotted_name ['as' NAME]
3401static alias_ty
3402dotted_as_name_rule(Parser *p)
3403{
3404 D(p->level++);
3405 if (p->error_indicator) {
3406 D(p->level--);
3407 return NULL;
3408 }
3409 alias_ty _res = NULL;
3410 int _mark = p->mark;
3411 { // dotted_name ['as' NAME]
3412 if (p->error_indicator) {
3413 D(p->level--);
3414 return NULL;
3415 }
3416 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3417 expr_ty a;
3418 void *b;
3419 if (
3420 (a = dotted_name_rule(p)) // dotted_name
3421 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003422 (b = _tmp_38_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003423 )
3424 {
3425 D(fprintf(stderr, "%*c+ dotted_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3426 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3427 if (_res == NULL && PyErr_Occurred()) {
3428 p->error_indicator = 1;
3429 D(p->level--);
3430 return NULL;
3431 }
3432 goto done;
3433 }
3434 p->mark = _mark;
3435 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3436 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
3437 }
3438 _res = NULL;
3439 done:
3440 D(p->level--);
3441 return _res;
3442}
3443
3444// Left-recursive
3445// dotted_name: dotted_name '.' NAME | NAME
3446static expr_ty dotted_name_raw(Parser *);
3447static expr_ty
3448dotted_name_rule(Parser *p)
3449{
3450 D(p->level++);
3451 expr_ty _res = NULL;
3452 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3453 D(p->level--);
3454 return _res;
3455 }
3456 int _mark = p->mark;
3457 int _resmark = p->mark;
3458 while (1) {
3459 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
3460 if (tmpvar_0) {
3461 D(p->level--);
3462 return _res;
3463 }
3464 p->mark = _mark;
3465 void *_raw = dotted_name_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02003466 if (p->error_indicator)
3467 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003468 if (_raw == NULL || p->mark <= _resmark)
3469 break;
3470 _resmark = p->mark;
3471 _res = _raw;
3472 }
3473 p->mark = _resmark;
3474 D(p->level--);
3475 return _res;
3476}
3477static expr_ty
3478dotted_name_raw(Parser *p)
3479{
3480 D(p->level++);
3481 if (p->error_indicator) {
3482 D(p->level--);
3483 return NULL;
3484 }
3485 expr_ty _res = NULL;
3486 int _mark = p->mark;
3487 { // dotted_name '.' NAME
3488 if (p->error_indicator) {
3489 D(p->level--);
3490 return NULL;
3491 }
3492 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3493 Token * _literal;
3494 expr_ty a;
3495 expr_ty b;
3496 if (
3497 (a = dotted_name_rule(p)) // dotted_name
3498 &&
3499 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
3500 &&
3501 (b = _PyPegen_name_token(p)) // NAME
3502 )
3503 {
3504 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3505 _res = _PyPegen_join_names_with_dot ( p , a , b );
3506 if (_res == NULL && PyErr_Occurred()) {
3507 p->error_indicator = 1;
3508 D(p->level--);
3509 return NULL;
3510 }
3511 goto done;
3512 }
3513 p->mark = _mark;
3514 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3515 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
3516 }
3517 { // NAME
3518 if (p->error_indicator) {
3519 D(p->level--);
3520 return NULL;
3521 }
3522 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
3523 expr_ty name_var;
3524 if (
3525 (name_var = _PyPegen_name_token(p)) // NAME
3526 )
3527 {
3528 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
3529 _res = name_var;
3530 goto done;
3531 }
3532 p->mark = _mark;
3533 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3534 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
3535 }
3536 _res = NULL;
3537 done:
3538 D(p->level--);
3539 return _res;
3540}
3541
3542// if_stmt:
3543// | 'if' named_expression ':' block elif_stmt
3544// | 'if' named_expression ':' block else_block?
3545static stmt_ty
3546if_stmt_rule(Parser *p)
3547{
3548 D(p->level++);
3549 if (p->error_indicator) {
3550 D(p->level--);
3551 return NULL;
3552 }
3553 stmt_ty _res = NULL;
3554 int _mark = p->mark;
3555 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3556 p->error_indicator = 1;
3557 D(p->level--);
3558 return NULL;
3559 }
3560 int _start_lineno = p->tokens[_mark]->lineno;
3561 UNUSED(_start_lineno); // Only used by EXTRA macro
3562 int _start_col_offset = p->tokens[_mark]->col_offset;
3563 UNUSED(_start_col_offset); // Only used by EXTRA macro
3564 { // 'if' named_expression ':' block elif_stmt
3565 if (p->error_indicator) {
3566 D(p->level--);
3567 return NULL;
3568 }
3569 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
3570 Token * _keyword;
3571 Token * _literal;
3572 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003573 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003574 stmt_ty c;
3575 if (
3576 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3577 &&
3578 (a = named_expression_rule(p)) // named_expression
3579 &&
3580 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
3581 &&
3582 (b = block_rule(p)) // block
3583 &&
3584 (c = elif_stmt_rule(p)) // elif_stmt
3585 )
3586 {
3587 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
3588 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3589 if (_token == NULL) {
3590 D(p->level--);
3591 return NULL;
3592 }
3593 int _end_lineno = _token->end_lineno;
3594 UNUSED(_end_lineno); // Only used by EXTRA macro
3595 int _end_col_offset = _token->end_col_offset;
3596 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03003597 _res = _Py_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003598 if (_res == NULL && PyErr_Occurred()) {
3599 p->error_indicator = 1;
3600 D(p->level--);
3601 return NULL;
3602 }
3603 goto done;
3604 }
3605 p->mark = _mark;
3606 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3607 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
3608 }
3609 { // 'if' named_expression ':' block else_block?
3610 if (p->error_indicator) {
3611 D(p->level--);
3612 return NULL;
3613 }
3614 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block else_block?"));
3615 Token * _keyword;
3616 Token * _literal;
3617 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003618 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003619 void *c;
3620 if (
3621 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3622 &&
3623 (a = named_expression_rule(p)) // named_expression
3624 &&
3625 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
3626 &&
3627 (b = block_rule(p)) // block
3628 &&
3629 (c = else_block_rule(p), 1) // else_block?
3630 )
3631 {
3632 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block else_block?"));
3633 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3634 if (_token == NULL) {
3635 D(p->level--);
3636 return NULL;
3637 }
3638 int _end_lineno = _token->end_lineno;
3639 UNUSED(_end_lineno); // Only used by EXTRA macro
3640 int _end_col_offset = _token->end_col_offset;
3641 UNUSED(_end_col_offset); // Only used by EXTRA macro
3642 _res = _Py_If ( a , b , c , EXTRA );
3643 if (_res == NULL && PyErr_Occurred()) {
3644 p->error_indicator = 1;
3645 D(p->level--);
3646 return NULL;
3647 }
3648 goto done;
3649 }
3650 p->mark = _mark;
3651 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3652 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
3653 }
3654 _res = NULL;
3655 done:
3656 D(p->level--);
3657 return _res;
3658}
3659
3660// elif_stmt:
3661// | 'elif' named_expression ':' block elif_stmt
3662// | 'elif' named_expression ':' block else_block?
3663static stmt_ty
3664elif_stmt_rule(Parser *p)
3665{
3666 D(p->level++);
3667 if (p->error_indicator) {
3668 D(p->level--);
3669 return NULL;
3670 }
3671 stmt_ty _res = NULL;
3672 int _mark = p->mark;
3673 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3674 p->error_indicator = 1;
3675 D(p->level--);
3676 return NULL;
3677 }
3678 int _start_lineno = p->tokens[_mark]->lineno;
3679 UNUSED(_start_lineno); // Only used by EXTRA macro
3680 int _start_col_offset = p->tokens[_mark]->col_offset;
3681 UNUSED(_start_col_offset); // Only used by EXTRA macro
3682 { // 'elif' named_expression ':' block elif_stmt
3683 if (p->error_indicator) {
3684 D(p->level--);
3685 return NULL;
3686 }
3687 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
3688 Token * _keyword;
3689 Token * _literal;
3690 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003691 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003692 stmt_ty c;
3693 if (
3694 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
3695 &&
3696 (a = named_expression_rule(p)) // named_expression
3697 &&
3698 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
3699 &&
3700 (b = block_rule(p)) // block
3701 &&
3702 (c = elif_stmt_rule(p)) // elif_stmt
3703 )
3704 {
3705 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
3706 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3707 if (_token == NULL) {
3708 D(p->level--);
3709 return NULL;
3710 }
3711 int _end_lineno = _token->end_lineno;
3712 UNUSED(_end_lineno); // Only used by EXTRA macro
3713 int _end_col_offset = _token->end_col_offset;
3714 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03003715 _res = _Py_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003716 if (_res == NULL && PyErr_Occurred()) {
3717 p->error_indicator = 1;
3718 D(p->level--);
3719 return NULL;
3720 }
3721 goto done;
3722 }
3723 p->mark = _mark;
3724 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3725 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
3726 }
3727 { // 'elif' named_expression ':' block else_block?
3728 if (p->error_indicator) {
3729 D(p->level--);
3730 return NULL;
3731 }
3732 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block else_block?"));
3733 Token * _keyword;
3734 Token * _literal;
3735 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003736 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003737 void *c;
3738 if (
3739 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
3740 &&
3741 (a = named_expression_rule(p)) // named_expression
3742 &&
3743 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
3744 &&
3745 (b = block_rule(p)) // block
3746 &&
3747 (c = else_block_rule(p), 1) // else_block?
3748 )
3749 {
3750 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block else_block?"));
3751 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3752 if (_token == NULL) {
3753 D(p->level--);
3754 return NULL;
3755 }
3756 int _end_lineno = _token->end_lineno;
3757 UNUSED(_end_lineno); // Only used by EXTRA macro
3758 int _end_col_offset = _token->end_col_offset;
3759 UNUSED(_end_col_offset); // Only used by EXTRA macro
3760 _res = _Py_If ( a , b , c , EXTRA );
3761 if (_res == NULL && PyErr_Occurred()) {
3762 p->error_indicator = 1;
3763 D(p->level--);
3764 return NULL;
3765 }
3766 goto done;
3767 }
3768 p->mark = _mark;
3769 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3770 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
3771 }
3772 _res = NULL;
3773 done:
3774 D(p->level--);
3775 return _res;
3776}
3777
3778// else_block: 'else' ':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01003779static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003780else_block_rule(Parser *p)
3781{
3782 D(p->level++);
3783 if (p->error_indicator) {
3784 D(p->level--);
3785 return NULL;
3786 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003787 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003788 int _mark = p->mark;
3789 { // 'else' ':' block
3790 if (p->error_indicator) {
3791 D(p->level--);
3792 return NULL;
3793 }
3794 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' block"));
3795 Token * _keyword;
3796 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003797 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003798 if (
3799 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
3800 &&
3801 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
3802 &&
3803 (b = block_rule(p)) // block
3804 )
3805 {
3806 D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' ':' block"));
3807 _res = b;
3808 if (_res == NULL && PyErr_Occurred()) {
3809 p->error_indicator = 1;
3810 D(p->level--);
3811 return NULL;
3812 }
3813 goto done;
3814 }
3815 p->mark = _mark;
3816 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
3817 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' block"));
3818 }
3819 _res = NULL;
3820 done:
3821 D(p->level--);
3822 return _res;
3823}
3824
3825// while_stmt: 'while' named_expression ':' block else_block?
3826static stmt_ty
3827while_stmt_rule(Parser *p)
3828{
3829 D(p->level++);
3830 if (p->error_indicator) {
3831 D(p->level--);
3832 return NULL;
3833 }
3834 stmt_ty _res = NULL;
3835 int _mark = p->mark;
3836 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3837 p->error_indicator = 1;
3838 D(p->level--);
3839 return NULL;
3840 }
3841 int _start_lineno = p->tokens[_mark]->lineno;
3842 UNUSED(_start_lineno); // Only used by EXTRA macro
3843 int _start_col_offset = p->tokens[_mark]->col_offset;
3844 UNUSED(_start_col_offset); // Only used by EXTRA macro
3845 { // 'while' named_expression ':' block else_block?
3846 if (p->error_indicator) {
3847 D(p->level--);
3848 return NULL;
3849 }
3850 D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' block else_block?"));
3851 Token * _keyword;
3852 Token * _literal;
3853 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003854 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003855 void *c;
3856 if (
3857 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
3858 &&
3859 (a = named_expression_rule(p)) // named_expression
3860 &&
3861 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
3862 &&
3863 (b = block_rule(p)) // block
3864 &&
3865 (c = else_block_rule(p), 1) // else_block?
3866 )
3867 {
3868 D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' block else_block?"));
3869 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3870 if (_token == NULL) {
3871 D(p->level--);
3872 return NULL;
3873 }
3874 int _end_lineno = _token->end_lineno;
3875 UNUSED(_end_lineno); // Only used by EXTRA macro
3876 int _end_col_offset = _token->end_col_offset;
3877 UNUSED(_end_col_offset); // Only used by EXTRA macro
3878 _res = _Py_While ( a , b , c , EXTRA );
3879 if (_res == NULL && PyErr_Occurred()) {
3880 p->error_indicator = 1;
3881 D(p->level--);
3882 return NULL;
3883 }
3884 goto done;
3885 }
3886 p->mark = _mark;
3887 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3888 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
3889 }
3890 _res = NULL;
3891 done:
3892 D(p->level--);
3893 return _res;
3894}
3895
3896// for_stmt:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003897// | 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
3898// | ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
3899// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003900static stmt_ty
3901for_stmt_rule(Parser *p)
3902{
3903 D(p->level++);
3904 if (p->error_indicator) {
3905 D(p->level--);
3906 return NULL;
3907 }
3908 stmt_ty _res = NULL;
3909 int _mark = p->mark;
3910 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3911 p->error_indicator = 1;
3912 D(p->level--);
3913 return NULL;
3914 }
3915 int _start_lineno = p->tokens[_mark]->lineno;
3916 UNUSED(_start_lineno); // Only used by EXTRA macro
3917 int _start_col_offset = p->tokens[_mark]->col_offset;
3918 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003919 { // 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003920 if (p->error_indicator) {
3921 D(p->level--);
3922 return NULL;
3923 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003924 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?"));
3925 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003926 Token * _keyword;
3927 Token * _keyword_1;
3928 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003929 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003930 void *el;
3931 expr_ty ex;
3932 expr_ty t;
3933 void *tc;
3934 if (
3935 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
3936 &&
3937 (t = star_targets_rule(p)) // star_targets
3938 &&
3939 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
3940 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003941 (_cut_var = 1)
3942 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003943 (ex = star_expressions_rule(p)) // star_expressions
3944 &&
3945 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
3946 &&
3947 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
3948 &&
3949 (b = block_rule(p)) // block
3950 &&
3951 (el = else_block_rule(p), 1) // else_block?
3952 )
3953 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003954 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 +01003955 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3956 if (_token == NULL) {
3957 D(p->level--);
3958 return NULL;
3959 }
3960 int _end_lineno = _token->end_lineno;
3961 UNUSED(_end_lineno); // Only used by EXTRA macro
3962 int _end_col_offset = _token->end_col_offset;
3963 UNUSED(_end_col_offset); // Only used by EXTRA macro
3964 _res = _Py_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
3965 if (_res == NULL && PyErr_Occurred()) {
3966 p->error_indicator = 1;
3967 D(p->level--);
3968 return NULL;
3969 }
3970 goto done;
3971 }
3972 p->mark = _mark;
3973 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003974 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
3975 if (_cut_var) {
3976 D(p->level--);
3977 return NULL;
3978 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003979 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003980 { // ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003981 if (p->error_indicator) {
3982 D(p->level--);
3983 return NULL;
3984 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003985 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?"));
3986 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003987 Token * _keyword;
3988 Token * _keyword_1;
3989 Token * _literal;
3990 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003991 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003992 void *el;
3993 expr_ty ex;
3994 expr_ty t;
3995 void *tc;
3996 if (
3997 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
3998 &&
3999 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4000 &&
4001 (t = star_targets_rule(p)) // star_targets
4002 &&
4003 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4004 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004005 (_cut_var = 1)
4006 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004007 (ex = star_expressions_rule(p)) // star_expressions
4008 &&
4009 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4010 &&
4011 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4012 &&
4013 (b = block_rule(p)) // block
4014 &&
4015 (el = else_block_rule(p), 1) // else_block?
4016 )
4017 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004018 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 +01004019 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4020 if (_token == NULL) {
4021 D(p->level--);
4022 return NULL;
4023 }
4024 int _end_lineno = _token->end_lineno;
4025 UNUSED(_end_lineno); // Only used by EXTRA macro
4026 int _end_col_offset = _token->end_col_offset;
4027 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03004028 _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 +01004029 if (_res == NULL && PyErr_Occurred()) {
4030 p->error_indicator = 1;
4031 D(p->level--);
4032 return NULL;
4033 }
4034 goto done;
4035 }
4036 p->mark = _mark;
4037 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004038 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
4039 if (_cut_var) {
4040 D(p->level--);
4041 return NULL;
4042 }
4043 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004044 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004045 if (p->error_indicator) {
4046 D(p->level--);
4047 return NULL;
4048 }
4049 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4050 void *invalid_for_target_var;
4051 if (
4052 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4053 )
4054 {
4055 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4056 _res = invalid_for_target_var;
4057 goto done;
4058 }
4059 p->mark = _mark;
4060 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4061 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004062 }
4063 _res = NULL;
4064 done:
4065 D(p->level--);
4066 return _res;
4067}
4068
4069// with_stmt:
4070// | 'with' '(' ','.with_item+ ','? ')' ':' block
4071// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
4072// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4073// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
4074static stmt_ty
4075with_stmt_rule(Parser *p)
4076{
4077 D(p->level++);
4078 if (p->error_indicator) {
4079 D(p->level--);
4080 return NULL;
4081 }
4082 stmt_ty _res = NULL;
4083 int _mark = p->mark;
4084 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4085 p->error_indicator = 1;
4086 D(p->level--);
4087 return NULL;
4088 }
4089 int _start_lineno = p->tokens[_mark]->lineno;
4090 UNUSED(_start_lineno); // Only used by EXTRA macro
4091 int _start_col_offset = p->tokens[_mark]->col_offset;
4092 UNUSED(_start_col_offset); // Only used by EXTRA macro
4093 { // 'with' '(' ','.with_item+ ','? ')' ':' block
4094 if (p->error_indicator) {
4095 D(p->level--);
4096 return NULL;
4097 }
4098 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4099 Token * _keyword;
4100 Token * _literal;
4101 Token * _literal_1;
4102 Token * _literal_2;
4103 void *_opt_var;
4104 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004105 asdl_withitem_seq* a;
4106 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004107 if (
4108 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4109 &&
4110 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4111 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004112 (a = (asdl_withitem_seq*)_gather_39_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004113 &&
4114 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4115 &&
4116 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4117 &&
4118 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4119 &&
4120 (b = block_rule(p)) // block
4121 )
4122 {
4123 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4124 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4125 if (_token == NULL) {
4126 D(p->level--);
4127 return NULL;
4128 }
4129 int _end_lineno = _token->end_lineno;
4130 UNUSED(_end_lineno); // Only used by EXTRA macro
4131 int _end_col_offset = _token->end_col_offset;
4132 UNUSED(_end_col_offset); // Only used by EXTRA macro
4133 _res = _Py_With ( a , b , NULL , EXTRA );
4134 if (_res == NULL && PyErr_Occurred()) {
4135 p->error_indicator = 1;
4136 D(p->level--);
4137 return NULL;
4138 }
4139 goto done;
4140 }
4141 p->mark = _mark;
4142 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4143 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4144 }
4145 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
4146 if (p->error_indicator) {
4147 D(p->level--);
4148 return NULL;
4149 }
4150 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4151 Token * _keyword;
4152 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004153 asdl_withitem_seq* a;
4154 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004155 void *tc;
4156 if (
4157 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4158 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004159 (a = (asdl_withitem_seq*)_gather_41_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004160 &&
4161 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4162 &&
4163 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4164 &&
4165 (b = block_rule(p)) // block
4166 )
4167 {
4168 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4169 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4170 if (_token == NULL) {
4171 D(p->level--);
4172 return NULL;
4173 }
4174 int _end_lineno = _token->end_lineno;
4175 UNUSED(_end_lineno); // Only used by EXTRA macro
4176 int _end_col_offset = _token->end_col_offset;
4177 UNUSED(_end_col_offset); // Only used by EXTRA macro
4178 _res = _Py_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
4179 if (_res == NULL && PyErr_Occurred()) {
4180 p->error_indicator = 1;
4181 D(p->level--);
4182 return NULL;
4183 }
4184 goto done;
4185 }
4186 p->mark = _mark;
4187 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4188 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4189 }
4190 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4191 if (p->error_indicator) {
4192 D(p->level--);
4193 return NULL;
4194 }
4195 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4196 Token * _keyword;
4197 Token * _literal;
4198 Token * _literal_1;
4199 Token * _literal_2;
4200 void *_opt_var;
4201 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004202 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004203 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004204 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004205 if (
4206 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4207 &&
4208 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4209 &&
4210 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4211 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004212 (a = (asdl_withitem_seq*)_gather_43_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004213 &&
4214 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4215 &&
4216 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4217 &&
4218 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4219 &&
4220 (b = block_rule(p)) // block
4221 )
4222 {
4223 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4224 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4225 if (_token == NULL) {
4226 D(p->level--);
4227 return NULL;
4228 }
4229 int _end_lineno = _token->end_lineno;
4230 UNUSED(_end_lineno); // Only used by EXTRA macro
4231 int _end_col_offset = _token->end_col_offset;
4232 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03004233 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NULL , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004234 if (_res == NULL && PyErr_Occurred()) {
4235 p->error_indicator = 1;
4236 D(p->level--);
4237 return NULL;
4238 }
4239 goto done;
4240 }
4241 p->mark = _mark;
4242 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4243 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4244 }
4245 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
4246 if (p->error_indicator) {
4247 D(p->level--);
4248 return NULL;
4249 }
4250 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4251 Token * _keyword;
4252 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004253 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004254 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004255 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004256 void *tc;
4257 if (
4258 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4259 &&
4260 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4261 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004262 (a = (asdl_withitem_seq*)_gather_45_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004263 &&
4264 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4265 &&
4266 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4267 &&
4268 (b = block_rule(p)) // block
4269 )
4270 {
4271 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4272 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4273 if (_token == NULL) {
4274 D(p->level--);
4275 return NULL;
4276 }
4277 int _end_lineno = _token->end_lineno;
4278 UNUSED(_end_lineno); // Only used by EXTRA macro
4279 int _end_col_offset = _token->end_col_offset;
4280 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03004281 _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 +01004282 if (_res == NULL && PyErr_Occurred()) {
4283 p->error_indicator = 1;
4284 D(p->level--);
4285 return NULL;
4286 }
4287 goto done;
4288 }
4289 p->mark = _mark;
4290 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4291 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4292 }
4293 _res = NULL;
4294 done:
4295 D(p->level--);
4296 return _res;
4297}
4298
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004299// with_item:
4300// | expression 'as' star_target &(',' | ')' | ':')
4301// | invalid_with_item
4302// | expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004303static withitem_ty
4304with_item_rule(Parser *p)
4305{
4306 D(p->level++);
4307 if (p->error_indicator) {
4308 D(p->level--);
4309 return NULL;
4310 }
4311 withitem_ty _res = NULL;
4312 int _mark = p->mark;
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004313 { // expression 'as' star_target &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004314 if (p->error_indicator) {
4315 D(p->level--);
4316 return NULL;
4317 }
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004318 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 +03004319 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004320 expr_ty e;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004321 expr_ty t;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004322 if (
4323 (e = expression_rule(p)) // expression
4324 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004325 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4326 &&
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004327 (t = star_target_rule(p)) // star_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004328 &&
4329 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004330 )
4331 {
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004332 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 +03004333 _res = _Py_withitem ( e , t , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004334 if (_res == NULL && PyErr_Occurred()) {
4335 p->error_indicator = 1;
4336 D(p->level--);
4337 return NULL;
4338 }
4339 goto done;
4340 }
4341 p->mark = _mark;
4342 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004343 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004344 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004345 if (p->call_invalid_rules) { // invalid_with_item
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004346 if (p->error_indicator) {
4347 D(p->level--);
4348 return NULL;
4349 }
4350 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4351 void *invalid_with_item_var;
4352 if (
4353 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4354 )
4355 {
4356 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4357 _res = invalid_with_item_var;
4358 goto done;
4359 }
4360 p->mark = _mark;
4361 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4363 }
4364 { // expression
4365 if (p->error_indicator) {
4366 D(p->level--);
4367 return NULL;
4368 }
4369 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4370 expr_ty e;
4371 if (
4372 (e = expression_rule(p)) // expression
4373 )
4374 {
4375 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
4376 _res = _Py_withitem ( e , NULL , p -> arena );
4377 if (_res == NULL && PyErr_Occurred()) {
4378 p->error_indicator = 1;
4379 D(p->level--);
4380 return NULL;
4381 }
4382 goto done;
4383 }
4384 p->mark = _mark;
4385 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4386 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004387 }
4388 _res = NULL;
4389 done:
4390 D(p->level--);
4391 return _res;
4392}
4393
4394// try_stmt:
4395// | 'try' ':' block finally_block
4396// | 'try' ':' block except_block+ else_block? finally_block?
4397static stmt_ty
4398try_stmt_rule(Parser *p)
4399{
4400 D(p->level++);
4401 if (p->error_indicator) {
4402 D(p->level--);
4403 return NULL;
4404 }
4405 stmt_ty _res = NULL;
4406 int _mark = p->mark;
4407 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4408 p->error_indicator = 1;
4409 D(p->level--);
4410 return NULL;
4411 }
4412 int _start_lineno = p->tokens[_mark]->lineno;
4413 UNUSED(_start_lineno); // Only used by EXTRA macro
4414 int _start_col_offset = p->tokens[_mark]->col_offset;
4415 UNUSED(_start_col_offset); // Only used by EXTRA macro
4416 { // 'try' ':' block finally_block
4417 if (p->error_indicator) {
4418 D(p->level--);
4419 return NULL;
4420 }
4421 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' block finally_block"));
4422 Token * _keyword;
4423 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004424 asdl_stmt_seq* b;
4425 asdl_stmt_seq* f;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004426 if (
4427 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4428 &&
4429 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4430 &&
4431 (b = block_rule(p)) // block
4432 &&
4433 (f = finally_block_rule(p)) // finally_block
4434 )
4435 {
4436 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block finally_block"));
4437 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4438 if (_token == NULL) {
4439 D(p->level--);
4440 return NULL;
4441 }
4442 int _end_lineno = _token->end_lineno;
4443 UNUSED(_end_lineno); // Only used by EXTRA macro
4444 int _end_col_offset = _token->end_col_offset;
4445 UNUSED(_end_col_offset); // Only used by EXTRA macro
4446 _res = _Py_Try ( b , NULL , NULL , f , EXTRA );
4447 if (_res == NULL && PyErr_Occurred()) {
4448 p->error_indicator = 1;
4449 D(p->level--);
4450 return NULL;
4451 }
4452 goto done;
4453 }
4454 p->mark = _mark;
4455 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block finally_block"));
4457 }
4458 { // 'try' ':' block except_block+ else_block? finally_block?
4459 if (p->error_indicator) {
4460 D(p->level--);
4461 return NULL;
4462 }
4463 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' block except_block+ else_block? finally_block?"));
4464 Token * _keyword;
4465 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004466 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004467 void *el;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004468 asdl_excepthandler_seq* ex;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004469 void *f;
4470 if (
4471 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4472 &&
4473 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4474 &&
4475 (b = block_rule(p)) // block
4476 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004477 (ex = (asdl_excepthandler_seq*)_loop1_48_rule(p)) // except_block+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004478 &&
4479 (el = else_block_rule(p), 1) // else_block?
4480 &&
4481 (f = finally_block_rule(p), 1) // finally_block?
4482 )
4483 {
4484 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block except_block+ else_block? finally_block?"));
4485 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4486 if (_token == NULL) {
4487 D(p->level--);
4488 return NULL;
4489 }
4490 int _end_lineno = _token->end_lineno;
4491 UNUSED(_end_lineno); // Only used by EXTRA macro
4492 int _end_col_offset = _token->end_col_offset;
4493 UNUSED(_end_col_offset); // Only used by EXTRA macro
4494 _res = _Py_Try ( b , ex , el , f , EXTRA );
4495 if (_res == NULL && PyErr_Occurred()) {
4496 p->error_indicator = 1;
4497 D(p->level--);
4498 return NULL;
4499 }
4500 goto done;
4501 }
4502 p->mark = _mark;
4503 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4504 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block except_block+ else_block? finally_block?"));
4505 }
4506 _res = NULL;
4507 done:
4508 D(p->level--);
4509 return _res;
4510}
4511
4512// except_block: 'except' expression ['as' NAME] ':' block | 'except' ':' block
4513static excepthandler_ty
4514except_block_rule(Parser *p)
4515{
4516 D(p->level++);
4517 if (p->error_indicator) {
4518 D(p->level--);
4519 return NULL;
4520 }
4521 excepthandler_ty _res = NULL;
4522 int _mark = p->mark;
4523 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4524 p->error_indicator = 1;
4525 D(p->level--);
4526 return NULL;
4527 }
4528 int _start_lineno = p->tokens[_mark]->lineno;
4529 UNUSED(_start_lineno); // Only used by EXTRA macro
4530 int _start_col_offset = p->tokens[_mark]->col_offset;
4531 UNUSED(_start_col_offset); // Only used by EXTRA macro
4532 { // 'except' expression ['as' NAME] ':' block
4533 if (p->error_indicator) {
4534 D(p->level--);
4535 return NULL;
4536 }
4537 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
4538 Token * _keyword;
4539 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004540 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004541 expr_ty e;
4542 void *t;
4543 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004544 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004545 &&
4546 (e = expression_rule(p)) // expression
4547 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004548 (t = _tmp_49_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004549 &&
4550 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4551 &&
4552 (b = block_rule(p)) // block
4553 )
4554 {
4555 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
4556 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4557 if (_token == NULL) {
4558 D(p->level--);
4559 return NULL;
4560 }
4561 int _end_lineno = _token->end_lineno;
4562 UNUSED(_end_lineno); // Only used by EXTRA macro
4563 int _end_col_offset = _token->end_col_offset;
4564 UNUSED(_end_col_offset); // Only used by EXTRA macro
4565 _res = _Py_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
4566 if (_res == NULL && PyErr_Occurred()) {
4567 p->error_indicator = 1;
4568 D(p->level--);
4569 return NULL;
4570 }
4571 goto done;
4572 }
4573 p->mark = _mark;
4574 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4575 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
4576 }
4577 { // 'except' ':' block
4578 if (p->error_indicator) {
4579 D(p->level--);
4580 return NULL;
4581 }
4582 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
4583 Token * _keyword;
4584 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004585 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004586 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004587 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004588 &&
4589 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4590 &&
4591 (b = block_rule(p)) // block
4592 )
4593 {
4594 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
4595 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4596 if (_token == NULL) {
4597 D(p->level--);
4598 return NULL;
4599 }
4600 int _end_lineno = _token->end_lineno;
4601 UNUSED(_end_lineno); // Only used by EXTRA macro
4602 int _end_col_offset = _token->end_col_offset;
4603 UNUSED(_end_col_offset); // Only used by EXTRA macro
4604 _res = _Py_ExceptHandler ( NULL , NULL , b , EXTRA );
4605 if (_res == NULL && PyErr_Occurred()) {
4606 p->error_indicator = 1;
4607 D(p->level--);
4608 return NULL;
4609 }
4610 goto done;
4611 }
4612 p->mark = _mark;
4613 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4614 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
4615 }
4616 _res = NULL;
4617 done:
4618 D(p->level--);
4619 return _res;
4620}
4621
4622// finally_block: 'finally' ':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01004623static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004624finally_block_rule(Parser *p)
4625{
4626 D(p->level++);
4627 if (p->error_indicator) {
4628 D(p->level--);
4629 return NULL;
4630 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01004631 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004632 int _mark = p->mark;
4633 { // 'finally' ':' block
4634 if (p->error_indicator) {
4635 D(p->level--);
4636 return NULL;
4637 }
4638 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
4639 Token * _keyword;
4640 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004641 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004642 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004643 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004644 &&
4645 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4646 &&
4647 (a = block_rule(p)) // block
4648 )
4649 {
4650 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
4651 _res = a;
4652 if (_res == NULL && PyErr_Occurred()) {
4653 p->error_indicator = 1;
4654 D(p->level--);
4655 return NULL;
4656 }
4657 goto done;
4658 }
4659 p->mark = _mark;
4660 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
4661 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' block"));
4662 }
4663 _res = NULL;
4664 done:
4665 D(p->level--);
4666 return _res;
4667}
4668
4669// return_stmt: 'return' star_expressions?
4670static stmt_ty
4671return_stmt_rule(Parser *p)
4672{
4673 D(p->level++);
4674 if (p->error_indicator) {
4675 D(p->level--);
4676 return NULL;
4677 }
4678 stmt_ty _res = NULL;
4679 int _mark = p->mark;
4680 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4681 p->error_indicator = 1;
4682 D(p->level--);
4683 return NULL;
4684 }
4685 int _start_lineno = p->tokens[_mark]->lineno;
4686 UNUSED(_start_lineno); // Only used by EXTRA macro
4687 int _start_col_offset = p->tokens[_mark]->col_offset;
4688 UNUSED(_start_col_offset); // Only used by EXTRA macro
4689 { // 'return' star_expressions?
4690 if (p->error_indicator) {
4691 D(p->level--);
4692 return NULL;
4693 }
4694 D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
4695 Token * _keyword;
4696 void *a;
4697 if (
4698 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
4699 &&
4700 (a = star_expressions_rule(p), 1) // star_expressions?
4701 )
4702 {
4703 D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
4704 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4705 if (_token == NULL) {
4706 D(p->level--);
4707 return NULL;
4708 }
4709 int _end_lineno = _token->end_lineno;
4710 UNUSED(_end_lineno); // Only used by EXTRA macro
4711 int _end_col_offset = _token->end_col_offset;
4712 UNUSED(_end_col_offset); // Only used by EXTRA macro
4713 _res = _Py_Return ( a , EXTRA );
4714 if (_res == NULL && PyErr_Occurred()) {
4715 p->error_indicator = 1;
4716 D(p->level--);
4717 return NULL;
4718 }
4719 goto done;
4720 }
4721 p->mark = _mark;
4722 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4723 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
4724 }
4725 _res = NULL;
4726 done:
4727 D(p->level--);
4728 return _res;
4729}
4730
4731// raise_stmt: 'raise' expression ['from' expression] | 'raise'
4732static stmt_ty
4733raise_stmt_rule(Parser *p)
4734{
4735 D(p->level++);
4736 if (p->error_indicator) {
4737 D(p->level--);
4738 return NULL;
4739 }
4740 stmt_ty _res = NULL;
4741 int _mark = p->mark;
4742 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4743 p->error_indicator = 1;
4744 D(p->level--);
4745 return NULL;
4746 }
4747 int _start_lineno = p->tokens[_mark]->lineno;
4748 UNUSED(_start_lineno); // Only used by EXTRA macro
4749 int _start_col_offset = p->tokens[_mark]->col_offset;
4750 UNUSED(_start_col_offset); // Only used by EXTRA macro
4751 { // 'raise' expression ['from' expression]
4752 if (p->error_indicator) {
4753 D(p->level--);
4754 return NULL;
4755 }
4756 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
4757 Token * _keyword;
4758 expr_ty a;
4759 void *b;
4760 if (
4761 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
4762 &&
4763 (a = expression_rule(p)) // expression
4764 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004765 (b = _tmp_50_rule(p), 1) // ['from' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004766 )
4767 {
4768 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
4769 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4770 if (_token == NULL) {
4771 D(p->level--);
4772 return NULL;
4773 }
4774 int _end_lineno = _token->end_lineno;
4775 UNUSED(_end_lineno); // Only used by EXTRA macro
4776 int _end_col_offset = _token->end_col_offset;
4777 UNUSED(_end_col_offset); // Only used by EXTRA macro
4778 _res = _Py_Raise ( a , b , EXTRA );
4779 if (_res == NULL && PyErr_Occurred()) {
4780 p->error_indicator = 1;
4781 D(p->level--);
4782 return NULL;
4783 }
4784 goto done;
4785 }
4786 p->mark = _mark;
4787 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4788 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
4789 }
4790 { // 'raise'
4791 if (p->error_indicator) {
4792 D(p->level--);
4793 return NULL;
4794 }
4795 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
4796 Token * _keyword;
4797 if (
4798 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
4799 )
4800 {
4801 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
4802 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4803 if (_token == NULL) {
4804 D(p->level--);
4805 return NULL;
4806 }
4807 int _end_lineno = _token->end_lineno;
4808 UNUSED(_end_lineno); // Only used by EXTRA macro
4809 int _end_col_offset = _token->end_col_offset;
4810 UNUSED(_end_col_offset); // Only used by EXTRA macro
4811 _res = _Py_Raise ( NULL , NULL , EXTRA );
4812 if (_res == NULL && PyErr_Occurred()) {
4813 p->error_indicator = 1;
4814 D(p->level--);
4815 return NULL;
4816 }
4817 goto done;
4818 }
4819 p->mark = _mark;
4820 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
4822 }
4823 _res = NULL;
4824 done:
4825 D(p->level--);
4826 return _res;
4827}
4828
4829// function_def: decorators function_def_raw | function_def_raw
4830static stmt_ty
4831function_def_rule(Parser *p)
4832{
4833 D(p->level++);
4834 if (p->error_indicator) {
4835 D(p->level--);
4836 return NULL;
4837 }
4838 stmt_ty _res = NULL;
4839 int _mark = p->mark;
4840 { // decorators function_def_raw
4841 if (p->error_indicator) {
4842 D(p->level--);
4843 return NULL;
4844 }
4845 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 +01004846 asdl_expr_seq* d;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004847 stmt_ty f;
4848 if (
4849 (d = decorators_rule(p)) // decorators
4850 &&
4851 (f = function_def_raw_rule(p)) // function_def_raw
4852 )
4853 {
4854 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
4855 _res = _PyPegen_function_def_decorators ( p , d , f );
4856 if (_res == NULL && PyErr_Occurred()) {
4857 p->error_indicator = 1;
4858 D(p->level--);
4859 return NULL;
4860 }
4861 goto done;
4862 }
4863 p->mark = _mark;
4864 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
4866 }
4867 { // function_def_raw
4868 if (p->error_indicator) {
4869 D(p->level--);
4870 return NULL;
4871 }
4872 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
4873 stmt_ty function_def_raw_var;
4874 if (
4875 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
4876 )
4877 {
4878 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
4879 _res = function_def_raw_var;
4880 goto done;
4881 }
4882 p->mark = _mark;
4883 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4884 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
4885 }
4886 _res = NULL;
4887 done:
4888 D(p->level--);
4889 return _res;
4890}
4891
4892// function_def_raw:
4893// | 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
4894// | ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
4895static stmt_ty
4896function_def_raw_rule(Parser *p)
4897{
4898 D(p->level++);
4899 if (p->error_indicator) {
4900 D(p->level--);
4901 return NULL;
4902 }
4903 stmt_ty _res = NULL;
4904 int _mark = p->mark;
4905 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4906 p->error_indicator = 1;
4907 D(p->level--);
4908 return NULL;
4909 }
4910 int _start_lineno = p->tokens[_mark]->lineno;
4911 UNUSED(_start_lineno); // Only used by EXTRA macro
4912 int _start_col_offset = p->tokens[_mark]->col_offset;
4913 UNUSED(_start_col_offset); // Only used by EXTRA macro
4914 { // 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
4915 if (p->error_indicator) {
4916 D(p->level--);
4917 return NULL;
4918 }
4919 D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
4920 Token * _keyword;
4921 Token * _literal;
4922 Token * _literal_1;
4923 Token * _literal_2;
4924 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004925 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004926 expr_ty n;
4927 void *params;
4928 void *tc;
4929 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004930 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004931 &&
4932 (n = _PyPegen_name_token(p)) // NAME
4933 &&
4934 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4935 &&
4936 (params = params_rule(p), 1) // params?
4937 &&
4938 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4939 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004940 (a = _tmp_51_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004941 &&
4942 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4943 &&
4944 (tc = func_type_comment_rule(p), 1) // func_type_comment?
4945 &&
4946 (b = block_rule(p)) // block
4947 )
4948 {
4949 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"));
4950 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4951 if (_token == NULL) {
4952 D(p->level--);
4953 return NULL;
4954 }
4955 int _end_lineno = _token->end_lineno;
4956 UNUSED(_end_lineno); // Only used by EXTRA macro
4957 int _end_col_offset = _token->end_col_offset;
4958 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03004959 _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 +01004960 if (_res == NULL && PyErr_Occurred()) {
4961 p->error_indicator = 1;
4962 D(p->level--);
4963 return NULL;
4964 }
4965 goto done;
4966 }
4967 p->mark = _mark;
4968 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
4969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
4970 }
4971 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
4972 if (p->error_indicator) {
4973 D(p->level--);
4974 return NULL;
4975 }
4976 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"));
4977 Token * _keyword;
4978 Token * _literal;
4979 Token * _literal_1;
4980 Token * _literal_2;
4981 void *a;
4982 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004983 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004984 expr_ty n;
4985 void *params;
4986 void *tc;
4987 if (
4988 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4989 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004990 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004991 &&
4992 (n = _PyPegen_name_token(p)) // NAME
4993 &&
4994 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4995 &&
4996 (params = params_rule(p), 1) // params?
4997 &&
4998 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4999 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005000 (a = _tmp_52_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005001 &&
5002 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
5003 &&
5004 (tc = func_type_comment_rule(p), 1) // func_type_comment?
5005 &&
5006 (b = block_rule(p)) // block
5007 )
5008 {
5009 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"));
5010 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5011 if (_token == NULL) {
5012 D(p->level--);
5013 return NULL;
5014 }
5015 int _end_lineno = _token->end_lineno;
5016 UNUSED(_end_lineno); // Only used by EXTRA macro
5017 int _end_col_offset = _token->end_col_offset;
5018 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03005019 _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 +01005020 if (_res == NULL && PyErr_Occurred()) {
5021 p->error_indicator = 1;
5022 D(p->level--);
5023 return NULL;
5024 }
5025 goto done;
5026 }
5027 p->mark = _mark;
5028 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
5029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
5030 }
5031 _res = NULL;
5032 done:
5033 D(p->level--);
5034 return _res;
5035}
5036
5037// func_type_comment:
5038// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
5039// | invalid_double_type_comments
5040// | TYPE_COMMENT
5041static Token*
5042func_type_comment_rule(Parser *p)
5043{
5044 D(p->level++);
5045 if (p->error_indicator) {
5046 D(p->level--);
5047 return NULL;
5048 }
5049 Token* _res = NULL;
5050 int _mark = p->mark;
5051 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
5052 if (p->error_indicator) {
5053 D(p->level--);
5054 return NULL;
5055 }
5056 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
5057 Token * newline_var;
5058 Token * t;
5059 if (
5060 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
5061 &&
5062 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
5063 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005064 _PyPegen_lookahead(1, _tmp_53_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005065 )
5066 {
5067 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
5068 _res = t;
5069 if (_res == NULL && PyErr_Occurred()) {
5070 p->error_indicator = 1;
5071 D(p->level--);
5072 return NULL;
5073 }
5074 goto done;
5075 }
5076 p->mark = _mark;
5077 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5078 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
5079 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02005080 if (p->call_invalid_rules) { // invalid_double_type_comments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005081 if (p->error_indicator) {
5082 D(p->level--);
5083 return NULL;
5084 }
5085 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
5086 void *invalid_double_type_comments_var;
5087 if (
5088 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
5089 )
5090 {
5091 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
5092 _res = invalid_double_type_comments_var;
5093 goto done;
5094 }
5095 p->mark = _mark;
5096 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5097 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
5098 }
5099 { // TYPE_COMMENT
5100 if (p->error_indicator) {
5101 D(p->level--);
5102 return NULL;
5103 }
5104 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
5105 Token * type_comment_var;
5106 if (
5107 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
5108 )
5109 {
5110 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
5111 _res = type_comment_var;
5112 goto done;
5113 }
5114 p->mark = _mark;
5115 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
5116 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
5117 }
5118 _res = NULL;
5119 done:
5120 D(p->level--);
5121 return _res;
5122}
5123
5124// params: invalid_parameters | parameters
5125static arguments_ty
5126params_rule(Parser *p)
5127{
5128 D(p->level++);
5129 if (p->error_indicator) {
5130 D(p->level--);
5131 return NULL;
5132 }
5133 arguments_ty _res = NULL;
5134 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02005135 if (p->call_invalid_rules) { // invalid_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005136 if (p->error_indicator) {
5137 D(p->level--);
5138 return NULL;
5139 }
5140 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
5141 void *invalid_parameters_var;
5142 if (
5143 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
5144 )
5145 {
5146 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
5147 _res = invalid_parameters_var;
5148 goto done;
5149 }
5150 p->mark = _mark;
5151 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
5152 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
5153 }
5154 { // parameters
5155 if (p->error_indicator) {
5156 D(p->level--);
5157 return NULL;
5158 }
5159 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
5160 arguments_ty parameters_var;
5161 if (
5162 (parameters_var = parameters_rule(p)) // parameters
5163 )
5164 {
5165 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
5166 _res = parameters_var;
5167 goto done;
5168 }
5169 p->mark = _mark;
5170 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
5171 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
5172 }
5173 _res = NULL;
5174 done:
5175 D(p->level--);
5176 return _res;
5177}
5178
5179// parameters:
5180// | slash_no_default param_no_default* param_with_default* star_etc?
5181// | slash_with_default param_with_default* star_etc?
5182// | param_no_default+ param_with_default* star_etc?
5183// | param_with_default+ star_etc?
5184// | star_etc
5185static arguments_ty
5186parameters_rule(Parser *p)
5187{
5188 D(p->level++);
5189 if (p->error_indicator) {
5190 D(p->level--);
5191 return NULL;
5192 }
5193 arguments_ty _res = NULL;
5194 int _mark = p->mark;
5195 { // slash_no_default param_no_default* param_with_default* star_etc?
5196 if (p->error_indicator) {
5197 D(p->level--);
5198 return NULL;
5199 }
5200 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 +01005201 asdl_arg_seq* a;
5202 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005203 asdl_seq * c;
5204 void *d;
5205 if (
5206 (a = slash_no_default_rule(p)) // slash_no_default
5207 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01005208 (b = (asdl_arg_seq*)_loop0_54_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005209 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005210 (c = _loop0_55_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005211 &&
5212 (d = star_etc_rule(p), 1) // star_etc?
5213 )
5214 {
5215 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?"));
5216 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
5217 if (_res == NULL && PyErr_Occurred()) {
5218 p->error_indicator = 1;
5219 D(p->level--);
5220 return NULL;
5221 }
5222 goto done;
5223 }
5224 p->mark = _mark;
5225 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5226 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
5227 }
5228 { // slash_with_default param_with_default* star_etc?
5229 if (p->error_indicator) {
5230 D(p->level--);
5231 return NULL;
5232 }
5233 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
5234 SlashWithDefault* a;
5235 asdl_seq * b;
5236 void *c;
5237 if (
5238 (a = slash_with_default_rule(p)) // slash_with_default
5239 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005240 (b = _loop0_56_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005241 &&
5242 (c = star_etc_rule(p), 1) // star_etc?
5243 )
5244 {
5245 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
5246 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
5247 if (_res == NULL && PyErr_Occurred()) {
5248 p->error_indicator = 1;
5249 D(p->level--);
5250 return NULL;
5251 }
5252 goto done;
5253 }
5254 p->mark = _mark;
5255 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5256 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
5257 }
5258 { // param_no_default+ param_with_default* star_etc?
5259 if (p->error_indicator) {
5260 D(p->level--);
5261 return NULL;
5262 }
5263 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 +01005264 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005265 asdl_seq * b;
5266 void *c;
5267 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01005268 (a = (asdl_arg_seq*)_loop1_57_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005269 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005270 (b = _loop0_58_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005271 &&
5272 (c = star_etc_rule(p), 1) // star_etc?
5273 )
5274 {
5275 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
5276 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
5277 if (_res == NULL && PyErr_Occurred()) {
5278 p->error_indicator = 1;
5279 D(p->level--);
5280 return NULL;
5281 }
5282 goto done;
5283 }
5284 p->mark = _mark;
5285 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5286 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
5287 }
5288 { // param_with_default+ star_etc?
5289 if (p->error_indicator) {
5290 D(p->level--);
5291 return NULL;
5292 }
5293 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
5294 asdl_seq * a;
5295 void *b;
5296 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005297 (a = _loop1_59_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005298 &&
5299 (b = star_etc_rule(p), 1) // star_etc?
5300 )
5301 {
5302 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
5303 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
5304 if (_res == NULL && PyErr_Occurred()) {
5305 p->error_indicator = 1;
5306 D(p->level--);
5307 return NULL;
5308 }
5309 goto done;
5310 }
5311 p->mark = _mark;
5312 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5313 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
5314 }
5315 { // star_etc
5316 if (p->error_indicator) {
5317 D(p->level--);
5318 return NULL;
5319 }
5320 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
5321 StarEtc* a;
5322 if (
5323 (a = star_etc_rule(p)) // star_etc
5324 )
5325 {
5326 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
5327 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
5328 if (_res == NULL && PyErr_Occurred()) {
5329 p->error_indicator = 1;
5330 D(p->level--);
5331 return NULL;
5332 }
5333 goto done;
5334 }
5335 p->mark = _mark;
5336 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5337 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
5338 }
5339 _res = NULL;
5340 done:
5341 D(p->level--);
5342 return _res;
5343}
5344
5345// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoa5634c42020-09-16 19:42:00 +01005346static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005347slash_no_default_rule(Parser *p)
5348{
5349 D(p->level++);
5350 if (p->error_indicator) {
5351 D(p->level--);
5352 return NULL;
5353 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01005354 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005355 int _mark = p->mark;
5356 { // param_no_default+ '/' ','
5357 if (p->error_indicator) {
5358 D(p->level--);
5359 return NULL;
5360 }
5361 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
5362 Token * _literal;
5363 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005364 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005365 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01005366 (a = (asdl_arg_seq*)_loop1_60_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005367 &&
5368 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
5369 &&
5370 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
5371 )
5372 {
5373 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
5374 _res = a;
5375 if (_res == NULL && PyErr_Occurred()) {
5376 p->error_indicator = 1;
5377 D(p->level--);
5378 return NULL;
5379 }
5380 goto done;
5381 }
5382 p->mark = _mark;
5383 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5384 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
5385 }
5386 { // param_no_default+ '/' &')'
5387 if (p->error_indicator) {
5388 D(p->level--);
5389 return NULL;
5390 }
5391 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
5392 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005393 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005394 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01005395 (a = (asdl_arg_seq*)_loop1_61_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005396 &&
5397 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
5398 &&
5399 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5400 )
5401 {
5402 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
5403 _res = a;
5404 if (_res == NULL && PyErr_Occurred()) {
5405 p->error_indicator = 1;
5406 D(p->level--);
5407 return NULL;
5408 }
5409 goto done;
5410 }
5411 p->mark = _mark;
5412 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5413 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
5414 }
5415 _res = NULL;
5416 done:
5417 D(p->level--);
5418 return _res;
5419}
5420
5421// slash_with_default:
5422// | param_no_default* param_with_default+ '/' ','
5423// | param_no_default* param_with_default+ '/' &')'
5424static SlashWithDefault*
5425slash_with_default_rule(Parser *p)
5426{
5427 D(p->level++);
5428 if (p->error_indicator) {
5429 D(p->level--);
5430 return NULL;
5431 }
5432 SlashWithDefault* _res = NULL;
5433 int _mark = p->mark;
5434 { // param_no_default* param_with_default+ '/' ','
5435 if (p->error_indicator) {
5436 D(p->level--);
5437 return NULL;
5438 }
5439 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
5440 Token * _literal;
5441 Token * _literal_1;
5442 asdl_seq * a;
5443 asdl_seq * b;
5444 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005445 (a = _loop0_62_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005446 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005447 (b = _loop1_63_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005448 &&
5449 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
5450 &&
5451 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
5452 )
5453 {
5454 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 +01005455 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005456 if (_res == NULL && PyErr_Occurred()) {
5457 p->error_indicator = 1;
5458 D(p->level--);
5459 return NULL;
5460 }
5461 goto done;
5462 }
5463 p->mark = _mark;
5464 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5465 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
5466 }
5467 { // param_no_default* param_with_default+ '/' &')'
5468 if (p->error_indicator) {
5469 D(p->level--);
5470 return NULL;
5471 }
5472 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
5473 Token * _literal;
5474 asdl_seq * a;
5475 asdl_seq * b;
5476 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005477 (a = _loop0_64_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005478 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005479 (b = _loop1_65_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005480 &&
5481 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
5482 &&
5483 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5484 )
5485 {
5486 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 +01005487 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005488 if (_res == NULL && PyErr_Occurred()) {
5489 p->error_indicator = 1;
5490 D(p->level--);
5491 return NULL;
5492 }
5493 goto done;
5494 }
5495 p->mark = _mark;
5496 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5497 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
5498 }
5499 _res = NULL;
5500 done:
5501 D(p->level--);
5502 return _res;
5503}
5504
5505// star_etc:
5506// | '*' param_no_default param_maybe_default* kwds?
5507// | '*' ',' param_maybe_default+ kwds?
5508// | kwds
5509// | invalid_star_etc
5510static StarEtc*
5511star_etc_rule(Parser *p)
5512{
5513 D(p->level++);
5514 if (p->error_indicator) {
5515 D(p->level--);
5516 return NULL;
5517 }
5518 StarEtc* _res = NULL;
5519 int _mark = p->mark;
5520 { // '*' param_no_default param_maybe_default* kwds?
5521 if (p->error_indicator) {
5522 D(p->level--);
5523 return NULL;
5524 }
5525 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
5526 Token * _literal;
5527 arg_ty a;
5528 asdl_seq * b;
5529 void *c;
5530 if (
5531 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
5532 &&
5533 (a = param_no_default_rule(p)) // param_no_default
5534 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005535 (b = _loop0_66_rule(p)) // param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005536 &&
5537 (c = kwds_rule(p), 1) // kwds?
5538 )
5539 {
5540 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
5541 _res = _PyPegen_star_etc ( p , a , b , c );
5542 if (_res == NULL && PyErr_Occurred()) {
5543 p->error_indicator = 1;
5544 D(p->level--);
5545 return NULL;
5546 }
5547 goto done;
5548 }
5549 p->mark = _mark;
5550 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
5552 }
5553 { // '*' ',' param_maybe_default+ kwds?
5554 if (p->error_indicator) {
5555 D(p->level--);
5556 return NULL;
5557 }
5558 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
5559 Token * _literal;
5560 Token * _literal_1;
5561 asdl_seq * b;
5562 void *c;
5563 if (
5564 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
5565 &&
5566 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
5567 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005568 (b = _loop1_67_rule(p)) // param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005569 &&
5570 (c = kwds_rule(p), 1) // kwds?
5571 )
5572 {
5573 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
5574 _res = _PyPegen_star_etc ( p , NULL , b , c );
5575 if (_res == NULL && PyErr_Occurred()) {
5576 p->error_indicator = 1;
5577 D(p->level--);
5578 return NULL;
5579 }
5580 goto done;
5581 }
5582 p->mark = _mark;
5583 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
5585 }
5586 { // kwds
5587 if (p->error_indicator) {
5588 D(p->level--);
5589 return NULL;
5590 }
5591 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
5592 arg_ty a;
5593 if (
5594 (a = kwds_rule(p)) // kwds
5595 )
5596 {
5597 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
5598 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
5599 if (_res == NULL && PyErr_Occurred()) {
5600 p->error_indicator = 1;
5601 D(p->level--);
5602 return NULL;
5603 }
5604 goto done;
5605 }
5606 p->mark = _mark;
5607 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5608 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
5609 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02005610 if (p->call_invalid_rules) { // invalid_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005611 if (p->error_indicator) {
5612 D(p->level--);
5613 return NULL;
5614 }
5615 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
5616 void *invalid_star_etc_var;
5617 if (
5618 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
5619 )
5620 {
5621 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
5622 _res = invalid_star_etc_var;
5623 goto done;
5624 }
5625 p->mark = _mark;
5626 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5627 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
5628 }
5629 _res = NULL;
5630 done:
5631 D(p->level--);
5632 return _res;
5633}
5634
5635// kwds: '**' param_no_default
5636static arg_ty
5637kwds_rule(Parser *p)
5638{
5639 D(p->level++);
5640 if (p->error_indicator) {
5641 D(p->level--);
5642 return NULL;
5643 }
5644 arg_ty _res = NULL;
5645 int _mark = p->mark;
5646 { // '**' param_no_default
5647 if (p->error_indicator) {
5648 D(p->level--);
5649 return NULL;
5650 }
5651 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
5652 Token * _literal;
5653 arg_ty a;
5654 if (
5655 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
5656 &&
5657 (a = param_no_default_rule(p)) // param_no_default
5658 )
5659 {
5660 D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
5661 _res = a;
5662 if (_res == NULL && PyErr_Occurred()) {
5663 p->error_indicator = 1;
5664 D(p->level--);
5665 return NULL;
5666 }
5667 goto done;
5668 }
5669 p->mark = _mark;
5670 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
5671 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
5672 }
5673 _res = NULL;
5674 done:
5675 D(p->level--);
5676 return _res;
5677}
5678
5679// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
5680static arg_ty
5681param_no_default_rule(Parser *p)
5682{
5683 D(p->level++);
5684 if (p->error_indicator) {
5685 D(p->level--);
5686 return NULL;
5687 }
5688 arg_ty _res = NULL;
5689 int _mark = p->mark;
5690 { // param ',' TYPE_COMMENT?
5691 if (p->error_indicator) {
5692 D(p->level--);
5693 return NULL;
5694 }
5695 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
5696 Token * _literal;
5697 arg_ty a;
5698 void *tc;
5699 if (
5700 (a = param_rule(p)) // param
5701 &&
5702 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5703 &&
5704 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5705 )
5706 {
5707 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
5708 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5709 if (_res == NULL && PyErr_Occurred()) {
5710 p->error_indicator = 1;
5711 D(p->level--);
5712 return NULL;
5713 }
5714 goto done;
5715 }
5716 p->mark = _mark;
5717 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5718 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
5719 }
5720 { // param TYPE_COMMENT? &')'
5721 if (p->error_indicator) {
5722 D(p->level--);
5723 return NULL;
5724 }
5725 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
5726 arg_ty a;
5727 void *tc;
5728 if (
5729 (a = param_rule(p)) // param
5730 &&
5731 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5732 &&
5733 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5734 )
5735 {
5736 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
5737 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5738 if (_res == NULL && PyErr_Occurred()) {
5739 p->error_indicator = 1;
5740 D(p->level--);
5741 return NULL;
5742 }
5743 goto done;
5744 }
5745 p->mark = _mark;
5746 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
5748 }
5749 _res = NULL;
5750 done:
5751 D(p->level--);
5752 return _res;
5753}
5754
5755// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
5756static NameDefaultPair*
5757param_with_default_rule(Parser *p)
5758{
5759 D(p->level++);
5760 if (p->error_indicator) {
5761 D(p->level--);
5762 return NULL;
5763 }
5764 NameDefaultPair* _res = NULL;
5765 int _mark = p->mark;
5766 { // param default ',' TYPE_COMMENT?
5767 if (p->error_indicator) {
5768 D(p->level--);
5769 return NULL;
5770 }
5771 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
5772 Token * _literal;
5773 arg_ty a;
5774 expr_ty c;
5775 void *tc;
5776 if (
5777 (a = param_rule(p)) // param
5778 &&
5779 (c = default_rule(p)) // default
5780 &&
5781 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5782 &&
5783 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5784 )
5785 {
5786 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
5787 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5788 if (_res == NULL && PyErr_Occurred()) {
5789 p->error_indicator = 1;
5790 D(p->level--);
5791 return NULL;
5792 }
5793 goto done;
5794 }
5795 p->mark = _mark;
5796 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5797 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
5798 }
5799 { // param default TYPE_COMMENT? &')'
5800 if (p->error_indicator) {
5801 D(p->level--);
5802 return NULL;
5803 }
5804 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
5805 arg_ty a;
5806 expr_ty c;
5807 void *tc;
5808 if (
5809 (a = param_rule(p)) // param
5810 &&
5811 (c = default_rule(p)) // default
5812 &&
5813 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5814 &&
5815 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5816 )
5817 {
5818 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
5819 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5820 if (_res == NULL && PyErr_Occurred()) {
5821 p->error_indicator = 1;
5822 D(p->level--);
5823 return NULL;
5824 }
5825 goto done;
5826 }
5827 p->mark = _mark;
5828 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5829 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
5830 }
5831 _res = NULL;
5832 done:
5833 D(p->level--);
5834 return _res;
5835}
5836
5837// param_maybe_default:
5838// | param default? ',' TYPE_COMMENT?
5839// | param default? TYPE_COMMENT? &')'
5840static NameDefaultPair*
5841param_maybe_default_rule(Parser *p)
5842{
5843 D(p->level++);
5844 if (p->error_indicator) {
5845 D(p->level--);
5846 return NULL;
5847 }
5848 NameDefaultPair* _res = NULL;
5849 int _mark = p->mark;
5850 { // param default? ',' TYPE_COMMENT?
5851 if (p->error_indicator) {
5852 D(p->level--);
5853 return NULL;
5854 }
5855 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
5856 Token * _literal;
5857 arg_ty a;
5858 void *c;
5859 void *tc;
5860 if (
5861 (a = param_rule(p)) // param
5862 &&
5863 (c = default_rule(p), 1) // default?
5864 &&
5865 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5866 &&
5867 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5868 )
5869 {
5870 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
5871 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5872 if (_res == NULL && PyErr_Occurred()) {
5873 p->error_indicator = 1;
5874 D(p->level--);
5875 return NULL;
5876 }
5877 goto done;
5878 }
5879 p->mark = _mark;
5880 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5881 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
5882 }
5883 { // param default? TYPE_COMMENT? &')'
5884 if (p->error_indicator) {
5885 D(p->level--);
5886 return NULL;
5887 }
5888 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
5889 arg_ty a;
5890 void *c;
5891 void *tc;
5892 if (
5893 (a = param_rule(p)) // param
5894 &&
5895 (c = default_rule(p), 1) // default?
5896 &&
5897 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
5898 &&
5899 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
5900 )
5901 {
5902 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
5903 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5904 if (_res == NULL && PyErr_Occurred()) {
5905 p->error_indicator = 1;
5906 D(p->level--);
5907 return NULL;
5908 }
5909 goto done;
5910 }
5911 p->mark = _mark;
5912 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5913 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
5914 }
5915 _res = NULL;
5916 done:
5917 D(p->level--);
5918 return _res;
5919}
5920
5921// param: NAME annotation?
5922static arg_ty
5923param_rule(Parser *p)
5924{
5925 D(p->level++);
5926 if (p->error_indicator) {
5927 D(p->level--);
5928 return NULL;
5929 }
5930 arg_ty _res = NULL;
5931 int _mark = p->mark;
5932 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5933 p->error_indicator = 1;
5934 D(p->level--);
5935 return NULL;
5936 }
5937 int _start_lineno = p->tokens[_mark]->lineno;
5938 UNUSED(_start_lineno); // Only used by EXTRA macro
5939 int _start_col_offset = p->tokens[_mark]->col_offset;
5940 UNUSED(_start_col_offset); // Only used by EXTRA macro
5941 { // NAME annotation?
5942 if (p->error_indicator) {
5943 D(p->level--);
5944 return NULL;
5945 }
5946 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
5947 expr_ty a;
5948 void *b;
5949 if (
5950 (a = _PyPegen_name_token(p)) // NAME
5951 &&
5952 (b = annotation_rule(p), 1) // annotation?
5953 )
5954 {
5955 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
5956 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5957 if (_token == NULL) {
5958 D(p->level--);
5959 return NULL;
5960 }
5961 int _end_lineno = _token->end_lineno;
5962 UNUSED(_end_lineno); // Only used by EXTRA macro
5963 int _end_col_offset = _token->end_col_offset;
5964 UNUSED(_end_col_offset); // Only used by EXTRA macro
5965 _res = _Py_arg ( a -> v . Name . id , b , NULL , EXTRA );
5966 if (_res == NULL && PyErr_Occurred()) {
5967 p->error_indicator = 1;
5968 D(p->level--);
5969 return NULL;
5970 }
5971 goto done;
5972 }
5973 p->mark = _mark;
5974 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
5975 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
5976 }
5977 _res = NULL;
5978 done:
5979 D(p->level--);
5980 return _res;
5981}
5982
5983// annotation: ':' expression
5984static expr_ty
5985annotation_rule(Parser *p)
5986{
5987 D(p->level++);
5988 if (p->error_indicator) {
5989 D(p->level--);
5990 return NULL;
5991 }
5992 expr_ty _res = NULL;
5993 int _mark = p->mark;
5994 { // ':' expression
5995 if (p->error_indicator) {
5996 D(p->level--);
5997 return NULL;
5998 }
5999 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
6000 Token * _literal;
6001 expr_ty a;
6002 if (
6003 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
6004 &&
6005 (a = expression_rule(p)) // expression
6006 )
6007 {
6008 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
6009 _res = a;
6010 if (_res == NULL && PyErr_Occurred()) {
6011 p->error_indicator = 1;
6012 D(p->level--);
6013 return NULL;
6014 }
6015 goto done;
6016 }
6017 p->mark = _mark;
6018 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
6019 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
6020 }
6021 _res = NULL;
6022 done:
6023 D(p->level--);
6024 return _res;
6025}
6026
6027// default: '=' expression
6028static expr_ty
6029default_rule(Parser *p)
6030{
6031 D(p->level++);
6032 if (p->error_indicator) {
6033 D(p->level--);
6034 return NULL;
6035 }
6036 expr_ty _res = NULL;
6037 int _mark = p->mark;
6038 { // '=' expression
6039 if (p->error_indicator) {
6040 D(p->level--);
6041 return NULL;
6042 }
6043 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
6044 Token * _literal;
6045 expr_ty a;
6046 if (
6047 (_literal = _PyPegen_expect_token(p, 22)) // token='='
6048 &&
6049 (a = expression_rule(p)) // expression
6050 )
6051 {
6052 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
6053 _res = a;
6054 if (_res == NULL && PyErr_Occurred()) {
6055 p->error_indicator = 1;
6056 D(p->level--);
6057 return NULL;
6058 }
6059 goto done;
6060 }
6061 p->mark = _mark;
6062 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
6063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
6064 }
6065 _res = NULL;
6066 done:
6067 D(p->level--);
6068 return _res;
6069}
6070
6071// decorators: (('@' named_expression NEWLINE))+
Pablo Galindoa5634c42020-09-16 19:42:00 +01006072static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006073decorators_rule(Parser *p)
6074{
6075 D(p->level++);
6076 if (p->error_indicator) {
6077 D(p->level--);
6078 return NULL;
6079 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01006080 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006081 int _mark = p->mark;
6082 { // (('@' named_expression NEWLINE))+
6083 if (p->error_indicator) {
6084 D(p->level--);
6085 return NULL;
6086 }
6087 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01006088 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006089 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01006090 (a = (asdl_expr_seq*)_loop1_68_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006091 )
6092 {
6093 D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
6094 _res = a;
6095 if (_res == NULL && PyErr_Occurred()) {
6096 p->error_indicator = 1;
6097 D(p->level--);
6098 return NULL;
6099 }
6100 goto done;
6101 }
6102 p->mark = _mark;
6103 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
6104 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
6105 }
6106 _res = NULL;
6107 done:
6108 D(p->level--);
6109 return _res;
6110}
6111
6112// class_def: decorators class_def_raw | class_def_raw
6113static stmt_ty
6114class_def_rule(Parser *p)
6115{
6116 D(p->level++);
6117 if (p->error_indicator) {
6118 D(p->level--);
6119 return NULL;
6120 }
6121 stmt_ty _res = NULL;
6122 int _mark = p->mark;
6123 { // decorators class_def_raw
6124 if (p->error_indicator) {
6125 D(p->level--);
6126 return NULL;
6127 }
6128 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 +01006129 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006130 stmt_ty b;
6131 if (
6132 (a = decorators_rule(p)) // decorators
6133 &&
6134 (b = class_def_raw_rule(p)) // class_def_raw
6135 )
6136 {
6137 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
6138 _res = _PyPegen_class_def_decorators ( p , a , b );
6139 if (_res == NULL && PyErr_Occurred()) {
6140 p->error_indicator = 1;
6141 D(p->level--);
6142 return NULL;
6143 }
6144 goto done;
6145 }
6146 p->mark = _mark;
6147 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
6148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
6149 }
6150 { // class_def_raw
6151 if (p->error_indicator) {
6152 D(p->level--);
6153 return NULL;
6154 }
6155 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
6156 stmt_ty class_def_raw_var;
6157 if (
6158 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
6159 )
6160 {
6161 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
6162 _res = class_def_raw_var;
6163 goto done;
6164 }
6165 p->mark = _mark;
6166 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
6167 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
6168 }
6169 _res = NULL;
6170 done:
6171 D(p->level--);
6172 return _res;
6173}
6174
6175// class_def_raw: 'class' NAME ['(' arguments? ')'] ':' block
6176static stmt_ty
6177class_def_raw_rule(Parser *p)
6178{
6179 D(p->level++);
6180 if (p->error_indicator) {
6181 D(p->level--);
6182 return NULL;
6183 }
6184 stmt_ty _res = NULL;
6185 int _mark = p->mark;
6186 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6187 p->error_indicator = 1;
6188 D(p->level--);
6189 return NULL;
6190 }
6191 int _start_lineno = p->tokens[_mark]->lineno;
6192 UNUSED(_start_lineno); // Only used by EXTRA macro
6193 int _start_col_offset = p->tokens[_mark]->col_offset;
6194 UNUSED(_start_col_offset); // Only used by EXTRA macro
6195 { // 'class' NAME ['(' arguments? ')'] ':' block
6196 if (p->error_indicator) {
6197 D(p->level--);
6198 return NULL;
6199 }
6200 D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
6201 Token * _keyword;
6202 Token * _literal;
6203 expr_ty a;
6204 void *b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01006205 asdl_stmt_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006206 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006207 (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006208 &&
6209 (a = _PyPegen_name_token(p)) // NAME
6210 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006211 (b = _tmp_69_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006212 &&
6213 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
6214 &&
6215 (c = block_rule(p)) // block
6216 )
6217 {
6218 D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
6219 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6220 if (_token == NULL) {
6221 D(p->level--);
6222 return NULL;
6223 }
6224 int _end_lineno = _token->end_lineno;
6225 UNUSED(_end_lineno); // Only used by EXTRA macro
6226 int _end_col_offset = _token->end_col_offset;
6227 UNUSED(_end_col_offset); // Only used by EXTRA macro
6228 _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 );
6229 if (_res == NULL && PyErr_Occurred()) {
6230 p->error_indicator = 1;
6231 D(p->level--);
6232 return NULL;
6233 }
6234 goto done;
6235 }
6236 p->mark = _mark;
6237 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
6238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
6239 }
6240 _res = NULL;
6241 done:
6242 D(p->level--);
6243 return _res;
6244}
6245
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006246// block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block
Pablo Galindoa5634c42020-09-16 19:42:00 +01006247static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006248block_rule(Parser *p)
6249{
6250 D(p->level++);
6251 if (p->error_indicator) {
6252 D(p->level--);
6253 return NULL;
6254 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01006255 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006256 if (_PyPegen_is_memoized(p, block_type, &_res)) {
6257 D(p->level--);
6258 return _res;
6259 }
6260 int _mark = p->mark;
6261 { // NEWLINE INDENT statements DEDENT
6262 if (p->error_indicator) {
6263 D(p->level--);
6264 return NULL;
6265 }
6266 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 +01006267 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006268 Token * dedent_var;
6269 Token * indent_var;
6270 Token * newline_var;
6271 if (
6272 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
6273 &&
6274 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
6275 &&
6276 (a = statements_rule(p)) // statements
6277 &&
6278 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
6279 )
6280 {
6281 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
6282 _res = a;
6283 if (_res == NULL && PyErr_Occurred()) {
6284 p->error_indicator = 1;
6285 D(p->level--);
6286 return NULL;
6287 }
6288 goto done;
6289 }
6290 p->mark = _mark;
6291 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6292 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
6293 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006294 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006295 if (p->error_indicator) {
6296 D(p->level--);
6297 return NULL;
6298 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006299 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
6300 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006301 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006302 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006303 )
6304 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006305 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
6306 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006307 goto done;
6308 }
6309 p->mark = _mark;
6310 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00006311 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006312 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02006313 if (p->call_invalid_rules) { // invalid_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006314 if (p->error_indicator) {
6315 D(p->level--);
6316 return NULL;
6317 }
6318 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
6319 void *invalid_block_var;
6320 if (
6321 (invalid_block_var = invalid_block_rule(p)) // invalid_block
6322 )
6323 {
6324 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
6325 _res = invalid_block_var;
6326 goto done;
6327 }
6328 p->mark = _mark;
6329 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6330 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
6331 }
6332 _res = NULL;
6333 done:
6334 _PyPegen_insert_memo(p, _mark, block_type, _res);
6335 D(p->level--);
6336 return _res;
6337}
6338
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006339// star_expressions:
6340// | star_expression ((',' star_expression))+ ','?
6341// | star_expression ','
6342// | star_expression
6343static expr_ty
6344star_expressions_rule(Parser *p)
6345{
6346 D(p->level++);
6347 if (p->error_indicator) {
6348 D(p->level--);
6349 return NULL;
6350 }
6351 expr_ty _res = NULL;
6352 int _mark = p->mark;
6353 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6354 p->error_indicator = 1;
6355 D(p->level--);
6356 return NULL;
6357 }
6358 int _start_lineno = p->tokens[_mark]->lineno;
6359 UNUSED(_start_lineno); // Only used by EXTRA macro
6360 int _start_col_offset = p->tokens[_mark]->col_offset;
6361 UNUSED(_start_col_offset); // Only used by EXTRA macro
6362 { // star_expression ((',' star_expression))+ ','?
6363 if (p->error_indicator) {
6364 D(p->level--);
6365 return NULL;
6366 }
6367 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
6368 void *_opt_var;
6369 UNUSED(_opt_var); // Silence compiler warnings
6370 expr_ty a;
6371 asdl_seq * b;
6372 if (
6373 (a = star_expression_rule(p)) // star_expression
6374 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00006375 (b = _loop1_70_rule(p)) // ((',' star_expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006376 &&
6377 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6378 )
6379 {
6380 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
6381 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6382 if (_token == NULL) {
6383 D(p->level--);
6384 return NULL;
6385 }
6386 int _end_lineno = _token->end_lineno;
6387 UNUSED(_end_lineno); // Only used by EXTRA macro
6388 int _end_col_offset = _token->end_col_offset;
6389 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03006390 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006391 if (_res == NULL && PyErr_Occurred()) {
6392 p->error_indicator = 1;
6393 D(p->level--);
6394 return NULL;
6395 }
6396 goto done;
6397 }
6398 p->mark = _mark;
6399 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6400 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
6401 }
6402 { // star_expression ','
6403 if (p->error_indicator) {
6404 D(p->level--);
6405 return NULL;
6406 }
6407 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
6408 Token * _literal;
6409 expr_ty a;
6410 if (
6411 (a = star_expression_rule(p)) // star_expression
6412 &&
6413 (_literal = _PyPegen_expect_token(p, 12)) // token=','
6414 )
6415 {
6416 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
6417 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6418 if (_token == NULL) {
6419 D(p->level--);
6420 return NULL;
6421 }
6422 int _end_lineno = _token->end_lineno;
6423 UNUSED(_end_lineno); // Only used by EXTRA macro
6424 int _end_col_offset = _token->end_col_offset;
6425 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03006426 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006427 if (_res == NULL && PyErr_Occurred()) {
6428 p->error_indicator = 1;
6429 D(p->level--);
6430 return NULL;
6431 }
6432 goto done;
6433 }
6434 p->mark = _mark;
6435 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6436 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
6437 }
6438 { // star_expression
6439 if (p->error_indicator) {
6440 D(p->level--);
6441 return NULL;
6442 }
6443 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
6444 expr_ty star_expression_var;
6445 if (
6446 (star_expression_var = star_expression_rule(p)) // star_expression
6447 )
6448 {
6449 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
6450 _res = star_expression_var;
6451 goto done;
6452 }
6453 p->mark = _mark;
6454 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6455 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
6456 }
6457 _res = NULL;
6458 done:
6459 D(p->level--);
6460 return _res;
6461}
6462
6463// star_expression: '*' bitwise_or | expression
6464static expr_ty
6465star_expression_rule(Parser *p)
6466{
6467 D(p->level++);
6468 if (p->error_indicator) {
6469 D(p->level--);
6470 return NULL;
6471 }
6472 expr_ty _res = NULL;
6473 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
6474 D(p->level--);
6475 return _res;
6476 }
6477 int _mark = p->mark;
6478 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6479 p->error_indicator = 1;
6480 D(p->level--);
6481 return NULL;
6482 }
6483 int _start_lineno = p->tokens[_mark]->lineno;
6484 UNUSED(_start_lineno); // Only used by EXTRA macro
6485 int _start_col_offset = p->tokens[_mark]->col_offset;
6486 UNUSED(_start_col_offset); // Only used by EXTRA macro
6487 { // '*' bitwise_or
6488 if (p->error_indicator) {
6489 D(p->level--);
6490 return NULL;
6491 }
6492 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
6493 Token * _literal;
6494 expr_ty a;
6495 if (
6496 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
6497 &&
6498 (a = bitwise_or_rule(p)) // bitwise_or
6499 )
6500 {
6501 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
6502 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6503 if (_token == NULL) {
6504 D(p->level--);
6505 return NULL;
6506 }
6507 int _end_lineno = _token->end_lineno;
6508 UNUSED(_end_lineno); // Only used by EXTRA macro
6509 int _end_col_offset = _token->end_col_offset;
6510 UNUSED(_end_col_offset); // Only used by EXTRA macro
6511 _res = _Py_Starred ( a , Load , EXTRA );
6512 if (_res == NULL && PyErr_Occurred()) {
6513 p->error_indicator = 1;
6514 D(p->level--);
6515 return NULL;
6516 }
6517 goto done;
6518 }
6519 p->mark = _mark;
6520 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
6521 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
6522 }
6523 { // expression
6524 if (p->error_indicator) {
6525 D(p->level--);
6526 return NULL;
6527 }
6528 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
6529 expr_ty expression_var;
6530 if (
6531 (expression_var = expression_rule(p)) // expression
6532 )
6533 {
6534 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
6535 _res = expression_var;
6536 goto done;
6537 }
6538 p->mark = _mark;
6539 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
6540 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
6541 }
6542 _res = NULL;
6543 done:
6544 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
6545 D(p->level--);
6546 return _res;
6547}
6548
6549// star_named_expressions: ','.star_named_expression+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +01006550static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006551star_named_expressions_rule(Parser *p)
6552{
6553 D(p->level++);
6554 if (p->error_indicator) {
6555 D(p->level--);
6556 return NULL;
6557 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01006558 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006559 int _mark = p->mark;
6560 { // ','.star_named_expression+ ','?
6561 if (p->error_indicator) {
6562 D(p->level--);
6563 return NULL;
6564 }
6565 D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
6566 void *_opt_var;
6567 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01006568 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006569 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00006570 (a = (asdl_expr_seq*)_gather_71_rule(p)) // ','.star_named_expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006571 &&
6572 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6573 )
6574 {
6575 D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
6576 _res = a;
6577 if (_res == NULL && PyErr_Occurred()) {
6578 p->error_indicator = 1;
6579 D(p->level--);
6580 return NULL;
6581 }
6582 goto done;
6583 }
6584 p->mark = _mark;
6585 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6586 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
6587 }
6588 _res = NULL;
6589 done:
6590 D(p->level--);
6591 return _res;
6592}
6593
6594// star_named_expression: '*' bitwise_or | named_expression
6595static expr_ty
6596star_named_expression_rule(Parser *p)
6597{
6598 D(p->level++);
6599 if (p->error_indicator) {
6600 D(p->level--);
6601 return NULL;
6602 }
6603 expr_ty _res = NULL;
6604 int _mark = p->mark;
6605 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6606 p->error_indicator = 1;
6607 D(p->level--);
6608 return NULL;
6609 }
6610 int _start_lineno = p->tokens[_mark]->lineno;
6611 UNUSED(_start_lineno); // Only used by EXTRA macro
6612 int _start_col_offset = p->tokens[_mark]->col_offset;
6613 UNUSED(_start_col_offset); // Only used by EXTRA macro
6614 { // '*' bitwise_or
6615 if (p->error_indicator) {
6616 D(p->level--);
6617 return NULL;
6618 }
6619 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
6620 Token * _literal;
6621 expr_ty a;
6622 if (
6623 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
6624 &&
6625 (a = bitwise_or_rule(p)) // bitwise_or
6626 )
6627 {
6628 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
6629 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6630 if (_token == NULL) {
6631 D(p->level--);
6632 return NULL;
6633 }
6634 int _end_lineno = _token->end_lineno;
6635 UNUSED(_end_lineno); // Only used by EXTRA macro
6636 int _end_col_offset = _token->end_col_offset;
6637 UNUSED(_end_col_offset); // Only used by EXTRA macro
6638 _res = _Py_Starred ( a , Load , EXTRA );
6639 if (_res == NULL && PyErr_Occurred()) {
6640 p->error_indicator = 1;
6641 D(p->level--);
6642 return NULL;
6643 }
6644 goto done;
6645 }
6646 p->mark = _mark;
6647 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6648 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
6649 }
6650 { // named_expression
6651 if (p->error_indicator) {
6652 D(p->level--);
6653 return NULL;
6654 }
6655 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
6656 expr_ty named_expression_var;
6657 if (
6658 (named_expression_var = named_expression_rule(p)) // named_expression
6659 )
6660 {
6661 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
6662 _res = named_expression_var;
6663 goto done;
6664 }
6665 p->mark = _mark;
6666 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
6668 }
6669 _res = NULL;
6670 done:
6671 D(p->level--);
6672 return _res;
6673}
6674
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006675// named_expression: NAME ':=' ~ expression | expression !':=' | invalid_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006676static expr_ty
6677named_expression_rule(Parser *p)
6678{
6679 D(p->level++);
6680 if (p->error_indicator) {
6681 D(p->level--);
6682 return NULL;
6683 }
6684 expr_ty _res = NULL;
6685 int _mark = p->mark;
6686 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6687 p->error_indicator = 1;
6688 D(p->level--);
6689 return NULL;
6690 }
6691 int _start_lineno = p->tokens[_mark]->lineno;
6692 UNUSED(_start_lineno); // Only used by EXTRA macro
6693 int _start_col_offset = p->tokens[_mark]->col_offset;
6694 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006695 { // NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006696 if (p->error_indicator) {
6697 D(p->level--);
6698 return NULL;
6699 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006700 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
6701 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006702 Token * _literal;
6703 expr_ty a;
6704 expr_ty b;
6705 if (
6706 (a = _PyPegen_name_token(p)) // NAME
6707 &&
6708 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
6709 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006710 (_cut_var = 1)
6711 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006712 (b = expression_rule(p)) // expression
6713 )
6714 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006715 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 +01006716 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6717 if (_token == NULL) {
6718 D(p->level--);
6719 return NULL;
6720 }
6721 int _end_lineno = _token->end_lineno;
6722 UNUSED(_end_lineno); // Only used by EXTRA macro
6723 int _end_col_offset = _token->end_col_offset;
6724 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03006725 _res = _Py_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006726 if (_res == NULL && PyErr_Occurred()) {
6727 p->error_indicator = 1;
6728 D(p->level--);
6729 return NULL;
6730 }
6731 goto done;
6732 }
6733 p->mark = _mark;
6734 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03006735 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
6736 if (_cut_var) {
6737 D(p->level--);
6738 return NULL;
6739 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006740 }
6741 { // expression !':='
6742 if (p->error_indicator) {
6743 D(p->level--);
6744 return NULL;
6745 }
6746 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
6747 expr_ty expression_var;
6748 if (
6749 (expression_var = expression_rule(p)) // expression
6750 &&
6751 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
6752 )
6753 {
6754 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
6755 _res = expression_var;
6756 goto done;
6757 }
6758 p->mark = _mark;
6759 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6760 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
6761 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02006762 if (p->call_invalid_rules) { // invalid_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006763 if (p->error_indicator) {
6764 D(p->level--);
6765 return NULL;
6766 }
6767 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
6768 void *invalid_named_expression_var;
6769 if (
6770 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
6771 )
6772 {
6773 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
6774 _res = invalid_named_expression_var;
6775 goto done;
6776 }
6777 p->mark = _mark;
6778 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6779 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
6780 }
6781 _res = NULL;
6782 done:
6783 D(p->level--);
6784 return _res;
6785}
6786
6787// annotated_rhs: yield_expr | star_expressions
6788static expr_ty
6789annotated_rhs_rule(Parser *p)
6790{
6791 D(p->level++);
6792 if (p->error_indicator) {
6793 D(p->level--);
6794 return NULL;
6795 }
6796 expr_ty _res = NULL;
6797 int _mark = p->mark;
6798 { // yield_expr
6799 if (p->error_indicator) {
6800 D(p->level--);
6801 return NULL;
6802 }
6803 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
6804 expr_ty yield_expr_var;
6805 if (
6806 (yield_expr_var = yield_expr_rule(p)) // yield_expr
6807 )
6808 {
6809 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
6810 _res = yield_expr_var;
6811 goto done;
6812 }
6813 p->mark = _mark;
6814 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
6815 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
6816 }
6817 { // star_expressions
6818 if (p->error_indicator) {
6819 D(p->level--);
6820 return NULL;
6821 }
6822 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
6823 expr_ty star_expressions_var;
6824 if (
6825 (star_expressions_var = star_expressions_rule(p)) // star_expressions
6826 )
6827 {
6828 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
6829 _res = star_expressions_var;
6830 goto done;
6831 }
6832 p->mark = _mark;
6833 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
6834 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
6835 }
6836 _res = NULL;
6837 done:
6838 D(p->level--);
6839 return _res;
6840}
6841
6842// expressions: expression ((',' expression))+ ','? | expression ',' | expression
6843static expr_ty
6844expressions_rule(Parser *p)
6845{
6846 D(p->level++);
6847 if (p->error_indicator) {
6848 D(p->level--);
6849 return NULL;
6850 }
6851 expr_ty _res = NULL;
6852 int _mark = p->mark;
6853 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6854 p->error_indicator = 1;
6855 D(p->level--);
6856 return NULL;
6857 }
6858 int _start_lineno = p->tokens[_mark]->lineno;
6859 UNUSED(_start_lineno); // Only used by EXTRA macro
6860 int _start_col_offset = p->tokens[_mark]->col_offset;
6861 UNUSED(_start_col_offset); // Only used by EXTRA macro
6862 { // expression ((',' expression))+ ','?
6863 if (p->error_indicator) {
6864 D(p->level--);
6865 return NULL;
6866 }
6867 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
6868 void *_opt_var;
6869 UNUSED(_opt_var); // Silence compiler warnings
6870 expr_ty a;
6871 asdl_seq * b;
6872 if (
6873 (a = expression_rule(p)) // expression
6874 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00006875 (b = _loop1_73_rule(p)) // ((',' expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006876 &&
6877 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
6878 )
6879 {
6880 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
6881 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6882 if (_token == NULL) {
6883 D(p->level--);
6884 return NULL;
6885 }
6886 int _end_lineno = _token->end_lineno;
6887 UNUSED(_end_lineno); // Only used by EXTRA macro
6888 int _end_col_offset = _token->end_col_offset;
6889 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03006890 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006891 if (_res == NULL && PyErr_Occurred()) {
6892 p->error_indicator = 1;
6893 D(p->level--);
6894 return NULL;
6895 }
6896 goto done;
6897 }
6898 p->mark = _mark;
6899 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6900 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
6901 }
6902 { // expression ','
6903 if (p->error_indicator) {
6904 D(p->level--);
6905 return NULL;
6906 }
6907 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
6908 Token * _literal;
6909 expr_ty a;
6910 if (
6911 (a = expression_rule(p)) // expression
6912 &&
6913 (_literal = _PyPegen_expect_token(p, 12)) // token=','
6914 )
6915 {
6916 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
6917 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6918 if (_token == NULL) {
6919 D(p->level--);
6920 return NULL;
6921 }
6922 int _end_lineno = _token->end_lineno;
6923 UNUSED(_end_lineno); // Only used by EXTRA macro
6924 int _end_col_offset = _token->end_col_offset;
6925 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03006926 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01006927 if (_res == NULL && PyErr_Occurred()) {
6928 p->error_indicator = 1;
6929 D(p->level--);
6930 return NULL;
6931 }
6932 goto done;
6933 }
6934 p->mark = _mark;
6935 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6936 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
6937 }
6938 { // expression
6939 if (p->error_indicator) {
6940 D(p->level--);
6941 return NULL;
6942 }
6943 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
6944 expr_ty expression_var;
6945 if (
6946 (expression_var = expression_rule(p)) // expression
6947 )
6948 {
6949 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
6950 _res = expression_var;
6951 goto done;
6952 }
6953 p->mark = _mark;
6954 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
6956 }
6957 _res = NULL;
6958 done:
6959 D(p->level--);
6960 return _res;
6961}
6962
6963// expression: disjunction 'if' disjunction 'else' expression | disjunction | lambdef
6964static expr_ty
6965expression_rule(Parser *p)
6966{
6967 D(p->level++);
6968 if (p->error_indicator) {
6969 D(p->level--);
6970 return NULL;
6971 }
6972 expr_ty _res = NULL;
6973 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
6974 D(p->level--);
6975 return _res;
6976 }
6977 int _mark = p->mark;
6978 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6979 p->error_indicator = 1;
6980 D(p->level--);
6981 return NULL;
6982 }
6983 int _start_lineno = p->tokens[_mark]->lineno;
6984 UNUSED(_start_lineno); // Only used by EXTRA macro
6985 int _start_col_offset = p->tokens[_mark]->col_offset;
6986 UNUSED(_start_col_offset); // Only used by EXTRA macro
6987 { // disjunction 'if' disjunction 'else' expression
6988 if (p->error_indicator) {
6989 D(p->level--);
6990 return NULL;
6991 }
6992 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
6993 Token * _keyword;
6994 Token * _keyword_1;
6995 expr_ty a;
6996 expr_ty b;
6997 expr_ty c;
6998 if (
6999 (a = disjunction_rule(p)) // disjunction
7000 &&
7001 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
7002 &&
7003 (b = disjunction_rule(p)) // disjunction
7004 &&
7005 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
7006 &&
7007 (c = expression_rule(p)) // expression
7008 )
7009 {
7010 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
7011 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7012 if (_token == NULL) {
7013 D(p->level--);
7014 return NULL;
7015 }
7016 int _end_lineno = _token->end_lineno;
7017 UNUSED(_end_lineno); // Only used by EXTRA macro
7018 int _end_col_offset = _token->end_col_offset;
7019 UNUSED(_end_col_offset); // Only used by EXTRA macro
7020 _res = _Py_IfExp ( b , a , c , EXTRA );
7021 if (_res == NULL && PyErr_Occurred()) {
7022 p->error_indicator = 1;
7023 D(p->level--);
7024 return NULL;
7025 }
7026 goto done;
7027 }
7028 p->mark = _mark;
7029 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7030 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
7031 }
7032 { // disjunction
7033 if (p->error_indicator) {
7034 D(p->level--);
7035 return NULL;
7036 }
7037 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
7038 expr_ty disjunction_var;
7039 if (
7040 (disjunction_var = disjunction_rule(p)) // disjunction
7041 )
7042 {
7043 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
7044 _res = disjunction_var;
7045 goto done;
7046 }
7047 p->mark = _mark;
7048 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7049 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
7050 }
7051 { // lambdef
7052 if (p->error_indicator) {
7053 D(p->level--);
7054 return NULL;
7055 }
7056 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
7057 expr_ty lambdef_var;
7058 if (
7059 (lambdef_var = lambdef_rule(p)) // lambdef
7060 )
7061 {
7062 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
7063 _res = lambdef_var;
7064 goto done;
7065 }
7066 p->mark = _mark;
7067 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
7068 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
7069 }
7070 _res = NULL;
7071 done:
7072 _PyPegen_insert_memo(p, _mark, expression_type, _res);
7073 D(p->level--);
7074 return _res;
7075}
7076
7077// lambdef: 'lambda' lambda_params? ':' expression
7078static expr_ty
7079lambdef_rule(Parser *p)
7080{
7081 D(p->level++);
7082 if (p->error_indicator) {
7083 D(p->level--);
7084 return NULL;
7085 }
7086 expr_ty _res = NULL;
7087 int _mark = p->mark;
7088 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7089 p->error_indicator = 1;
7090 D(p->level--);
7091 return NULL;
7092 }
7093 int _start_lineno = p->tokens[_mark]->lineno;
7094 UNUSED(_start_lineno); // Only used by EXTRA macro
7095 int _start_col_offset = p->tokens[_mark]->col_offset;
7096 UNUSED(_start_col_offset); // Only used by EXTRA macro
7097 { // 'lambda' lambda_params? ':' expression
7098 if (p->error_indicator) {
7099 D(p->level--);
7100 return NULL;
7101 }
7102 D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
7103 Token * _keyword;
7104 Token * _literal;
7105 void *a;
7106 expr_ty b;
7107 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03007108 (_keyword = _PyPegen_expect_token(p, 525)) // token='lambda'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007109 &&
7110 (a = lambda_params_rule(p), 1) // lambda_params?
7111 &&
7112 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
7113 &&
7114 (b = expression_rule(p)) // expression
7115 )
7116 {
7117 D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
7118 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7119 if (_token == NULL) {
7120 D(p->level--);
7121 return NULL;
7122 }
7123 int _end_lineno = _token->end_lineno;
7124 UNUSED(_end_lineno); // Only used by EXTRA macro
7125 int _end_col_offset = _token->end_col_offset;
7126 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03007127 _res = _Py_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007128 if (_res == NULL && PyErr_Occurred()) {
7129 p->error_indicator = 1;
7130 D(p->level--);
7131 return NULL;
7132 }
7133 goto done;
7134 }
7135 p->mark = _mark;
7136 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
7137 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
7138 }
7139 _res = NULL;
7140 done:
7141 D(p->level--);
7142 return _res;
7143}
7144
7145// lambda_params: invalid_lambda_parameters | lambda_parameters
7146static arguments_ty
7147lambda_params_rule(Parser *p)
7148{
7149 D(p->level++);
7150 if (p->error_indicator) {
7151 D(p->level--);
7152 return NULL;
7153 }
7154 arguments_ty _res = NULL;
7155 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02007156 if (p->call_invalid_rules) { // invalid_lambda_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007157 if (p->error_indicator) {
7158 D(p->level--);
7159 return NULL;
7160 }
7161 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
7162 void *invalid_lambda_parameters_var;
7163 if (
7164 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
7165 )
7166 {
7167 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
7168 _res = invalid_lambda_parameters_var;
7169 goto done;
7170 }
7171 p->mark = _mark;
7172 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
7173 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
7174 }
7175 { // lambda_parameters
7176 if (p->error_indicator) {
7177 D(p->level--);
7178 return NULL;
7179 }
7180 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
7181 arguments_ty lambda_parameters_var;
7182 if (
7183 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
7184 )
7185 {
7186 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
7187 _res = lambda_parameters_var;
7188 goto done;
7189 }
7190 p->mark = _mark;
7191 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
7192 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
7193 }
7194 _res = NULL;
7195 done:
7196 D(p->level--);
7197 return _res;
7198}
7199
7200// lambda_parameters:
7201// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
7202// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
7203// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
7204// | lambda_param_with_default+ lambda_star_etc?
7205// | lambda_star_etc
7206static arguments_ty
7207lambda_parameters_rule(Parser *p)
7208{
7209 D(p->level++);
7210 if (p->error_indicator) {
7211 D(p->level--);
7212 return NULL;
7213 }
7214 arguments_ty _res = NULL;
7215 int _mark = p->mark;
7216 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
7217 if (p->error_indicator) {
7218 D(p->level--);
7219 return NULL;
7220 }
7221 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 +01007222 asdl_arg_seq* a;
7223 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007224 asdl_seq * c;
7225 void *d;
7226 if (
7227 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
7228 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007229 (b = (asdl_arg_seq*)_loop0_74_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007230 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007231 (c = _loop0_75_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007232 &&
7233 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
7234 )
7235 {
7236 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?"));
7237 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
7238 if (_res == NULL && PyErr_Occurred()) {
7239 p->error_indicator = 1;
7240 D(p->level--);
7241 return NULL;
7242 }
7243 goto done;
7244 }
7245 p->mark = _mark;
7246 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7247 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
7248 }
7249 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
7250 if (p->error_indicator) {
7251 D(p->level--);
7252 return NULL;
7253 }
7254 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?"));
7255 SlashWithDefault* a;
7256 asdl_seq * b;
7257 void *c;
7258 if (
7259 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
7260 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007261 (b = _loop0_76_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007262 &&
7263 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
7264 )
7265 {
7266 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?"));
7267 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
7268 if (_res == NULL && PyErr_Occurred()) {
7269 p->error_indicator = 1;
7270 D(p->level--);
7271 return NULL;
7272 }
7273 goto done;
7274 }
7275 p->mark = _mark;
7276 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7277 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
7278 }
7279 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
7280 if (p->error_indicator) {
7281 D(p->level--);
7282 return NULL;
7283 }
7284 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 +01007285 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007286 asdl_seq * b;
7287 void *c;
7288 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007289 (a = (asdl_arg_seq*)_loop1_77_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007290 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007291 (b = _loop0_78_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007292 &&
7293 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
7294 )
7295 {
7296 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?"));
7297 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
7298 if (_res == NULL && PyErr_Occurred()) {
7299 p->error_indicator = 1;
7300 D(p->level--);
7301 return NULL;
7302 }
7303 goto done;
7304 }
7305 p->mark = _mark;
7306 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7307 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
7308 }
7309 { // lambda_param_with_default+ lambda_star_etc?
7310 if (p->error_indicator) {
7311 D(p->level--);
7312 return NULL;
7313 }
7314 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
7315 asdl_seq * a;
7316 void *b;
7317 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007318 (a = _loop1_79_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007319 &&
7320 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
7321 )
7322 {
7323 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
7324 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
7325 if (_res == NULL && PyErr_Occurred()) {
7326 p->error_indicator = 1;
7327 D(p->level--);
7328 return NULL;
7329 }
7330 goto done;
7331 }
7332 p->mark = _mark;
7333 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7334 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
7335 }
7336 { // lambda_star_etc
7337 if (p->error_indicator) {
7338 D(p->level--);
7339 return NULL;
7340 }
7341 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
7342 StarEtc* a;
7343 if (
7344 (a = lambda_star_etc_rule(p)) // lambda_star_etc
7345 )
7346 {
7347 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
7348 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
7349 if (_res == NULL && PyErr_Occurred()) {
7350 p->error_indicator = 1;
7351 D(p->level--);
7352 return NULL;
7353 }
7354 goto done;
7355 }
7356 p->mark = _mark;
7357 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7358 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
7359 }
7360 _res = NULL;
7361 done:
7362 D(p->level--);
7363 return _res;
7364}
7365
7366// lambda_slash_no_default:
7367// | lambda_param_no_default+ '/' ','
7368// | lambda_param_no_default+ '/' &':'
Pablo Galindoa5634c42020-09-16 19:42:00 +01007369static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007370lambda_slash_no_default_rule(Parser *p)
7371{
7372 D(p->level++);
7373 if (p->error_indicator) {
7374 D(p->level--);
7375 return NULL;
7376 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01007377 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007378 int _mark = p->mark;
7379 { // lambda_param_no_default+ '/' ','
7380 if (p->error_indicator) {
7381 D(p->level--);
7382 return NULL;
7383 }
7384 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
7385 Token * _literal;
7386 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007387 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007388 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007389 (a = (asdl_arg_seq*)_loop1_80_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007390 &&
7391 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7392 &&
7393 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7394 )
7395 {
7396 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
7397 _res = a;
7398 if (_res == NULL && PyErr_Occurred()) {
7399 p->error_indicator = 1;
7400 D(p->level--);
7401 return NULL;
7402 }
7403 goto done;
7404 }
7405 p->mark = _mark;
7406 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7407 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
7408 }
7409 { // lambda_param_no_default+ '/' &':'
7410 if (p->error_indicator) {
7411 D(p->level--);
7412 return NULL;
7413 }
7414 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
7415 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01007416 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007417 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007418 (a = (asdl_arg_seq*)_loop1_81_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007419 &&
7420 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7421 &&
7422 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
7423 )
7424 {
7425 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
7426 _res = a;
7427 if (_res == NULL && PyErr_Occurred()) {
7428 p->error_indicator = 1;
7429 D(p->level--);
7430 return NULL;
7431 }
7432 goto done;
7433 }
7434 p->mark = _mark;
7435 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7436 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
7437 }
7438 _res = NULL;
7439 done:
7440 D(p->level--);
7441 return _res;
7442}
7443
7444// lambda_slash_with_default:
7445// | lambda_param_no_default* lambda_param_with_default+ '/' ','
7446// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
7447static SlashWithDefault*
7448lambda_slash_with_default_rule(Parser *p)
7449{
7450 D(p->level++);
7451 if (p->error_indicator) {
7452 D(p->level--);
7453 return NULL;
7454 }
7455 SlashWithDefault* _res = NULL;
7456 int _mark = p->mark;
7457 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
7458 if (p->error_indicator) {
7459 D(p->level--);
7460 return NULL;
7461 }
7462 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+ '/' ','"));
7463 Token * _literal;
7464 Token * _literal_1;
7465 asdl_seq * a;
7466 asdl_seq * b;
7467 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007468 (a = _loop0_82_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007469 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007470 (b = _loop1_83_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007471 &&
7472 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7473 &&
7474 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7475 )
7476 {
7477 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 +01007478 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007479 if (_res == NULL && PyErr_Occurred()) {
7480 p->error_indicator = 1;
7481 D(p->level--);
7482 return NULL;
7483 }
7484 goto done;
7485 }
7486 p->mark = _mark;
7487 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7488 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
7489 }
7490 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
7491 if (p->error_indicator) {
7492 D(p->level--);
7493 return NULL;
7494 }
7495 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+ '/' &':'"));
7496 Token * _literal;
7497 asdl_seq * a;
7498 asdl_seq * b;
7499 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007500 (a = _loop0_84_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007501 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007502 (b = _loop1_85_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007503 &&
7504 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
7505 &&
7506 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
7507 )
7508 {
7509 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 +01007510 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007511 if (_res == NULL && PyErr_Occurred()) {
7512 p->error_indicator = 1;
7513 D(p->level--);
7514 return NULL;
7515 }
7516 goto done;
7517 }
7518 p->mark = _mark;
7519 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7520 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
7521 }
7522 _res = NULL;
7523 done:
7524 D(p->level--);
7525 return _res;
7526}
7527
7528// lambda_star_etc:
7529// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
7530// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
7531// | lambda_kwds
7532// | invalid_lambda_star_etc
7533static StarEtc*
7534lambda_star_etc_rule(Parser *p)
7535{
7536 D(p->level++);
7537 if (p->error_indicator) {
7538 D(p->level--);
7539 return NULL;
7540 }
7541 StarEtc* _res = NULL;
7542 int _mark = p->mark;
7543 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
7544 if (p->error_indicator) {
7545 D(p->level--);
7546 return NULL;
7547 }
7548 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?"));
7549 Token * _literal;
7550 arg_ty a;
7551 asdl_seq * b;
7552 void *c;
7553 if (
7554 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7555 &&
7556 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
7557 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007558 (b = _loop0_86_rule(p)) // lambda_param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007559 &&
7560 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
7561 )
7562 {
7563 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?"));
7564 _res = _PyPegen_star_etc ( p , a , b , c );
7565 if (_res == NULL && PyErr_Occurred()) {
7566 p->error_indicator = 1;
7567 D(p->level--);
7568 return NULL;
7569 }
7570 goto done;
7571 }
7572 p->mark = _mark;
7573 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7574 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
7575 }
7576 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
7577 if (p->error_indicator) {
7578 D(p->level--);
7579 return NULL;
7580 }
7581 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
7582 Token * _literal;
7583 Token * _literal_1;
7584 asdl_seq * b;
7585 void *c;
7586 if (
7587 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7588 &&
7589 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7590 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00007591 (b = _loop1_87_rule(p)) // lambda_param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007592 &&
7593 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
7594 )
7595 {
7596 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
7597 _res = _PyPegen_star_etc ( p , NULL , b , c );
7598 if (_res == NULL && PyErr_Occurred()) {
7599 p->error_indicator = 1;
7600 D(p->level--);
7601 return NULL;
7602 }
7603 goto done;
7604 }
7605 p->mark = _mark;
7606 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7607 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
7608 }
7609 { // lambda_kwds
7610 if (p->error_indicator) {
7611 D(p->level--);
7612 return NULL;
7613 }
7614 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
7615 arg_ty a;
7616 if (
7617 (a = lambda_kwds_rule(p)) // lambda_kwds
7618 )
7619 {
7620 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
7621 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
7622 if (_res == NULL && PyErr_Occurred()) {
7623 p->error_indicator = 1;
7624 D(p->level--);
7625 return NULL;
7626 }
7627 goto done;
7628 }
7629 p->mark = _mark;
7630 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7631 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
7632 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02007633 if (p->call_invalid_rules) { // invalid_lambda_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01007634 if (p->error_indicator) {
7635 D(p->level--);
7636 return NULL;
7637 }
7638 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
7639 void *invalid_lambda_star_etc_var;
7640 if (
7641 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
7642 )
7643 {
7644 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
7645 _res = invalid_lambda_star_etc_var;
7646 goto done;
7647 }
7648 p->mark = _mark;
7649 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7650 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
7651 }
7652 _res = NULL;
7653 done:
7654 D(p->level--);
7655 return _res;
7656}
7657
7658// lambda_kwds: '**' lambda_param_no_default
7659static arg_ty
7660lambda_kwds_rule(Parser *p)
7661{
7662 D(p->level++);
7663 if (p->error_indicator) {
7664 D(p->level--);
7665 return NULL;
7666 }
7667 arg_ty _res = NULL;
7668 int _mark = p->mark;
7669 { // '**' lambda_param_no_default
7670 if (p->error_indicator) {
7671 D(p->level--);
7672 return NULL;
7673 }
7674 D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
7675 Token * _literal;
7676 arg_ty a;
7677 if (
7678 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
7679 &&
7680 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
7681 )
7682 {
7683 D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
7684 _res = a;
7685 if (_res == NULL && PyErr_Occurred()) {
7686 p->error_indicator = 1;
7687 D(p->level--);
7688 return NULL;
7689 }
7690 goto done;
7691 }
7692 p->mark = _mark;
7693 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
7694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
7695 }
7696 _res = NULL;
7697 done:
7698 D(p->level--);
7699 return _res;
7700}
7701
7702// lambda_param_no_default: lambda_param ',' | lambda_param &':'
7703static arg_ty
7704lambda_param_no_default_rule(Parser *p)
7705{
7706 D(p->level++);
7707 if (p->error_indicator) {
7708 D(p->level--);
7709 return NULL;
7710 }
7711 arg_ty _res = NULL;
7712 int _mark = p->mark;
7713 { // lambda_param ','
7714 if (p->error_indicator) {
7715 D(p->level--);
7716 return NULL;
7717 }
7718 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
7719 Token * _literal;
7720 arg_ty a;
7721 if (
7722 (a = lambda_param_rule(p)) // lambda_param
7723 &&
7724 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7725 )
7726 {
7727 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
7728 _res = a;
7729 if (_res == NULL && PyErr_Occurred()) {
7730 p->error_indicator = 1;
7731 D(p->level--);
7732 return NULL;
7733 }
7734 goto done;
7735 }
7736 p->mark = _mark;
7737 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
7739 }
7740 { // lambda_param &':'
7741 if (p->error_indicator) {
7742 D(p->level--);
7743 return NULL;
7744 }
7745 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
7746 arg_ty a;
7747 if (
7748 (a = lambda_param_rule(p)) // lambda_param
7749 &&
7750 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
7751 )
7752 {
7753 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
7754 _res = a;
7755 if (_res == NULL && PyErr_Occurred()) {
7756 p->error_indicator = 1;
7757 D(p->level--);
7758 return NULL;
7759 }
7760 goto done;
7761 }
7762 p->mark = _mark;
7763 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7764 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
7765 }
7766 _res = NULL;
7767 done:
7768 D(p->level--);
7769 return _res;
7770}
7771
7772// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
7773static NameDefaultPair*
7774lambda_param_with_default_rule(Parser *p)
7775{
7776 D(p->level++);
7777 if (p->error_indicator) {
7778 D(p->level--);
7779 return NULL;
7780 }
7781 NameDefaultPair* _res = NULL;
7782 int _mark = p->mark;
7783 { // lambda_param default ','
7784 if (p->error_indicator) {
7785 D(p->level--);
7786 return NULL;
7787 }
7788 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
7789 Token * _literal;
7790 arg_ty a;
7791 expr_ty c;
7792 if (
7793 (a = lambda_param_rule(p)) // lambda_param
7794 &&
7795 (c = default_rule(p)) // default
7796 &&
7797 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7798 )
7799 {
7800 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
7801 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7802 if (_res == NULL && PyErr_Occurred()) {
7803 p->error_indicator = 1;
7804 D(p->level--);
7805 return NULL;
7806 }
7807 goto done;
7808 }
7809 p->mark = _mark;
7810 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7811 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
7812 }
7813 { // lambda_param default &':'
7814 if (p->error_indicator) {
7815 D(p->level--);
7816 return NULL;
7817 }
7818 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
7819 arg_ty a;
7820 expr_ty c;
7821 if (
7822 (a = lambda_param_rule(p)) // lambda_param
7823 &&
7824 (c = default_rule(p)) // default
7825 &&
7826 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
7827 )
7828 {
7829 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
7830 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7831 if (_res == NULL && PyErr_Occurred()) {
7832 p->error_indicator = 1;
7833 D(p->level--);
7834 return NULL;
7835 }
7836 goto done;
7837 }
7838 p->mark = _mark;
7839 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
7841 }
7842 _res = NULL;
7843 done:
7844 D(p->level--);
7845 return _res;
7846}
7847
7848// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
7849static NameDefaultPair*
7850lambda_param_maybe_default_rule(Parser *p)
7851{
7852 D(p->level++);
7853 if (p->error_indicator) {
7854 D(p->level--);
7855 return NULL;
7856 }
7857 NameDefaultPair* _res = NULL;
7858 int _mark = p->mark;
7859 { // lambda_param default? ','
7860 if (p->error_indicator) {
7861 D(p->level--);
7862 return NULL;
7863 }
7864 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
7865 Token * _literal;
7866 arg_ty a;
7867 void *c;
7868 if (
7869 (a = lambda_param_rule(p)) // lambda_param
7870 &&
7871 (c = default_rule(p), 1) // default?
7872 &&
7873 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7874 )
7875 {
7876 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
7877 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7878 if (_res == NULL && PyErr_Occurred()) {
7879 p->error_indicator = 1;
7880 D(p->level--);
7881 return NULL;
7882 }
7883 goto done;
7884 }
7885 p->mark = _mark;
7886 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
7887 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
7888 }
7889 { // lambda_param default? &':'
7890 if (p->error_indicator) {
7891 D(p->level--);
7892 return NULL;
7893 }
7894 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
7895 arg_ty a;
7896 void *c;
7897 if (
7898 (a = lambda_param_rule(p)) // lambda_param
7899 &&
7900 (c = default_rule(p), 1) // default?
7901 &&
7902 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
7903 )
7904 {
7905 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
7906 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7907 if (_res == NULL && PyErr_Occurred()) {
7908 p->error_indicator = 1;
7909 D(p->level--);
7910 return NULL;
7911 }
7912 goto done;
7913 }
7914 p->mark = _mark;
7915 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
7916 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
7917 }
7918 _res = NULL;
7919 done:
7920 D(p->level--);
7921 return _res;
7922}
7923
7924// lambda_param: NAME
7925static arg_ty
7926lambda_param_rule(Parser *p)
7927{
7928 D(p->level++);
7929 if (p->error_indicator) {
7930 D(p->level--);
7931 return NULL;
7932 }
7933 arg_ty _res = NULL;
7934 int _mark = p->mark;
7935 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7936 p->error_indicator = 1;
7937 D(p->level--);
7938 return NULL;
7939 }
7940 int _start_lineno = p->tokens[_mark]->lineno;
7941 UNUSED(_start_lineno); // Only used by EXTRA macro
7942 int _start_col_offset = p->tokens[_mark]->col_offset;
7943 UNUSED(_start_col_offset); // Only used by EXTRA macro
7944 { // NAME
7945 if (p->error_indicator) {
7946 D(p->level--);
7947 return NULL;
7948 }
7949 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
7950 expr_ty a;
7951 if (
7952 (a = _PyPegen_name_token(p)) // NAME
7953 )
7954 {
7955 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
7956 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7957 if (_token == NULL) {
7958 D(p->level--);
7959 return NULL;
7960 }
7961 int _end_lineno = _token->end_lineno;
7962 UNUSED(_end_lineno); // Only used by EXTRA macro
7963 int _end_col_offset = _token->end_col_offset;
7964 UNUSED(_end_col_offset); // Only used by EXTRA macro
7965 _res = _Py_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
7966 if (_res == NULL && PyErr_Occurred()) {
7967 p->error_indicator = 1;
7968 D(p->level--);
7969 return NULL;
7970 }
7971 goto done;
7972 }
7973 p->mark = _mark;
7974 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
7975 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
7976 }
7977 _res = NULL;
7978 done:
7979 D(p->level--);
7980 return _res;
7981}
7982
7983// disjunction: conjunction (('or' conjunction))+ | conjunction
7984static expr_ty
7985disjunction_rule(Parser *p)
7986{
7987 D(p->level++);
7988 if (p->error_indicator) {
7989 D(p->level--);
7990 return NULL;
7991 }
7992 expr_ty _res = NULL;
7993 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
7994 D(p->level--);
7995 return _res;
7996 }
7997 int _mark = p->mark;
7998 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7999 p->error_indicator = 1;
8000 D(p->level--);
8001 return NULL;
8002 }
8003 int _start_lineno = p->tokens[_mark]->lineno;
8004 UNUSED(_start_lineno); // Only used by EXTRA macro
8005 int _start_col_offset = p->tokens[_mark]->col_offset;
8006 UNUSED(_start_col_offset); // Only used by EXTRA macro
8007 { // conjunction (('or' conjunction))+
8008 if (p->error_indicator) {
8009 D(p->level--);
8010 return NULL;
8011 }
8012 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
8013 expr_ty a;
8014 asdl_seq * b;
8015 if (
8016 (a = conjunction_rule(p)) // conjunction
8017 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00008018 (b = _loop1_88_rule(p)) // (('or' conjunction))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008019 )
8020 {
8021 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
8022 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8023 if (_token == NULL) {
8024 D(p->level--);
8025 return NULL;
8026 }
8027 int _end_lineno = _token->end_lineno;
8028 UNUSED(_end_lineno); // Only used by EXTRA macro
8029 int _end_col_offset = _token->end_col_offset;
8030 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03008031 _res = _Py_BoolOp ( Or , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008032 if (_res == NULL && PyErr_Occurred()) {
8033 p->error_indicator = 1;
8034 D(p->level--);
8035 return NULL;
8036 }
8037 goto done;
8038 }
8039 p->mark = _mark;
8040 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
8041 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
8042 }
8043 { // conjunction
8044 if (p->error_indicator) {
8045 D(p->level--);
8046 return NULL;
8047 }
8048 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
8049 expr_ty conjunction_var;
8050 if (
8051 (conjunction_var = conjunction_rule(p)) // conjunction
8052 )
8053 {
8054 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
8055 _res = conjunction_var;
8056 goto done;
8057 }
8058 p->mark = _mark;
8059 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
8060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
8061 }
8062 _res = NULL;
8063 done:
8064 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
8065 D(p->level--);
8066 return _res;
8067}
8068
8069// conjunction: inversion (('and' inversion))+ | inversion
8070static expr_ty
8071conjunction_rule(Parser *p)
8072{
8073 D(p->level++);
8074 if (p->error_indicator) {
8075 D(p->level--);
8076 return NULL;
8077 }
8078 expr_ty _res = NULL;
8079 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
8080 D(p->level--);
8081 return _res;
8082 }
8083 int _mark = p->mark;
8084 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8085 p->error_indicator = 1;
8086 D(p->level--);
8087 return NULL;
8088 }
8089 int _start_lineno = p->tokens[_mark]->lineno;
8090 UNUSED(_start_lineno); // Only used by EXTRA macro
8091 int _start_col_offset = p->tokens[_mark]->col_offset;
8092 UNUSED(_start_col_offset); // Only used by EXTRA macro
8093 { // inversion (('and' inversion))+
8094 if (p->error_indicator) {
8095 D(p->level--);
8096 return NULL;
8097 }
8098 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
8099 expr_ty a;
8100 asdl_seq * b;
8101 if (
8102 (a = inversion_rule(p)) // inversion
8103 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00008104 (b = _loop1_89_rule(p)) // (('and' inversion))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008105 )
8106 {
8107 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
8108 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8109 if (_token == NULL) {
8110 D(p->level--);
8111 return NULL;
8112 }
8113 int _end_lineno = _token->end_lineno;
8114 UNUSED(_end_lineno); // Only used by EXTRA macro
8115 int _end_col_offset = _token->end_col_offset;
8116 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03008117 _res = _Py_BoolOp ( And , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008118 if (_res == NULL && PyErr_Occurred()) {
8119 p->error_indicator = 1;
8120 D(p->level--);
8121 return NULL;
8122 }
8123 goto done;
8124 }
8125 p->mark = _mark;
8126 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
8127 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
8128 }
8129 { // inversion
8130 if (p->error_indicator) {
8131 D(p->level--);
8132 return NULL;
8133 }
8134 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
8135 expr_ty inversion_var;
8136 if (
8137 (inversion_var = inversion_rule(p)) // inversion
8138 )
8139 {
8140 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
8141 _res = inversion_var;
8142 goto done;
8143 }
8144 p->mark = _mark;
8145 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
8146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
8147 }
8148 _res = NULL;
8149 done:
8150 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
8151 D(p->level--);
8152 return _res;
8153}
8154
8155// inversion: 'not' inversion | comparison
8156static expr_ty
8157inversion_rule(Parser *p)
8158{
8159 D(p->level++);
8160 if (p->error_indicator) {
8161 D(p->level--);
8162 return NULL;
8163 }
8164 expr_ty _res = NULL;
8165 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
8166 D(p->level--);
8167 return _res;
8168 }
8169 int _mark = p->mark;
8170 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8171 p->error_indicator = 1;
8172 D(p->level--);
8173 return NULL;
8174 }
8175 int _start_lineno = p->tokens[_mark]->lineno;
8176 UNUSED(_start_lineno); // Only used by EXTRA macro
8177 int _start_col_offset = p->tokens[_mark]->col_offset;
8178 UNUSED(_start_col_offset); // Only used by EXTRA macro
8179 { // 'not' inversion
8180 if (p->error_indicator) {
8181 D(p->level--);
8182 return NULL;
8183 }
8184 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
8185 Token * _keyword;
8186 expr_ty a;
8187 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03008188 (_keyword = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008189 &&
8190 (a = inversion_rule(p)) // inversion
8191 )
8192 {
8193 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
8194 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8195 if (_token == NULL) {
8196 D(p->level--);
8197 return NULL;
8198 }
8199 int _end_lineno = _token->end_lineno;
8200 UNUSED(_end_lineno); // Only used by EXTRA macro
8201 int _end_col_offset = _token->end_col_offset;
8202 UNUSED(_end_col_offset); // Only used by EXTRA macro
8203 _res = _Py_UnaryOp ( Not , a , EXTRA );
8204 if (_res == NULL && PyErr_Occurred()) {
8205 p->error_indicator = 1;
8206 D(p->level--);
8207 return NULL;
8208 }
8209 goto done;
8210 }
8211 p->mark = _mark;
8212 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
8213 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
8214 }
8215 { // comparison
8216 if (p->error_indicator) {
8217 D(p->level--);
8218 return NULL;
8219 }
8220 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
8221 expr_ty comparison_var;
8222 if (
8223 (comparison_var = comparison_rule(p)) // comparison
8224 )
8225 {
8226 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
8227 _res = comparison_var;
8228 goto done;
8229 }
8230 p->mark = _mark;
8231 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
8232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
8233 }
8234 _res = NULL;
8235 done:
8236 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
8237 D(p->level--);
8238 return _res;
8239}
8240
8241// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
8242static expr_ty
8243comparison_rule(Parser *p)
8244{
8245 D(p->level++);
8246 if (p->error_indicator) {
8247 D(p->level--);
8248 return NULL;
8249 }
8250 expr_ty _res = NULL;
8251 int _mark = p->mark;
8252 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8253 p->error_indicator = 1;
8254 D(p->level--);
8255 return NULL;
8256 }
8257 int _start_lineno = p->tokens[_mark]->lineno;
8258 UNUSED(_start_lineno); // Only used by EXTRA macro
8259 int _start_col_offset = p->tokens[_mark]->col_offset;
8260 UNUSED(_start_col_offset); // Only used by EXTRA macro
8261 { // bitwise_or compare_op_bitwise_or_pair+
8262 if (p->error_indicator) {
8263 D(p->level--);
8264 return NULL;
8265 }
8266 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
8267 expr_ty a;
8268 asdl_seq * b;
8269 if (
8270 (a = bitwise_or_rule(p)) // bitwise_or
8271 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +00008272 (b = _loop1_90_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008273 )
8274 {
8275 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
8276 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8277 if (_token == NULL) {
8278 D(p->level--);
8279 return NULL;
8280 }
8281 int _end_lineno = _token->end_lineno;
8282 UNUSED(_end_lineno); // Only used by EXTRA macro
8283 int _end_col_offset = _token->end_col_offset;
8284 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03008285 _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 +01008286 if (_res == NULL && PyErr_Occurred()) {
8287 p->error_indicator = 1;
8288 D(p->level--);
8289 return NULL;
8290 }
8291 goto done;
8292 }
8293 p->mark = _mark;
8294 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
8295 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
8296 }
8297 { // bitwise_or
8298 if (p->error_indicator) {
8299 D(p->level--);
8300 return NULL;
8301 }
8302 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
8303 expr_ty bitwise_or_var;
8304 if (
8305 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
8306 )
8307 {
8308 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
8309 _res = bitwise_or_var;
8310 goto done;
8311 }
8312 p->mark = _mark;
8313 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
8314 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
8315 }
8316 _res = NULL;
8317 done:
8318 D(p->level--);
8319 return _res;
8320}
8321
8322// compare_op_bitwise_or_pair:
8323// | eq_bitwise_or
8324// | noteq_bitwise_or
8325// | lte_bitwise_or
8326// | lt_bitwise_or
8327// | gte_bitwise_or
8328// | gt_bitwise_or
8329// | notin_bitwise_or
8330// | in_bitwise_or
8331// | isnot_bitwise_or
8332// | is_bitwise_or
8333static CmpopExprPair*
8334compare_op_bitwise_or_pair_rule(Parser *p)
8335{
8336 D(p->level++);
8337 if (p->error_indicator) {
8338 D(p->level--);
8339 return NULL;
8340 }
8341 CmpopExprPair* _res = NULL;
8342 int _mark = p->mark;
8343 { // eq_bitwise_or
8344 if (p->error_indicator) {
8345 D(p->level--);
8346 return NULL;
8347 }
8348 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
8349 CmpopExprPair* eq_bitwise_or_var;
8350 if (
8351 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
8352 )
8353 {
8354 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
8355 _res = eq_bitwise_or_var;
8356 goto done;
8357 }
8358 p->mark = _mark;
8359 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8360 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
8361 }
8362 { // noteq_bitwise_or
8363 if (p->error_indicator) {
8364 D(p->level--);
8365 return NULL;
8366 }
8367 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
8368 CmpopExprPair* noteq_bitwise_or_var;
8369 if (
8370 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
8371 )
8372 {
8373 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
8374 _res = noteq_bitwise_or_var;
8375 goto done;
8376 }
8377 p->mark = _mark;
8378 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8379 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
8380 }
8381 { // lte_bitwise_or
8382 if (p->error_indicator) {
8383 D(p->level--);
8384 return NULL;
8385 }
8386 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
8387 CmpopExprPair* lte_bitwise_or_var;
8388 if (
8389 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
8390 )
8391 {
8392 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
8393 _res = lte_bitwise_or_var;
8394 goto done;
8395 }
8396 p->mark = _mark;
8397 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8398 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
8399 }
8400 { // lt_bitwise_or
8401 if (p->error_indicator) {
8402 D(p->level--);
8403 return NULL;
8404 }
8405 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
8406 CmpopExprPair* lt_bitwise_or_var;
8407 if (
8408 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
8409 )
8410 {
8411 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
8412 _res = lt_bitwise_or_var;
8413 goto done;
8414 }
8415 p->mark = _mark;
8416 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8417 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
8418 }
8419 { // gte_bitwise_or
8420 if (p->error_indicator) {
8421 D(p->level--);
8422 return NULL;
8423 }
8424 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
8425 CmpopExprPair* gte_bitwise_or_var;
8426 if (
8427 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
8428 )
8429 {
8430 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
8431 _res = gte_bitwise_or_var;
8432 goto done;
8433 }
8434 p->mark = _mark;
8435 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8436 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
8437 }
8438 { // gt_bitwise_or
8439 if (p->error_indicator) {
8440 D(p->level--);
8441 return NULL;
8442 }
8443 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
8444 CmpopExprPair* gt_bitwise_or_var;
8445 if (
8446 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
8447 )
8448 {
8449 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
8450 _res = gt_bitwise_or_var;
8451 goto done;
8452 }
8453 p->mark = _mark;
8454 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8455 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
8456 }
8457 { // notin_bitwise_or
8458 if (p->error_indicator) {
8459 D(p->level--);
8460 return NULL;
8461 }
8462 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
8463 CmpopExprPair* notin_bitwise_or_var;
8464 if (
8465 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
8466 )
8467 {
8468 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
8469 _res = notin_bitwise_or_var;
8470 goto done;
8471 }
8472 p->mark = _mark;
8473 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8474 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
8475 }
8476 { // in_bitwise_or
8477 if (p->error_indicator) {
8478 D(p->level--);
8479 return NULL;
8480 }
8481 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
8482 CmpopExprPair* in_bitwise_or_var;
8483 if (
8484 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
8485 )
8486 {
8487 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
8488 _res = in_bitwise_or_var;
8489 goto done;
8490 }
8491 p->mark = _mark;
8492 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8493 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
8494 }
8495 { // isnot_bitwise_or
8496 if (p->error_indicator) {
8497 D(p->level--);
8498 return NULL;
8499 }
8500 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
8501 CmpopExprPair* isnot_bitwise_or_var;
8502 if (
8503 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
8504 )
8505 {
8506 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
8507 _res = isnot_bitwise_or_var;
8508 goto done;
8509 }
8510 p->mark = _mark;
8511 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8512 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
8513 }
8514 { // is_bitwise_or
8515 if (p->error_indicator) {
8516 D(p->level--);
8517 return NULL;
8518 }
8519 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
8520 CmpopExprPair* is_bitwise_or_var;
8521 if (
8522 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
8523 )
8524 {
8525 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
8526 _res = is_bitwise_or_var;
8527 goto done;
8528 }
8529 p->mark = _mark;
8530 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8531 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
8532 }
8533 _res = NULL;
8534 done:
8535 D(p->level--);
8536 return _res;
8537}
8538
8539// eq_bitwise_or: '==' bitwise_or
8540static CmpopExprPair*
8541eq_bitwise_or_rule(Parser *p)
8542{
8543 D(p->level++);
8544 if (p->error_indicator) {
8545 D(p->level--);
8546 return NULL;
8547 }
8548 CmpopExprPair* _res = NULL;
8549 int _mark = p->mark;
8550 { // '==' bitwise_or
8551 if (p->error_indicator) {
8552 D(p->level--);
8553 return NULL;
8554 }
8555 D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
8556 Token * _literal;
8557 expr_ty a;
8558 if (
8559 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
8560 &&
8561 (a = bitwise_or_rule(p)) // bitwise_or
8562 )
8563 {
8564 D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
8565 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
8566 if (_res == NULL && PyErr_Occurred()) {
8567 p->error_indicator = 1;
8568 D(p->level--);
8569 return NULL;
8570 }
8571 goto done;
8572 }
8573 p->mark = _mark;
8574 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8575 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
8576 }
8577 _res = NULL;
8578 done:
8579 D(p->level--);
8580 return _res;
8581}
8582
8583// noteq_bitwise_or: ('!=') bitwise_or
8584static CmpopExprPair*
8585noteq_bitwise_or_rule(Parser *p)
8586{
8587 D(p->level++);
8588 if (p->error_indicator) {
8589 D(p->level--);
8590 return NULL;
8591 }
8592 CmpopExprPair* _res = NULL;
8593 int _mark = p->mark;
8594 { // ('!=') bitwise_or
8595 if (p->error_indicator) {
8596 D(p->level--);
8597 return NULL;
8598 }
8599 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 +00008600 void *_tmp_91_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008601 expr_ty a;
8602 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +00008603 (_tmp_91_var = _tmp_91_rule(p)) // '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008604 &&
8605 (a = bitwise_or_rule(p)) // bitwise_or
8606 )
8607 {
8608 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
8609 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
8610 if (_res == NULL && PyErr_Occurred()) {
8611 p->error_indicator = 1;
8612 D(p->level--);
8613 return NULL;
8614 }
8615 goto done;
8616 }
8617 p->mark = _mark;
8618 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8619 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
8620 }
8621 _res = NULL;
8622 done:
8623 D(p->level--);
8624 return _res;
8625}
8626
8627// lte_bitwise_or: '<=' bitwise_or
8628static CmpopExprPair*
8629lte_bitwise_or_rule(Parser *p)
8630{
8631 D(p->level++);
8632 if (p->error_indicator) {
8633 D(p->level--);
8634 return NULL;
8635 }
8636 CmpopExprPair* _res = NULL;
8637 int _mark = p->mark;
8638 { // '<=' bitwise_or
8639 if (p->error_indicator) {
8640 D(p->level--);
8641 return NULL;
8642 }
8643 D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
8644 Token * _literal;
8645 expr_ty a;
8646 if (
8647 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
8648 &&
8649 (a = bitwise_or_rule(p)) // bitwise_or
8650 )
8651 {
8652 D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
8653 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
8654 if (_res == NULL && PyErr_Occurred()) {
8655 p->error_indicator = 1;
8656 D(p->level--);
8657 return NULL;
8658 }
8659 goto done;
8660 }
8661 p->mark = _mark;
8662 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8663 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
8664 }
8665 _res = NULL;
8666 done:
8667 D(p->level--);
8668 return _res;
8669}
8670
8671// lt_bitwise_or: '<' bitwise_or
8672static CmpopExprPair*
8673lt_bitwise_or_rule(Parser *p)
8674{
8675 D(p->level++);
8676 if (p->error_indicator) {
8677 D(p->level--);
8678 return NULL;
8679 }
8680 CmpopExprPair* _res = NULL;
8681 int _mark = p->mark;
8682 { // '<' bitwise_or
8683 if (p->error_indicator) {
8684 D(p->level--);
8685 return NULL;
8686 }
8687 D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
8688 Token * _literal;
8689 expr_ty a;
8690 if (
8691 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
8692 &&
8693 (a = bitwise_or_rule(p)) // bitwise_or
8694 )
8695 {
8696 D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
8697 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
8698 if (_res == NULL && PyErr_Occurred()) {
8699 p->error_indicator = 1;
8700 D(p->level--);
8701 return NULL;
8702 }
8703 goto done;
8704 }
8705 p->mark = _mark;
8706 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8707 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
8708 }
8709 _res = NULL;
8710 done:
8711 D(p->level--);
8712 return _res;
8713}
8714
8715// gte_bitwise_or: '>=' bitwise_or
8716static CmpopExprPair*
8717gte_bitwise_or_rule(Parser *p)
8718{
8719 D(p->level++);
8720 if (p->error_indicator) {
8721 D(p->level--);
8722 return NULL;
8723 }
8724 CmpopExprPair* _res = NULL;
8725 int _mark = p->mark;
8726 { // '>=' bitwise_or
8727 if (p->error_indicator) {
8728 D(p->level--);
8729 return NULL;
8730 }
8731 D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
8732 Token * _literal;
8733 expr_ty a;
8734 if (
8735 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
8736 &&
8737 (a = bitwise_or_rule(p)) // bitwise_or
8738 )
8739 {
8740 D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
8741 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
8742 if (_res == NULL && PyErr_Occurred()) {
8743 p->error_indicator = 1;
8744 D(p->level--);
8745 return NULL;
8746 }
8747 goto done;
8748 }
8749 p->mark = _mark;
8750 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8751 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
8752 }
8753 _res = NULL;
8754 done:
8755 D(p->level--);
8756 return _res;
8757}
8758
8759// gt_bitwise_or: '>' bitwise_or
8760static CmpopExprPair*
8761gt_bitwise_or_rule(Parser *p)
8762{
8763 D(p->level++);
8764 if (p->error_indicator) {
8765 D(p->level--);
8766 return NULL;
8767 }
8768 CmpopExprPair* _res = NULL;
8769 int _mark = p->mark;
8770 { // '>' bitwise_or
8771 if (p->error_indicator) {
8772 D(p->level--);
8773 return NULL;
8774 }
8775 D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
8776 Token * _literal;
8777 expr_ty a;
8778 if (
8779 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
8780 &&
8781 (a = bitwise_or_rule(p)) // bitwise_or
8782 )
8783 {
8784 D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
8785 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
8786 if (_res == NULL && PyErr_Occurred()) {
8787 p->error_indicator = 1;
8788 D(p->level--);
8789 return NULL;
8790 }
8791 goto done;
8792 }
8793 p->mark = _mark;
8794 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
8796 }
8797 _res = NULL;
8798 done:
8799 D(p->level--);
8800 return _res;
8801}
8802
8803// notin_bitwise_or: 'not' 'in' bitwise_or
8804static CmpopExprPair*
8805notin_bitwise_or_rule(Parser *p)
8806{
8807 D(p->level++);
8808 if (p->error_indicator) {
8809 D(p->level--);
8810 return NULL;
8811 }
8812 CmpopExprPair* _res = NULL;
8813 int _mark = p->mark;
8814 { // 'not' 'in' bitwise_or
8815 if (p->error_indicator) {
8816 D(p->level--);
8817 return NULL;
8818 }
8819 D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
8820 Token * _keyword;
8821 Token * _keyword_1;
8822 expr_ty a;
8823 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03008824 (_keyword = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008825 &&
8826 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
8827 &&
8828 (a = bitwise_or_rule(p)) // bitwise_or
8829 )
8830 {
8831 D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
8832 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
8833 if (_res == NULL && PyErr_Occurred()) {
8834 p->error_indicator = 1;
8835 D(p->level--);
8836 return NULL;
8837 }
8838 goto done;
8839 }
8840 p->mark = _mark;
8841 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8842 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
8843 }
8844 _res = NULL;
8845 done:
8846 D(p->level--);
8847 return _res;
8848}
8849
8850// in_bitwise_or: 'in' bitwise_or
8851static CmpopExprPair*
8852in_bitwise_or_rule(Parser *p)
8853{
8854 D(p->level++);
8855 if (p->error_indicator) {
8856 D(p->level--);
8857 return NULL;
8858 }
8859 CmpopExprPair* _res = NULL;
8860 int _mark = p->mark;
8861 { // 'in' bitwise_or
8862 if (p->error_indicator) {
8863 D(p->level--);
8864 return NULL;
8865 }
8866 D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
8867 Token * _keyword;
8868 expr_ty a;
8869 if (
8870 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
8871 &&
8872 (a = bitwise_or_rule(p)) // bitwise_or
8873 )
8874 {
8875 D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
8876 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
8877 if (_res == NULL && PyErr_Occurred()) {
8878 p->error_indicator = 1;
8879 D(p->level--);
8880 return NULL;
8881 }
8882 goto done;
8883 }
8884 p->mark = _mark;
8885 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8886 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
8887 }
8888 _res = NULL;
8889 done:
8890 D(p->level--);
8891 return _res;
8892}
8893
8894// isnot_bitwise_or: 'is' 'not' bitwise_or
8895static CmpopExprPair*
8896isnot_bitwise_or_rule(Parser *p)
8897{
8898 D(p->level++);
8899 if (p->error_indicator) {
8900 D(p->level--);
8901 return NULL;
8902 }
8903 CmpopExprPair* _res = NULL;
8904 int _mark = p->mark;
8905 { // 'is' 'not' bitwise_or
8906 if (p->error_indicator) {
8907 D(p->level--);
8908 return NULL;
8909 }
8910 D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
8911 Token * _keyword;
8912 Token * _keyword_1;
8913 expr_ty a;
8914 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03008915 (_keyword = _PyPegen_expect_token(p, 527)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008916 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03008917 (_keyword_1 = _PyPegen_expect_token(p, 526)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008918 &&
8919 (a = bitwise_or_rule(p)) // bitwise_or
8920 )
8921 {
8922 D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
8923 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
8924 if (_res == NULL && PyErr_Occurred()) {
8925 p->error_indicator = 1;
8926 D(p->level--);
8927 return NULL;
8928 }
8929 goto done;
8930 }
8931 p->mark = _mark;
8932 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
8934 }
8935 _res = NULL;
8936 done:
8937 D(p->level--);
8938 return _res;
8939}
8940
8941// is_bitwise_or: 'is' bitwise_or
8942static CmpopExprPair*
8943is_bitwise_or_rule(Parser *p)
8944{
8945 D(p->level++);
8946 if (p->error_indicator) {
8947 D(p->level--);
8948 return NULL;
8949 }
8950 CmpopExprPair* _res = NULL;
8951 int _mark = p->mark;
8952 { // 'is' bitwise_or
8953 if (p->error_indicator) {
8954 D(p->level--);
8955 return NULL;
8956 }
8957 D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
8958 Token * _keyword;
8959 expr_ty a;
8960 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03008961 (_keyword = _PyPegen_expect_token(p, 527)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008962 &&
8963 (a = bitwise_or_rule(p)) // bitwise_or
8964 )
8965 {
8966 D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
8967 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
8968 if (_res == NULL && PyErr_Occurred()) {
8969 p->error_indicator = 1;
8970 D(p->level--);
8971 return NULL;
8972 }
8973 goto done;
8974 }
8975 p->mark = _mark;
8976 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8977 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
8978 }
8979 _res = NULL;
8980 done:
8981 D(p->level--);
8982 return _res;
8983}
8984
8985// Left-recursive
8986// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
8987static expr_ty bitwise_or_raw(Parser *);
8988static expr_ty
8989bitwise_or_rule(Parser *p)
8990{
8991 D(p->level++);
8992 expr_ty _res = NULL;
8993 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
8994 D(p->level--);
8995 return _res;
8996 }
8997 int _mark = p->mark;
8998 int _resmark = p->mark;
8999 while (1) {
9000 int tmpvar_1 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
9001 if (tmpvar_1) {
9002 D(p->level--);
9003 return _res;
9004 }
9005 p->mark = _mark;
9006 void *_raw = bitwise_or_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009007 if (p->error_indicator)
9008 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009009 if (_raw == NULL || p->mark <= _resmark)
9010 break;
9011 _resmark = p->mark;
9012 _res = _raw;
9013 }
9014 p->mark = _resmark;
9015 D(p->level--);
9016 return _res;
9017}
9018static expr_ty
9019bitwise_or_raw(Parser *p)
9020{
9021 D(p->level++);
9022 if (p->error_indicator) {
9023 D(p->level--);
9024 return NULL;
9025 }
9026 expr_ty _res = NULL;
9027 int _mark = p->mark;
9028 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9029 p->error_indicator = 1;
9030 D(p->level--);
9031 return NULL;
9032 }
9033 int _start_lineno = p->tokens[_mark]->lineno;
9034 UNUSED(_start_lineno); // Only used by EXTRA macro
9035 int _start_col_offset = p->tokens[_mark]->col_offset;
9036 UNUSED(_start_col_offset); // Only used by EXTRA macro
9037 { // bitwise_or '|' bitwise_xor
9038 if (p->error_indicator) {
9039 D(p->level--);
9040 return NULL;
9041 }
9042 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
9043 Token * _literal;
9044 expr_ty a;
9045 expr_ty b;
9046 if (
9047 (a = bitwise_or_rule(p)) // bitwise_or
9048 &&
9049 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
9050 &&
9051 (b = bitwise_xor_rule(p)) // bitwise_xor
9052 )
9053 {
9054 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
9055 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9056 if (_token == NULL) {
9057 D(p->level--);
9058 return NULL;
9059 }
9060 int _end_lineno = _token->end_lineno;
9061 UNUSED(_end_lineno); // Only used by EXTRA macro
9062 int _end_col_offset = _token->end_col_offset;
9063 UNUSED(_end_col_offset); // Only used by EXTRA macro
9064 _res = _Py_BinOp ( a , BitOr , b , EXTRA );
9065 if (_res == NULL && PyErr_Occurred()) {
9066 p->error_indicator = 1;
9067 D(p->level--);
9068 return NULL;
9069 }
9070 goto done;
9071 }
9072 p->mark = _mark;
9073 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9074 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
9075 }
9076 { // bitwise_xor
9077 if (p->error_indicator) {
9078 D(p->level--);
9079 return NULL;
9080 }
9081 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
9082 expr_ty bitwise_xor_var;
9083 if (
9084 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
9085 )
9086 {
9087 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
9088 _res = bitwise_xor_var;
9089 goto done;
9090 }
9091 p->mark = _mark;
9092 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
9093 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
9094 }
9095 _res = NULL;
9096 done:
9097 D(p->level--);
9098 return _res;
9099}
9100
9101// Left-recursive
9102// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
9103static expr_ty bitwise_xor_raw(Parser *);
9104static expr_ty
9105bitwise_xor_rule(Parser *p)
9106{
9107 D(p->level++);
9108 expr_ty _res = NULL;
9109 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
9110 D(p->level--);
9111 return _res;
9112 }
9113 int _mark = p->mark;
9114 int _resmark = p->mark;
9115 while (1) {
9116 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
9117 if (tmpvar_2) {
9118 D(p->level--);
9119 return _res;
9120 }
9121 p->mark = _mark;
9122 void *_raw = bitwise_xor_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009123 if (p->error_indicator)
9124 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009125 if (_raw == NULL || p->mark <= _resmark)
9126 break;
9127 _resmark = p->mark;
9128 _res = _raw;
9129 }
9130 p->mark = _resmark;
9131 D(p->level--);
9132 return _res;
9133}
9134static expr_ty
9135bitwise_xor_raw(Parser *p)
9136{
9137 D(p->level++);
9138 if (p->error_indicator) {
9139 D(p->level--);
9140 return NULL;
9141 }
9142 expr_ty _res = NULL;
9143 int _mark = p->mark;
9144 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9145 p->error_indicator = 1;
9146 D(p->level--);
9147 return NULL;
9148 }
9149 int _start_lineno = p->tokens[_mark]->lineno;
9150 UNUSED(_start_lineno); // Only used by EXTRA macro
9151 int _start_col_offset = p->tokens[_mark]->col_offset;
9152 UNUSED(_start_col_offset); // Only used by EXTRA macro
9153 { // bitwise_xor '^' bitwise_and
9154 if (p->error_indicator) {
9155 D(p->level--);
9156 return NULL;
9157 }
9158 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
9159 Token * _literal;
9160 expr_ty a;
9161 expr_ty b;
9162 if (
9163 (a = bitwise_xor_rule(p)) // bitwise_xor
9164 &&
9165 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
9166 &&
9167 (b = bitwise_and_rule(p)) // bitwise_and
9168 )
9169 {
9170 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
9171 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9172 if (_token == NULL) {
9173 D(p->level--);
9174 return NULL;
9175 }
9176 int _end_lineno = _token->end_lineno;
9177 UNUSED(_end_lineno); // Only used by EXTRA macro
9178 int _end_col_offset = _token->end_col_offset;
9179 UNUSED(_end_col_offset); // Only used by EXTRA macro
9180 _res = _Py_BinOp ( a , BitXor , b , EXTRA );
9181 if (_res == NULL && PyErr_Occurred()) {
9182 p->error_indicator = 1;
9183 D(p->level--);
9184 return NULL;
9185 }
9186 goto done;
9187 }
9188 p->mark = _mark;
9189 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
9190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
9191 }
9192 { // bitwise_and
9193 if (p->error_indicator) {
9194 D(p->level--);
9195 return NULL;
9196 }
9197 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
9198 expr_ty bitwise_and_var;
9199 if (
9200 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
9201 )
9202 {
9203 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
9204 _res = bitwise_and_var;
9205 goto done;
9206 }
9207 p->mark = _mark;
9208 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
9209 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
9210 }
9211 _res = NULL;
9212 done:
9213 D(p->level--);
9214 return _res;
9215}
9216
9217// Left-recursive
9218// bitwise_and: bitwise_and '&' shift_expr | shift_expr
9219static expr_ty bitwise_and_raw(Parser *);
9220static expr_ty
9221bitwise_and_rule(Parser *p)
9222{
9223 D(p->level++);
9224 expr_ty _res = NULL;
9225 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
9226 D(p->level--);
9227 return _res;
9228 }
9229 int _mark = p->mark;
9230 int _resmark = p->mark;
9231 while (1) {
9232 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
9233 if (tmpvar_3) {
9234 D(p->level--);
9235 return _res;
9236 }
9237 p->mark = _mark;
9238 void *_raw = bitwise_and_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009239 if (p->error_indicator)
9240 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009241 if (_raw == NULL || p->mark <= _resmark)
9242 break;
9243 _resmark = p->mark;
9244 _res = _raw;
9245 }
9246 p->mark = _resmark;
9247 D(p->level--);
9248 return _res;
9249}
9250static expr_ty
9251bitwise_and_raw(Parser *p)
9252{
9253 D(p->level++);
9254 if (p->error_indicator) {
9255 D(p->level--);
9256 return NULL;
9257 }
9258 expr_ty _res = NULL;
9259 int _mark = p->mark;
9260 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9261 p->error_indicator = 1;
9262 D(p->level--);
9263 return NULL;
9264 }
9265 int _start_lineno = p->tokens[_mark]->lineno;
9266 UNUSED(_start_lineno); // Only used by EXTRA macro
9267 int _start_col_offset = p->tokens[_mark]->col_offset;
9268 UNUSED(_start_col_offset); // Only used by EXTRA macro
9269 { // bitwise_and '&' shift_expr
9270 if (p->error_indicator) {
9271 D(p->level--);
9272 return NULL;
9273 }
9274 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
9275 Token * _literal;
9276 expr_ty a;
9277 expr_ty b;
9278 if (
9279 (a = bitwise_and_rule(p)) // bitwise_and
9280 &&
9281 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
9282 &&
9283 (b = shift_expr_rule(p)) // shift_expr
9284 )
9285 {
9286 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
9287 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9288 if (_token == NULL) {
9289 D(p->level--);
9290 return NULL;
9291 }
9292 int _end_lineno = _token->end_lineno;
9293 UNUSED(_end_lineno); // Only used by EXTRA macro
9294 int _end_col_offset = _token->end_col_offset;
9295 UNUSED(_end_col_offset); // Only used by EXTRA macro
9296 _res = _Py_BinOp ( a , BitAnd , b , EXTRA );
9297 if (_res == NULL && PyErr_Occurred()) {
9298 p->error_indicator = 1;
9299 D(p->level--);
9300 return NULL;
9301 }
9302 goto done;
9303 }
9304 p->mark = _mark;
9305 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
9306 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
9307 }
9308 { // shift_expr
9309 if (p->error_indicator) {
9310 D(p->level--);
9311 return NULL;
9312 }
9313 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
9314 expr_ty shift_expr_var;
9315 if (
9316 (shift_expr_var = shift_expr_rule(p)) // shift_expr
9317 )
9318 {
9319 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
9320 _res = shift_expr_var;
9321 goto done;
9322 }
9323 p->mark = _mark;
9324 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
9325 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
9326 }
9327 _res = NULL;
9328 done:
9329 D(p->level--);
9330 return _res;
9331}
9332
9333// Left-recursive
9334// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
9335static expr_ty shift_expr_raw(Parser *);
9336static expr_ty
9337shift_expr_rule(Parser *p)
9338{
9339 D(p->level++);
9340 expr_ty _res = NULL;
9341 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
9342 D(p->level--);
9343 return _res;
9344 }
9345 int _mark = p->mark;
9346 int _resmark = p->mark;
9347 while (1) {
9348 int tmpvar_4 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
9349 if (tmpvar_4) {
9350 D(p->level--);
9351 return _res;
9352 }
9353 p->mark = _mark;
9354 void *_raw = shift_expr_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009355 if (p->error_indicator)
9356 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009357 if (_raw == NULL || p->mark <= _resmark)
9358 break;
9359 _resmark = p->mark;
9360 _res = _raw;
9361 }
9362 p->mark = _resmark;
9363 D(p->level--);
9364 return _res;
9365}
9366static expr_ty
9367shift_expr_raw(Parser *p)
9368{
9369 D(p->level++);
9370 if (p->error_indicator) {
9371 D(p->level--);
9372 return NULL;
9373 }
9374 expr_ty _res = NULL;
9375 int _mark = p->mark;
9376 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9377 p->error_indicator = 1;
9378 D(p->level--);
9379 return NULL;
9380 }
9381 int _start_lineno = p->tokens[_mark]->lineno;
9382 UNUSED(_start_lineno); // Only used by EXTRA macro
9383 int _start_col_offset = p->tokens[_mark]->col_offset;
9384 UNUSED(_start_col_offset); // Only used by EXTRA macro
9385 { // shift_expr '<<' sum
9386 if (p->error_indicator) {
9387 D(p->level--);
9388 return NULL;
9389 }
9390 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
9391 Token * _literal;
9392 expr_ty a;
9393 expr_ty b;
9394 if (
9395 (a = shift_expr_rule(p)) // shift_expr
9396 &&
9397 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
9398 &&
9399 (b = sum_rule(p)) // sum
9400 )
9401 {
9402 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
9403 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9404 if (_token == NULL) {
9405 D(p->level--);
9406 return NULL;
9407 }
9408 int _end_lineno = _token->end_lineno;
9409 UNUSED(_end_lineno); // Only used by EXTRA macro
9410 int _end_col_offset = _token->end_col_offset;
9411 UNUSED(_end_col_offset); // Only used by EXTRA macro
9412 _res = _Py_BinOp ( a , LShift , b , EXTRA );
9413 if (_res == NULL && PyErr_Occurred()) {
9414 p->error_indicator = 1;
9415 D(p->level--);
9416 return NULL;
9417 }
9418 goto done;
9419 }
9420 p->mark = _mark;
9421 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9422 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
9423 }
9424 { // shift_expr '>>' sum
9425 if (p->error_indicator) {
9426 D(p->level--);
9427 return NULL;
9428 }
9429 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
9430 Token * _literal;
9431 expr_ty a;
9432 expr_ty b;
9433 if (
9434 (a = shift_expr_rule(p)) // shift_expr
9435 &&
9436 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
9437 &&
9438 (b = sum_rule(p)) // sum
9439 )
9440 {
9441 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
9442 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9443 if (_token == NULL) {
9444 D(p->level--);
9445 return NULL;
9446 }
9447 int _end_lineno = _token->end_lineno;
9448 UNUSED(_end_lineno); // Only used by EXTRA macro
9449 int _end_col_offset = _token->end_col_offset;
9450 UNUSED(_end_col_offset); // Only used by EXTRA macro
9451 _res = _Py_BinOp ( a , RShift , b , EXTRA );
9452 if (_res == NULL && PyErr_Occurred()) {
9453 p->error_indicator = 1;
9454 D(p->level--);
9455 return NULL;
9456 }
9457 goto done;
9458 }
9459 p->mark = _mark;
9460 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9461 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
9462 }
9463 { // sum
9464 if (p->error_indicator) {
9465 D(p->level--);
9466 return NULL;
9467 }
9468 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
9469 expr_ty sum_var;
9470 if (
9471 (sum_var = sum_rule(p)) // sum
9472 )
9473 {
9474 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
9475 _res = sum_var;
9476 goto done;
9477 }
9478 p->mark = _mark;
9479 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9480 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
9481 }
9482 _res = NULL;
9483 done:
9484 D(p->level--);
9485 return _res;
9486}
9487
9488// Left-recursive
9489// sum: sum '+' term | sum '-' term | term
9490static expr_ty sum_raw(Parser *);
9491static expr_ty
9492sum_rule(Parser *p)
9493{
9494 D(p->level++);
9495 expr_ty _res = NULL;
9496 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
9497 D(p->level--);
9498 return _res;
9499 }
9500 int _mark = p->mark;
9501 int _resmark = p->mark;
9502 while (1) {
9503 int tmpvar_5 = _PyPegen_update_memo(p, _mark, sum_type, _res);
9504 if (tmpvar_5) {
9505 D(p->level--);
9506 return _res;
9507 }
9508 p->mark = _mark;
9509 void *_raw = sum_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009510 if (p->error_indicator)
9511 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009512 if (_raw == NULL || p->mark <= _resmark)
9513 break;
9514 _resmark = p->mark;
9515 _res = _raw;
9516 }
9517 p->mark = _resmark;
9518 D(p->level--);
9519 return _res;
9520}
9521static expr_ty
9522sum_raw(Parser *p)
9523{
9524 D(p->level++);
9525 if (p->error_indicator) {
9526 D(p->level--);
9527 return NULL;
9528 }
9529 expr_ty _res = NULL;
9530 int _mark = p->mark;
9531 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9532 p->error_indicator = 1;
9533 D(p->level--);
9534 return NULL;
9535 }
9536 int _start_lineno = p->tokens[_mark]->lineno;
9537 UNUSED(_start_lineno); // Only used by EXTRA macro
9538 int _start_col_offset = p->tokens[_mark]->col_offset;
9539 UNUSED(_start_col_offset); // Only used by EXTRA macro
9540 { // sum '+' term
9541 if (p->error_indicator) {
9542 D(p->level--);
9543 return NULL;
9544 }
9545 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
9546 Token * _literal;
9547 expr_ty a;
9548 expr_ty b;
9549 if (
9550 (a = sum_rule(p)) // sum
9551 &&
9552 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
9553 &&
9554 (b = term_rule(p)) // term
9555 )
9556 {
9557 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
9558 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9559 if (_token == NULL) {
9560 D(p->level--);
9561 return NULL;
9562 }
9563 int _end_lineno = _token->end_lineno;
9564 UNUSED(_end_lineno); // Only used by EXTRA macro
9565 int _end_col_offset = _token->end_col_offset;
9566 UNUSED(_end_col_offset); // Only used by EXTRA macro
9567 _res = _Py_BinOp ( a , Add , b , EXTRA );
9568 if (_res == NULL && PyErr_Occurred()) {
9569 p->error_indicator = 1;
9570 D(p->level--);
9571 return NULL;
9572 }
9573 goto done;
9574 }
9575 p->mark = _mark;
9576 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9577 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
9578 }
9579 { // sum '-' term
9580 if (p->error_indicator) {
9581 D(p->level--);
9582 return NULL;
9583 }
9584 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
9585 Token * _literal;
9586 expr_ty a;
9587 expr_ty b;
9588 if (
9589 (a = sum_rule(p)) // sum
9590 &&
9591 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
9592 &&
9593 (b = term_rule(p)) // term
9594 )
9595 {
9596 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
9597 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9598 if (_token == NULL) {
9599 D(p->level--);
9600 return NULL;
9601 }
9602 int _end_lineno = _token->end_lineno;
9603 UNUSED(_end_lineno); // Only used by EXTRA macro
9604 int _end_col_offset = _token->end_col_offset;
9605 UNUSED(_end_col_offset); // Only used by EXTRA macro
9606 _res = _Py_BinOp ( a , Sub , b , EXTRA );
9607 if (_res == NULL && PyErr_Occurred()) {
9608 p->error_indicator = 1;
9609 D(p->level--);
9610 return NULL;
9611 }
9612 goto done;
9613 }
9614 p->mark = _mark;
9615 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
9617 }
9618 { // term
9619 if (p->error_indicator) {
9620 D(p->level--);
9621 return NULL;
9622 }
9623 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
9624 expr_ty term_var;
9625 if (
9626 (term_var = term_rule(p)) // term
9627 )
9628 {
9629 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
9630 _res = term_var;
9631 goto done;
9632 }
9633 p->mark = _mark;
9634 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
9636 }
9637 _res = NULL;
9638 done:
9639 D(p->level--);
9640 return _res;
9641}
9642
9643// Left-recursive
9644// term:
9645// | term '*' factor
9646// | term '/' factor
9647// | term '//' factor
9648// | term '%' factor
9649// | term '@' factor
9650// | factor
9651static expr_ty term_raw(Parser *);
9652static expr_ty
9653term_rule(Parser *p)
9654{
9655 D(p->level++);
9656 expr_ty _res = NULL;
9657 if (_PyPegen_is_memoized(p, term_type, &_res)) {
9658 D(p->level--);
9659 return _res;
9660 }
9661 int _mark = p->mark;
9662 int _resmark = p->mark;
9663 while (1) {
9664 int tmpvar_6 = _PyPegen_update_memo(p, _mark, term_type, _res);
9665 if (tmpvar_6) {
9666 D(p->level--);
9667 return _res;
9668 }
9669 p->mark = _mark;
9670 void *_raw = term_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02009671 if (p->error_indicator)
9672 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009673 if (_raw == NULL || p->mark <= _resmark)
9674 break;
9675 _resmark = p->mark;
9676 _res = _raw;
9677 }
9678 p->mark = _resmark;
9679 D(p->level--);
9680 return _res;
9681}
9682static expr_ty
9683term_raw(Parser *p)
9684{
9685 D(p->level++);
9686 if (p->error_indicator) {
9687 D(p->level--);
9688 return NULL;
9689 }
9690 expr_ty _res = NULL;
9691 int _mark = p->mark;
9692 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9693 p->error_indicator = 1;
9694 D(p->level--);
9695 return NULL;
9696 }
9697 int _start_lineno = p->tokens[_mark]->lineno;
9698 UNUSED(_start_lineno); // Only used by EXTRA macro
9699 int _start_col_offset = p->tokens[_mark]->col_offset;
9700 UNUSED(_start_col_offset); // Only used by EXTRA macro
9701 { // term '*' factor
9702 if (p->error_indicator) {
9703 D(p->level--);
9704 return NULL;
9705 }
9706 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
9707 Token * _literal;
9708 expr_ty a;
9709 expr_ty b;
9710 if (
9711 (a = term_rule(p)) // term
9712 &&
9713 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9714 &&
9715 (b = factor_rule(p)) // factor
9716 )
9717 {
9718 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
9719 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9720 if (_token == NULL) {
9721 D(p->level--);
9722 return NULL;
9723 }
9724 int _end_lineno = _token->end_lineno;
9725 UNUSED(_end_lineno); // Only used by EXTRA macro
9726 int _end_col_offset = _token->end_col_offset;
9727 UNUSED(_end_col_offset); // Only used by EXTRA macro
9728 _res = _Py_BinOp ( a , Mult , b , EXTRA );
9729 if (_res == NULL && PyErr_Occurred()) {
9730 p->error_indicator = 1;
9731 D(p->level--);
9732 return NULL;
9733 }
9734 goto done;
9735 }
9736 p->mark = _mark;
9737 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
9739 }
9740 { // term '/' factor
9741 if (p->error_indicator) {
9742 D(p->level--);
9743 return NULL;
9744 }
9745 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
9746 Token * _literal;
9747 expr_ty a;
9748 expr_ty b;
9749 if (
9750 (a = term_rule(p)) // term
9751 &&
9752 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
9753 &&
9754 (b = factor_rule(p)) // factor
9755 )
9756 {
9757 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
9758 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9759 if (_token == NULL) {
9760 D(p->level--);
9761 return NULL;
9762 }
9763 int _end_lineno = _token->end_lineno;
9764 UNUSED(_end_lineno); // Only used by EXTRA macro
9765 int _end_col_offset = _token->end_col_offset;
9766 UNUSED(_end_col_offset); // Only used by EXTRA macro
9767 _res = _Py_BinOp ( a , Div , b , EXTRA );
9768 if (_res == NULL && PyErr_Occurred()) {
9769 p->error_indicator = 1;
9770 D(p->level--);
9771 return NULL;
9772 }
9773 goto done;
9774 }
9775 p->mark = _mark;
9776 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9777 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
9778 }
9779 { // term '//' factor
9780 if (p->error_indicator) {
9781 D(p->level--);
9782 return NULL;
9783 }
9784 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
9785 Token * _literal;
9786 expr_ty a;
9787 expr_ty b;
9788 if (
9789 (a = term_rule(p)) // term
9790 &&
9791 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
9792 &&
9793 (b = factor_rule(p)) // factor
9794 )
9795 {
9796 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
9797 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9798 if (_token == NULL) {
9799 D(p->level--);
9800 return NULL;
9801 }
9802 int _end_lineno = _token->end_lineno;
9803 UNUSED(_end_lineno); // Only used by EXTRA macro
9804 int _end_col_offset = _token->end_col_offset;
9805 UNUSED(_end_col_offset); // Only used by EXTRA macro
9806 _res = _Py_BinOp ( a , FloorDiv , b , EXTRA );
9807 if (_res == NULL && PyErr_Occurred()) {
9808 p->error_indicator = 1;
9809 D(p->level--);
9810 return NULL;
9811 }
9812 goto done;
9813 }
9814 p->mark = _mark;
9815 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9816 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
9817 }
9818 { // term '%' factor
9819 if (p->error_indicator) {
9820 D(p->level--);
9821 return NULL;
9822 }
9823 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
9824 Token * _literal;
9825 expr_ty a;
9826 expr_ty b;
9827 if (
9828 (a = term_rule(p)) // term
9829 &&
9830 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
9831 &&
9832 (b = factor_rule(p)) // factor
9833 )
9834 {
9835 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
9836 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9837 if (_token == NULL) {
9838 D(p->level--);
9839 return NULL;
9840 }
9841 int _end_lineno = _token->end_lineno;
9842 UNUSED(_end_lineno); // Only used by EXTRA macro
9843 int _end_col_offset = _token->end_col_offset;
9844 UNUSED(_end_col_offset); // Only used by EXTRA macro
9845 _res = _Py_BinOp ( a , Mod , b , EXTRA );
9846 if (_res == NULL && PyErr_Occurred()) {
9847 p->error_indicator = 1;
9848 D(p->level--);
9849 return NULL;
9850 }
9851 goto done;
9852 }
9853 p->mark = _mark;
9854 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9855 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
9856 }
9857 { // term '@' factor
9858 if (p->error_indicator) {
9859 D(p->level--);
9860 return NULL;
9861 }
9862 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
9863 Token * _literal;
9864 expr_ty a;
9865 expr_ty b;
9866 if (
9867 (a = term_rule(p)) // term
9868 &&
9869 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
9870 &&
9871 (b = factor_rule(p)) // factor
9872 )
9873 {
9874 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
9875 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9876 if (_token == NULL) {
9877 D(p->level--);
9878 return NULL;
9879 }
9880 int _end_lineno = _token->end_lineno;
9881 UNUSED(_end_lineno); // Only used by EXTRA macro
9882 int _end_col_offset = _token->end_col_offset;
9883 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03009884 _res = CHECK_VERSION ( expr_ty , 5 , "The '@' operator is" , _Py_BinOp ( a , MatMult , b , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009885 if (_res == NULL && PyErr_Occurred()) {
9886 p->error_indicator = 1;
9887 D(p->level--);
9888 return NULL;
9889 }
9890 goto done;
9891 }
9892 p->mark = _mark;
9893 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
9895 }
9896 { // factor
9897 if (p->error_indicator) {
9898 D(p->level--);
9899 return NULL;
9900 }
9901 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
9902 expr_ty factor_var;
9903 if (
9904 (factor_var = factor_rule(p)) // factor
9905 )
9906 {
9907 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
9908 _res = factor_var;
9909 goto done;
9910 }
9911 p->mark = _mark;
9912 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9913 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
9914 }
9915 _res = NULL;
9916 done:
9917 D(p->level--);
9918 return _res;
9919}
9920
9921// factor: '+' factor | '-' factor | '~' factor | power
9922static expr_ty
9923factor_rule(Parser *p)
9924{
9925 D(p->level++);
9926 if (p->error_indicator) {
9927 D(p->level--);
9928 return NULL;
9929 }
9930 expr_ty _res = NULL;
9931 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
9932 D(p->level--);
9933 return _res;
9934 }
9935 int _mark = p->mark;
9936 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9937 p->error_indicator = 1;
9938 D(p->level--);
9939 return NULL;
9940 }
9941 int _start_lineno = p->tokens[_mark]->lineno;
9942 UNUSED(_start_lineno); // Only used by EXTRA macro
9943 int _start_col_offset = p->tokens[_mark]->col_offset;
9944 UNUSED(_start_col_offset); // Only used by EXTRA macro
9945 { // '+' factor
9946 if (p->error_indicator) {
9947 D(p->level--);
9948 return NULL;
9949 }
9950 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
9951 Token * _literal;
9952 expr_ty a;
9953 if (
9954 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
9955 &&
9956 (a = factor_rule(p)) // factor
9957 )
9958 {
9959 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
9960 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9961 if (_token == NULL) {
9962 D(p->level--);
9963 return NULL;
9964 }
9965 int _end_lineno = _token->end_lineno;
9966 UNUSED(_end_lineno); // Only used by EXTRA macro
9967 int _end_col_offset = _token->end_col_offset;
9968 UNUSED(_end_col_offset); // Only used by EXTRA macro
9969 _res = _Py_UnaryOp ( UAdd , a , EXTRA );
9970 if (_res == NULL && PyErr_Occurred()) {
9971 p->error_indicator = 1;
9972 D(p->level--);
9973 return NULL;
9974 }
9975 goto done;
9976 }
9977 p->mark = _mark;
9978 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
9979 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
9980 }
9981 { // '-' factor
9982 if (p->error_indicator) {
9983 D(p->level--);
9984 return NULL;
9985 }
9986 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
9987 Token * _literal;
9988 expr_ty a;
9989 if (
9990 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
9991 &&
9992 (a = factor_rule(p)) // factor
9993 )
9994 {
9995 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
9996 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9997 if (_token == NULL) {
9998 D(p->level--);
9999 return NULL;
10000 }
10001 int _end_lineno = _token->end_lineno;
10002 UNUSED(_end_lineno); // Only used by EXTRA macro
10003 int _end_col_offset = _token->end_col_offset;
10004 UNUSED(_end_col_offset); // Only used by EXTRA macro
10005 _res = _Py_UnaryOp ( USub , a , EXTRA );
10006 if (_res == NULL && PyErr_Occurred()) {
10007 p->error_indicator = 1;
10008 D(p->level--);
10009 return NULL;
10010 }
10011 goto done;
10012 }
10013 p->mark = _mark;
10014 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10015 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
10016 }
10017 { // '~' factor
10018 if (p->error_indicator) {
10019 D(p->level--);
10020 return NULL;
10021 }
10022 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
10023 Token * _literal;
10024 expr_ty a;
10025 if (
10026 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
10027 &&
10028 (a = factor_rule(p)) // factor
10029 )
10030 {
10031 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
10032 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10033 if (_token == NULL) {
10034 D(p->level--);
10035 return NULL;
10036 }
10037 int _end_lineno = _token->end_lineno;
10038 UNUSED(_end_lineno); // Only used by EXTRA macro
10039 int _end_col_offset = _token->end_col_offset;
10040 UNUSED(_end_col_offset); // Only used by EXTRA macro
10041 _res = _Py_UnaryOp ( Invert , a , EXTRA );
10042 if (_res == NULL && PyErr_Occurred()) {
10043 p->error_indicator = 1;
10044 D(p->level--);
10045 return NULL;
10046 }
10047 goto done;
10048 }
10049 p->mark = _mark;
10050 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10051 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
10052 }
10053 { // power
10054 if (p->error_indicator) {
10055 D(p->level--);
10056 return NULL;
10057 }
10058 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
10059 expr_ty power_var;
10060 if (
10061 (power_var = power_rule(p)) // power
10062 )
10063 {
10064 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
10065 _res = power_var;
10066 goto done;
10067 }
10068 p->mark = _mark;
10069 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
10070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
10071 }
10072 _res = NULL;
10073 done:
10074 _PyPegen_insert_memo(p, _mark, factor_type, _res);
10075 D(p->level--);
10076 return _res;
10077}
10078
10079// power: await_primary '**' factor | await_primary
10080static expr_ty
10081power_rule(Parser *p)
10082{
10083 D(p->level++);
10084 if (p->error_indicator) {
10085 D(p->level--);
10086 return NULL;
10087 }
10088 expr_ty _res = NULL;
10089 int _mark = p->mark;
10090 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10091 p->error_indicator = 1;
10092 D(p->level--);
10093 return NULL;
10094 }
10095 int _start_lineno = p->tokens[_mark]->lineno;
10096 UNUSED(_start_lineno); // Only used by EXTRA macro
10097 int _start_col_offset = p->tokens[_mark]->col_offset;
10098 UNUSED(_start_col_offset); // Only used by EXTRA macro
10099 { // await_primary '**' factor
10100 if (p->error_indicator) {
10101 D(p->level--);
10102 return NULL;
10103 }
10104 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
10105 Token * _literal;
10106 expr_ty a;
10107 expr_ty b;
10108 if (
10109 (a = await_primary_rule(p)) // await_primary
10110 &&
10111 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
10112 &&
10113 (b = factor_rule(p)) // factor
10114 )
10115 {
10116 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
10117 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10118 if (_token == NULL) {
10119 D(p->level--);
10120 return NULL;
10121 }
10122 int _end_lineno = _token->end_lineno;
10123 UNUSED(_end_lineno); // Only used by EXTRA macro
10124 int _end_col_offset = _token->end_col_offset;
10125 UNUSED(_end_col_offset); // Only used by EXTRA macro
10126 _res = _Py_BinOp ( a , Pow , b , EXTRA );
10127 if (_res == NULL && PyErr_Occurred()) {
10128 p->error_indicator = 1;
10129 D(p->level--);
10130 return NULL;
10131 }
10132 goto done;
10133 }
10134 p->mark = _mark;
10135 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
10136 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
10137 }
10138 { // await_primary
10139 if (p->error_indicator) {
10140 D(p->level--);
10141 return NULL;
10142 }
10143 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
10144 expr_ty await_primary_var;
10145 if (
10146 (await_primary_var = await_primary_rule(p)) // await_primary
10147 )
10148 {
10149 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
10150 _res = await_primary_var;
10151 goto done;
10152 }
10153 p->mark = _mark;
10154 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
10155 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
10156 }
10157 _res = NULL;
10158 done:
10159 D(p->level--);
10160 return _res;
10161}
10162
10163// await_primary: AWAIT primary | primary
10164static expr_ty
10165await_primary_rule(Parser *p)
10166{
10167 D(p->level++);
10168 if (p->error_indicator) {
10169 D(p->level--);
10170 return NULL;
10171 }
10172 expr_ty _res = NULL;
10173 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
10174 D(p->level--);
10175 return _res;
10176 }
10177 int _mark = p->mark;
10178 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10179 p->error_indicator = 1;
10180 D(p->level--);
10181 return NULL;
10182 }
10183 int _start_lineno = p->tokens[_mark]->lineno;
10184 UNUSED(_start_lineno); // Only used by EXTRA macro
10185 int _start_col_offset = p->tokens[_mark]->col_offset;
10186 UNUSED(_start_col_offset); // Only used by EXTRA macro
10187 { // AWAIT primary
10188 if (p->error_indicator) {
10189 D(p->level--);
10190 return NULL;
10191 }
10192 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
10193 expr_ty a;
10194 Token * await_var;
10195 if (
10196 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
10197 &&
10198 (a = primary_rule(p)) // primary
10199 )
10200 {
10201 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
10202 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10203 if (_token == NULL) {
10204 D(p->level--);
10205 return NULL;
10206 }
10207 int _end_lineno = _token->end_lineno;
10208 UNUSED(_end_lineno); // Only used by EXTRA macro
10209 int _end_col_offset = _token->end_col_offset;
10210 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030010211 _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _Py_Await ( a , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010212 if (_res == NULL && PyErr_Occurred()) {
10213 p->error_indicator = 1;
10214 D(p->level--);
10215 return NULL;
10216 }
10217 goto done;
10218 }
10219 p->mark = _mark;
10220 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
10221 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
10222 }
10223 { // primary
10224 if (p->error_indicator) {
10225 D(p->level--);
10226 return NULL;
10227 }
10228 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
10229 expr_ty primary_var;
10230 if (
10231 (primary_var = primary_rule(p)) // primary
10232 )
10233 {
10234 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
10235 _res = primary_var;
10236 goto done;
10237 }
10238 p->mark = _mark;
10239 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
10240 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
10241 }
10242 _res = NULL;
10243 done:
10244 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
10245 D(p->level--);
10246 return _res;
10247}
10248
10249// Left-recursive
10250// primary:
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020010251// | invalid_primary
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010252// | primary '.' NAME
10253// | primary genexp
10254// | primary '(' arguments? ')'
10255// | primary '[' slices ']'
10256// | atom
10257static expr_ty primary_raw(Parser *);
10258static expr_ty
10259primary_rule(Parser *p)
10260{
10261 D(p->level++);
10262 expr_ty _res = NULL;
10263 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
10264 D(p->level--);
10265 return _res;
10266 }
10267 int _mark = p->mark;
10268 int _resmark = p->mark;
10269 while (1) {
10270 int tmpvar_7 = _PyPegen_update_memo(p, _mark, primary_type, _res);
10271 if (tmpvar_7) {
10272 D(p->level--);
10273 return _res;
10274 }
10275 p->mark = _mark;
10276 void *_raw = primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020010277 if (p->error_indicator)
10278 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010279 if (_raw == NULL || p->mark <= _resmark)
10280 break;
10281 _resmark = p->mark;
10282 _res = _raw;
10283 }
10284 p->mark = _resmark;
10285 D(p->level--);
10286 return _res;
10287}
10288static expr_ty
10289primary_raw(Parser *p)
10290{
10291 D(p->level++);
10292 if (p->error_indicator) {
10293 D(p->level--);
10294 return NULL;
10295 }
10296 expr_ty _res = NULL;
10297 int _mark = p->mark;
10298 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10299 p->error_indicator = 1;
10300 D(p->level--);
10301 return NULL;
10302 }
10303 int _start_lineno = p->tokens[_mark]->lineno;
10304 UNUSED(_start_lineno); // Only used by EXTRA macro
10305 int _start_col_offset = p->tokens[_mark]->col_offset;
10306 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020010307 if (p->call_invalid_rules) { // invalid_primary
10308 if (p->error_indicator) {
10309 D(p->level--);
10310 return NULL;
10311 }
10312 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
10313 void *invalid_primary_var;
10314 if (
10315 (invalid_primary_var = invalid_primary_rule(p)) // invalid_primary
10316 )
10317 {
10318 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
10319 _res = invalid_primary_var;
10320 goto done;
10321 }
10322 p->mark = _mark;
10323 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10324 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
10325 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010326 { // primary '.' NAME
10327 if (p->error_indicator) {
10328 D(p->level--);
10329 return NULL;
10330 }
10331 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
10332 Token * _literal;
10333 expr_ty a;
10334 expr_ty b;
10335 if (
10336 (a = primary_rule(p)) // primary
10337 &&
10338 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
10339 &&
10340 (b = _PyPegen_name_token(p)) // NAME
10341 )
10342 {
10343 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
10344 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10345 if (_token == NULL) {
10346 D(p->level--);
10347 return NULL;
10348 }
10349 int _end_lineno = _token->end_lineno;
10350 UNUSED(_end_lineno); // Only used by EXTRA macro
10351 int _end_col_offset = _token->end_col_offset;
10352 UNUSED(_end_col_offset); // Only used by EXTRA macro
10353 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
10354 if (_res == NULL && PyErr_Occurred()) {
10355 p->error_indicator = 1;
10356 D(p->level--);
10357 return NULL;
10358 }
10359 goto done;
10360 }
10361 p->mark = _mark;
10362 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10363 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
10364 }
10365 { // primary genexp
10366 if (p->error_indicator) {
10367 D(p->level--);
10368 return NULL;
10369 }
10370 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
10371 expr_ty a;
10372 expr_ty b;
10373 if (
10374 (a = primary_rule(p)) // primary
10375 &&
10376 (b = genexp_rule(p)) // genexp
10377 )
10378 {
10379 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
10380 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10381 if (_token == NULL) {
10382 D(p->level--);
10383 return NULL;
10384 }
10385 int _end_lineno = _token->end_lineno;
10386 UNUSED(_end_lineno); // Only used by EXTRA macro
10387 int _end_col_offset = _token->end_col_offset;
10388 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030010389 _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 +010010390 if (_res == NULL && PyErr_Occurred()) {
10391 p->error_indicator = 1;
10392 D(p->level--);
10393 return NULL;
10394 }
10395 goto done;
10396 }
10397 p->mark = _mark;
10398 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10399 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
10400 }
10401 { // primary '(' arguments? ')'
10402 if (p->error_indicator) {
10403 D(p->level--);
10404 return NULL;
10405 }
10406 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
10407 Token * _literal;
10408 Token * _literal_1;
10409 expr_ty a;
10410 void *b;
10411 if (
10412 (a = primary_rule(p)) // primary
10413 &&
10414 (_literal = _PyPegen_expect_token(p, 7)) // token='('
10415 &&
10416 (b = arguments_rule(p), 1) // arguments?
10417 &&
10418 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
10419 )
10420 {
10421 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
10422 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10423 if (_token == NULL) {
10424 D(p->level--);
10425 return NULL;
10426 }
10427 int _end_lineno = _token->end_lineno;
10428 UNUSED(_end_lineno); // Only used by EXTRA macro
10429 int _end_col_offset = _token->end_col_offset;
10430 UNUSED(_end_col_offset); // Only used by EXTRA macro
10431 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
10432 if (_res == NULL && PyErr_Occurred()) {
10433 p->error_indicator = 1;
10434 D(p->level--);
10435 return NULL;
10436 }
10437 goto done;
10438 }
10439 p->mark = _mark;
10440 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10441 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
10442 }
10443 { // primary '[' slices ']'
10444 if (p->error_indicator) {
10445 D(p->level--);
10446 return NULL;
10447 }
10448 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
10449 Token * _literal;
10450 Token * _literal_1;
10451 expr_ty a;
10452 expr_ty b;
10453 if (
10454 (a = primary_rule(p)) // primary
10455 &&
10456 (_literal = _PyPegen_expect_token(p, 9)) // token='['
10457 &&
10458 (b = slices_rule(p)) // slices
10459 &&
10460 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
10461 )
10462 {
10463 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
10464 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10465 if (_token == NULL) {
10466 D(p->level--);
10467 return NULL;
10468 }
10469 int _end_lineno = _token->end_lineno;
10470 UNUSED(_end_lineno); // Only used by EXTRA macro
10471 int _end_col_offset = _token->end_col_offset;
10472 UNUSED(_end_col_offset); // Only used by EXTRA macro
10473 _res = _Py_Subscript ( a , b , Load , EXTRA );
10474 if (_res == NULL && PyErr_Occurred()) {
10475 p->error_indicator = 1;
10476 D(p->level--);
10477 return NULL;
10478 }
10479 goto done;
10480 }
10481 p->mark = _mark;
10482 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10483 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
10484 }
10485 { // atom
10486 if (p->error_indicator) {
10487 D(p->level--);
10488 return NULL;
10489 }
10490 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
10491 expr_ty atom_var;
10492 if (
10493 (atom_var = atom_rule(p)) // atom
10494 )
10495 {
10496 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
10497 _res = atom_var;
10498 goto done;
10499 }
10500 p->mark = _mark;
10501 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10502 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
10503 }
10504 _res = NULL;
10505 done:
10506 D(p->level--);
10507 return _res;
10508}
10509
10510// slices: slice !',' | ','.slice+ ','?
10511static expr_ty
10512slices_rule(Parser *p)
10513{
10514 D(p->level++);
10515 if (p->error_indicator) {
10516 D(p->level--);
10517 return NULL;
10518 }
10519 expr_ty _res = NULL;
10520 int _mark = p->mark;
10521 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10522 p->error_indicator = 1;
10523 D(p->level--);
10524 return NULL;
10525 }
10526 int _start_lineno = p->tokens[_mark]->lineno;
10527 UNUSED(_start_lineno); // Only used by EXTRA macro
10528 int _start_col_offset = p->tokens[_mark]->col_offset;
10529 UNUSED(_start_col_offset); // Only used by EXTRA macro
10530 { // slice !','
10531 if (p->error_indicator) {
10532 D(p->level--);
10533 return NULL;
10534 }
10535 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
10536 expr_ty a;
10537 if (
10538 (a = slice_rule(p)) // slice
10539 &&
10540 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
10541 )
10542 {
10543 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
10544 _res = a;
10545 if (_res == NULL && PyErr_Occurred()) {
10546 p->error_indicator = 1;
10547 D(p->level--);
10548 return NULL;
10549 }
10550 goto done;
10551 }
10552 p->mark = _mark;
10553 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
10554 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
10555 }
10556 { // ','.slice+ ','?
10557 if (p->error_indicator) {
10558 D(p->level--);
10559 return NULL;
10560 }
10561 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
10562 void *_opt_var;
10563 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010010564 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010565 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010566 (a = (asdl_expr_seq*)_gather_92_rule(p)) // ','.slice+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010567 &&
10568 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
10569 )
10570 {
10571 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
10572 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10573 if (_token == NULL) {
10574 D(p->level--);
10575 return NULL;
10576 }
10577 int _end_lineno = _token->end_lineno;
10578 UNUSED(_end_lineno); // Only used by EXTRA macro
10579 int _end_col_offset = _token->end_col_offset;
10580 UNUSED(_end_col_offset); // Only used by EXTRA macro
10581 _res = _Py_Tuple ( a , Load , EXTRA );
10582 if (_res == NULL && PyErr_Occurred()) {
10583 p->error_indicator = 1;
10584 D(p->level--);
10585 return NULL;
10586 }
10587 goto done;
10588 }
10589 p->mark = _mark;
10590 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
10591 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
10592 }
10593 _res = NULL;
10594 done:
10595 D(p->level--);
10596 return _res;
10597}
10598
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010599// slice: expression? ':' expression? [':' expression?] | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010600static expr_ty
10601slice_rule(Parser *p)
10602{
10603 D(p->level++);
10604 if (p->error_indicator) {
10605 D(p->level--);
10606 return NULL;
10607 }
10608 expr_ty _res = NULL;
10609 int _mark = p->mark;
10610 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10611 p->error_indicator = 1;
10612 D(p->level--);
10613 return NULL;
10614 }
10615 int _start_lineno = p->tokens[_mark]->lineno;
10616 UNUSED(_start_lineno); // Only used by EXTRA macro
10617 int _start_col_offset = p->tokens[_mark]->col_offset;
10618 UNUSED(_start_col_offset); // Only used by EXTRA macro
10619 { // expression? ':' expression? [':' expression?]
10620 if (p->error_indicator) {
10621 D(p->level--);
10622 return NULL;
10623 }
10624 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
10625 Token * _literal;
10626 void *a;
10627 void *b;
10628 void *c;
10629 if (
10630 (a = expression_rule(p), 1) // expression?
10631 &&
10632 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
10633 &&
10634 (b = expression_rule(p), 1) // expression?
10635 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010636 (c = _tmp_94_rule(p), 1) // [':' expression?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010637 )
10638 {
10639 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
10640 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10641 if (_token == NULL) {
10642 D(p->level--);
10643 return NULL;
10644 }
10645 int _end_lineno = _token->end_lineno;
10646 UNUSED(_end_lineno); // Only used by EXTRA macro
10647 int _end_col_offset = _token->end_col_offset;
10648 UNUSED(_end_col_offset); // Only used by EXTRA macro
10649 _res = _Py_Slice ( a , b , c , EXTRA );
10650 if (_res == NULL && PyErr_Occurred()) {
10651 p->error_indicator = 1;
10652 D(p->level--);
10653 return NULL;
10654 }
10655 goto done;
10656 }
10657 p->mark = _mark;
10658 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
10659 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
10660 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010661 { // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010662 if (p->error_indicator) {
10663 D(p->level--);
10664 return NULL;
10665 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010666 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010667 expr_ty a;
10668 if (
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010669 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010670 )
10671 {
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010672 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010673 _res = a;
10674 if (_res == NULL && PyErr_Occurred()) {
10675 p->error_indicator = 1;
10676 D(p->level--);
10677 return NULL;
10678 }
10679 goto done;
10680 }
10681 p->mark = _mark;
10682 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020010683 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010684 }
10685 _res = NULL;
10686 done:
10687 D(p->level--);
10688 return _res;
10689}
10690
10691// atom:
10692// | NAME
10693// | 'True'
10694// | 'False'
10695// | 'None'
10696// | &STRING strings
10697// | NUMBER
10698// | &'(' (tuple | group | genexp)
10699// | &'[' (list | listcomp)
10700// | &'{' (dict | set | dictcomp | setcomp)
10701// | '...'
10702static expr_ty
10703atom_rule(Parser *p)
10704{
10705 D(p->level++);
10706 if (p->error_indicator) {
10707 D(p->level--);
10708 return NULL;
10709 }
10710 expr_ty _res = NULL;
10711 int _mark = p->mark;
10712 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10713 p->error_indicator = 1;
10714 D(p->level--);
10715 return NULL;
10716 }
10717 int _start_lineno = p->tokens[_mark]->lineno;
10718 UNUSED(_start_lineno); // Only used by EXTRA macro
10719 int _start_col_offset = p->tokens[_mark]->col_offset;
10720 UNUSED(_start_col_offset); // Only used by EXTRA macro
10721 { // NAME
10722 if (p->error_indicator) {
10723 D(p->level--);
10724 return NULL;
10725 }
10726 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
10727 expr_ty name_var;
10728 if (
10729 (name_var = _PyPegen_name_token(p)) // NAME
10730 )
10731 {
10732 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
10733 _res = name_var;
10734 goto done;
10735 }
10736 p->mark = _mark;
10737 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
10739 }
10740 { // 'True'
10741 if (p->error_indicator) {
10742 D(p->level--);
10743 return NULL;
10744 }
10745 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
10746 Token * _keyword;
10747 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010748 (_keyword = _PyPegen_expect_token(p, 528)) // token='True'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010749 )
10750 {
10751 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
10752 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10753 if (_token == NULL) {
10754 D(p->level--);
10755 return NULL;
10756 }
10757 int _end_lineno = _token->end_lineno;
10758 UNUSED(_end_lineno); // Only used by EXTRA macro
10759 int _end_col_offset = _token->end_col_offset;
10760 UNUSED(_end_col_offset); // Only used by EXTRA macro
10761 _res = _Py_Constant ( Py_True , NULL , EXTRA );
10762 if (_res == NULL && PyErr_Occurred()) {
10763 p->error_indicator = 1;
10764 D(p->level--);
10765 return NULL;
10766 }
10767 goto done;
10768 }
10769 p->mark = _mark;
10770 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10771 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
10772 }
10773 { // 'False'
10774 if (p->error_indicator) {
10775 D(p->level--);
10776 return NULL;
10777 }
10778 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
10779 Token * _keyword;
10780 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010781 (_keyword = _PyPegen_expect_token(p, 529)) // token='False'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010782 )
10783 {
10784 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
10785 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10786 if (_token == NULL) {
10787 D(p->level--);
10788 return NULL;
10789 }
10790 int _end_lineno = _token->end_lineno;
10791 UNUSED(_end_lineno); // Only used by EXTRA macro
10792 int _end_col_offset = _token->end_col_offset;
10793 UNUSED(_end_col_offset); // Only used by EXTRA macro
10794 _res = _Py_Constant ( Py_False , NULL , EXTRA );
10795 if (_res == NULL && PyErr_Occurred()) {
10796 p->error_indicator = 1;
10797 D(p->level--);
10798 return NULL;
10799 }
10800 goto done;
10801 }
10802 p->mark = _mark;
10803 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10804 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
10805 }
10806 { // 'None'
10807 if (p->error_indicator) {
10808 D(p->level--);
10809 return NULL;
10810 }
10811 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
10812 Token * _keyword;
10813 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010814 (_keyword = _PyPegen_expect_token(p, 530)) // token='None'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010815 )
10816 {
10817 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
10818 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10819 if (_token == NULL) {
10820 D(p->level--);
10821 return NULL;
10822 }
10823 int _end_lineno = _token->end_lineno;
10824 UNUSED(_end_lineno); // Only used by EXTRA macro
10825 int _end_col_offset = _token->end_col_offset;
10826 UNUSED(_end_col_offset); // Only used by EXTRA macro
10827 _res = _Py_Constant ( Py_None , NULL , EXTRA );
10828 if (_res == NULL && PyErr_Occurred()) {
10829 p->error_indicator = 1;
10830 D(p->level--);
10831 return NULL;
10832 }
10833 goto done;
10834 }
10835 p->mark = _mark;
10836 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10837 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
10838 }
10839 { // &STRING strings
10840 if (p->error_indicator) {
10841 D(p->level--);
10842 return NULL;
10843 }
10844 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
10845 expr_ty strings_var;
10846 if (
10847 _PyPegen_lookahead(1, _PyPegen_string_token, p)
10848 &&
10849 (strings_var = strings_rule(p)) // strings
10850 )
10851 {
10852 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
10853 _res = strings_var;
10854 goto done;
10855 }
10856 p->mark = _mark;
10857 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10858 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
10859 }
10860 { // NUMBER
10861 if (p->error_indicator) {
10862 D(p->level--);
10863 return NULL;
10864 }
10865 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
10866 expr_ty number_var;
10867 if (
10868 (number_var = _PyPegen_number_token(p)) // NUMBER
10869 )
10870 {
10871 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
10872 _res = number_var;
10873 goto done;
10874 }
10875 p->mark = _mark;
10876 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10877 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
10878 }
10879 { // &'(' (tuple | group | genexp)
10880 if (p->error_indicator) {
10881 D(p->level--);
10882 return NULL;
10883 }
10884 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010885 void *_tmp_95_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010886 if (
10887 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
10888 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010889 (_tmp_95_var = _tmp_95_rule(p)) // tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010890 )
10891 {
10892 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 +000010893 _res = _tmp_95_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010894 goto done;
10895 }
10896 p->mark = _mark;
10897 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10898 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
10899 }
10900 { // &'[' (list | listcomp)
10901 if (p->error_indicator) {
10902 D(p->level--);
10903 return NULL;
10904 }
10905 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010906 void *_tmp_96_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010907 if (
10908 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
10909 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010910 (_tmp_96_var = _tmp_96_rule(p)) // list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010911 )
10912 {
10913 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010914 _res = _tmp_96_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010915 goto done;
10916 }
10917 p->mark = _mark;
10918 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10919 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
10920 }
10921 { // &'{' (dict | set | dictcomp | setcomp)
10922 if (p->error_indicator) {
10923 D(p->level--);
10924 return NULL;
10925 }
10926 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010927 void *_tmp_97_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010928 if (
10929 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
10930 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010931 (_tmp_97_var = _tmp_97_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010932 )
10933 {
10934 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000010935 _res = _tmp_97_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010936 goto done;
10937 }
10938 p->mark = _mark;
10939 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10940 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
10941 }
10942 { // '...'
10943 if (p->error_indicator) {
10944 D(p->level--);
10945 return NULL;
10946 }
10947 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
10948 Token * _literal;
10949 if (
10950 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
10951 )
10952 {
10953 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
10954 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10955 if (_token == NULL) {
10956 D(p->level--);
10957 return NULL;
10958 }
10959 int _end_lineno = _token->end_lineno;
10960 UNUSED(_end_lineno); // Only used by EXTRA macro
10961 int _end_col_offset = _token->end_col_offset;
10962 UNUSED(_end_col_offset); // Only used by EXTRA macro
10963 _res = _Py_Constant ( Py_Ellipsis , NULL , EXTRA );
10964 if (_res == NULL && PyErr_Occurred()) {
10965 p->error_indicator = 1;
10966 D(p->level--);
10967 return NULL;
10968 }
10969 goto done;
10970 }
10971 p->mark = _mark;
10972 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10973 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
10974 }
10975 _res = NULL;
10976 done:
10977 D(p->level--);
10978 return _res;
10979}
10980
10981// strings: STRING+
10982static expr_ty
10983strings_rule(Parser *p)
10984{
10985 D(p->level++);
10986 if (p->error_indicator) {
10987 D(p->level--);
10988 return NULL;
10989 }
10990 expr_ty _res = NULL;
10991 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
10992 D(p->level--);
10993 return _res;
10994 }
10995 int _mark = p->mark;
10996 { // STRING+
10997 if (p->error_indicator) {
10998 D(p->level--);
10999 return NULL;
11000 }
11001 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
11002 asdl_seq * a;
11003 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011004 (a = _loop1_98_rule(p)) // STRING+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011005 )
11006 {
11007 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
11008 _res = _PyPegen_concatenate_strings ( p , a );
11009 if (_res == NULL && PyErr_Occurred()) {
11010 p->error_indicator = 1;
11011 D(p->level--);
11012 return NULL;
11013 }
11014 goto done;
11015 }
11016 p->mark = _mark;
11017 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
11018 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
11019 }
11020 _res = NULL;
11021 done:
11022 _PyPegen_insert_memo(p, _mark, strings_type, _res);
11023 D(p->level--);
11024 return _res;
11025}
11026
11027// list: '[' star_named_expressions? ']'
11028static expr_ty
11029list_rule(Parser *p)
11030{
11031 D(p->level++);
11032 if (p->error_indicator) {
11033 D(p->level--);
11034 return NULL;
11035 }
11036 expr_ty _res = NULL;
11037 int _mark = p->mark;
11038 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11039 p->error_indicator = 1;
11040 D(p->level--);
11041 return NULL;
11042 }
11043 int _start_lineno = p->tokens[_mark]->lineno;
11044 UNUSED(_start_lineno); // Only used by EXTRA macro
11045 int _start_col_offset = p->tokens[_mark]->col_offset;
11046 UNUSED(_start_col_offset); // Only used by EXTRA macro
11047 { // '[' star_named_expressions? ']'
11048 if (p->error_indicator) {
11049 D(p->level--);
11050 return NULL;
11051 }
11052 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
11053 Token * _literal;
11054 Token * _literal_1;
11055 void *a;
11056 if (
11057 (_literal = _PyPegen_expect_token(p, 9)) // token='['
11058 &&
11059 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
11060 &&
11061 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
11062 )
11063 {
11064 D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
11065 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11066 if (_token == NULL) {
11067 D(p->level--);
11068 return NULL;
11069 }
11070 int _end_lineno = _token->end_lineno;
11071 UNUSED(_end_lineno); // Only used by EXTRA macro
11072 int _end_col_offset = _token->end_col_offset;
11073 UNUSED(_end_col_offset); // Only used by EXTRA macro
11074 _res = _Py_List ( a , Load , EXTRA );
11075 if (_res == NULL && PyErr_Occurred()) {
11076 p->error_indicator = 1;
11077 D(p->level--);
11078 return NULL;
11079 }
11080 goto done;
11081 }
11082 p->mark = _mark;
11083 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
11084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
11085 }
11086 _res = NULL;
11087 done:
11088 D(p->level--);
11089 return _res;
11090}
11091
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011092// listcomp: '[' named_expression ~ for_if_clauses ']' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011093static expr_ty
11094listcomp_rule(Parser *p)
11095{
11096 D(p->level++);
11097 if (p->error_indicator) {
11098 D(p->level--);
11099 return NULL;
11100 }
11101 expr_ty _res = NULL;
11102 int _mark = p->mark;
11103 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11104 p->error_indicator = 1;
11105 D(p->level--);
11106 return NULL;
11107 }
11108 int _start_lineno = p->tokens[_mark]->lineno;
11109 UNUSED(_start_lineno); // Only used by EXTRA macro
11110 int _start_col_offset = p->tokens[_mark]->col_offset;
11111 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011112 { // '[' named_expression ~ for_if_clauses ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011113 if (p->error_indicator) {
11114 D(p->level--);
11115 return NULL;
11116 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011117 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' named_expression ~ for_if_clauses ']'"));
11118 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011119 Token * _literal;
11120 Token * _literal_1;
11121 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011122 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011123 if (
11124 (_literal = _PyPegen_expect_token(p, 9)) // token='['
11125 &&
11126 (a = named_expression_rule(p)) // named_expression
11127 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011128 (_cut_var = 1)
11129 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011130 (b = for_if_clauses_rule(p)) // for_if_clauses
11131 &&
11132 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
11133 )
11134 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011135 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 +010011136 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11137 if (_token == NULL) {
11138 D(p->level--);
11139 return NULL;
11140 }
11141 int _end_lineno = _token->end_lineno;
11142 UNUSED(_end_lineno); // Only used by EXTRA macro
11143 int _end_col_offset = _token->end_col_offset;
11144 UNUSED(_end_col_offset); // Only used by EXTRA macro
11145 _res = _Py_ListComp ( a , b , EXTRA );
11146 if (_res == NULL && PyErr_Occurred()) {
11147 p->error_indicator = 1;
11148 D(p->level--);
11149 return NULL;
11150 }
11151 goto done;
11152 }
11153 p->mark = _mark;
11154 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011155 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression ~ for_if_clauses ']'"));
11156 if (_cut_var) {
11157 D(p->level--);
11158 return NULL;
11159 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011160 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011161 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011162 if (p->error_indicator) {
11163 D(p->level--);
11164 return NULL;
11165 }
11166 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11167 void *invalid_comprehension_var;
11168 if (
11169 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
11170 )
11171 {
11172 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11173 _res = invalid_comprehension_var;
11174 goto done;
11175 }
11176 p->mark = _mark;
11177 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
11178 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
11179 }
11180 _res = NULL;
11181 done:
11182 D(p->level--);
11183 return _res;
11184}
11185
11186// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
11187static expr_ty
11188tuple_rule(Parser *p)
11189{
11190 D(p->level++);
11191 if (p->error_indicator) {
11192 D(p->level--);
11193 return NULL;
11194 }
11195 expr_ty _res = NULL;
11196 int _mark = p->mark;
11197 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11198 p->error_indicator = 1;
11199 D(p->level--);
11200 return NULL;
11201 }
11202 int _start_lineno = p->tokens[_mark]->lineno;
11203 UNUSED(_start_lineno); // Only used by EXTRA macro
11204 int _start_col_offset = p->tokens[_mark]->col_offset;
11205 UNUSED(_start_col_offset); // Only used by EXTRA macro
11206 { // '(' [star_named_expression ',' star_named_expressions?] ')'
11207 if (p->error_indicator) {
11208 D(p->level--);
11209 return NULL;
11210 }
11211 D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
11212 Token * _literal;
11213 Token * _literal_1;
11214 void *a;
11215 if (
11216 (_literal = _PyPegen_expect_token(p, 7)) // token='('
11217 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011218 (a = _tmp_99_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011219 &&
11220 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
11221 )
11222 {
11223 D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
11224 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11225 if (_token == NULL) {
11226 D(p->level--);
11227 return NULL;
11228 }
11229 int _end_lineno = _token->end_lineno;
11230 UNUSED(_end_lineno); // Only used by EXTRA macro
11231 int _end_col_offset = _token->end_col_offset;
11232 UNUSED(_end_col_offset); // Only used by EXTRA macro
11233 _res = _Py_Tuple ( a , Load , EXTRA );
11234 if (_res == NULL && PyErr_Occurred()) {
11235 p->error_indicator = 1;
11236 D(p->level--);
11237 return NULL;
11238 }
11239 goto done;
11240 }
11241 p->mark = _mark;
11242 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
11243 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
11244 }
11245 _res = NULL;
11246 done:
11247 D(p->level--);
11248 return _res;
11249}
11250
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011251// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011252static expr_ty
11253group_rule(Parser *p)
11254{
11255 D(p->level++);
11256 if (p->error_indicator) {
11257 D(p->level--);
11258 return NULL;
11259 }
11260 expr_ty _res = NULL;
11261 int _mark = p->mark;
11262 { // '(' (yield_expr | named_expression) ')'
11263 if (p->error_indicator) {
11264 D(p->level--);
11265 return NULL;
11266 }
11267 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
11268 Token * _literal;
11269 Token * _literal_1;
11270 void *a;
11271 if (
11272 (_literal = _PyPegen_expect_token(p, 7)) // token='('
11273 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011274 (a = _tmp_100_rule(p)) // yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011275 &&
11276 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
11277 )
11278 {
11279 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
11280 _res = a;
11281 if (_res == NULL && PyErr_Occurred()) {
11282 p->error_indicator = 1;
11283 D(p->level--);
11284 return NULL;
11285 }
11286 goto done;
11287 }
11288 p->mark = _mark;
11289 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
11290 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
11291 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011292 if (p->call_invalid_rules) { // invalid_group
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011293 if (p->error_indicator) {
11294 D(p->level--);
11295 return NULL;
11296 }
11297 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
11298 void *invalid_group_var;
11299 if (
11300 (invalid_group_var = invalid_group_rule(p)) // invalid_group
11301 )
11302 {
11303 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
11304 _res = invalid_group_var;
11305 goto done;
11306 }
11307 p->mark = _mark;
11308 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
11309 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
11310 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011311 _res = NULL;
11312 done:
11313 D(p->level--);
11314 return _res;
11315}
11316
Lysandros Nikolaoucb3e5ed2020-11-17 01:08:35 +020011317// genexp: '(' named_expression ~ for_if_clauses ')' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011318static expr_ty
11319genexp_rule(Parser *p)
11320{
11321 D(p->level++);
11322 if (p->error_indicator) {
11323 D(p->level--);
11324 return NULL;
11325 }
11326 expr_ty _res = NULL;
11327 int _mark = p->mark;
11328 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11329 p->error_indicator = 1;
11330 D(p->level--);
11331 return NULL;
11332 }
11333 int _start_lineno = p->tokens[_mark]->lineno;
11334 UNUSED(_start_lineno); // Only used by EXTRA macro
11335 int _start_col_offset = p->tokens[_mark]->col_offset;
11336 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaoucb3e5ed2020-11-17 01:08:35 +020011337 { // '(' named_expression ~ for_if_clauses ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011338 if (p->error_indicator) {
11339 D(p->level--);
11340 return NULL;
11341 }
Lysandros Nikolaoucb3e5ed2020-11-17 01:08:35 +020011342 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' named_expression ~ for_if_clauses ')'"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011343 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011344 Token * _literal;
11345 Token * _literal_1;
11346 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011347 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011348 if (
11349 (_literal = _PyPegen_expect_token(p, 7)) // token='('
11350 &&
Lysandros Nikolaoucb3e5ed2020-11-17 01:08:35 +020011351 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011352 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011353 (_cut_var = 1)
11354 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011355 (b = for_if_clauses_rule(p)) // for_if_clauses
11356 &&
11357 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
11358 )
11359 {
Lysandros Nikolaoucb3e5ed2020-11-17 01:08:35 +020011360 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 +010011361 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11362 if (_token == NULL) {
11363 D(p->level--);
11364 return NULL;
11365 }
11366 int _end_lineno = _token->end_lineno;
11367 UNUSED(_end_lineno); // Only used by EXTRA macro
11368 int _end_col_offset = _token->end_col_offset;
11369 UNUSED(_end_col_offset); // Only used by EXTRA macro
11370 _res = _Py_GeneratorExp ( a , b , EXTRA );
11371 if (_res == NULL && PyErr_Occurred()) {
11372 p->error_indicator = 1;
11373 D(p->level--);
11374 return NULL;
11375 }
11376 goto done;
11377 }
11378 p->mark = _mark;
11379 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoucb3e5ed2020-11-17 01:08:35 +020011380 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' named_expression ~ for_if_clauses ')'"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011381 if (_cut_var) {
11382 D(p->level--);
11383 return NULL;
11384 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011385 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011386 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011387 if (p->error_indicator) {
11388 D(p->level--);
11389 return NULL;
11390 }
11391 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11392 void *invalid_comprehension_var;
11393 if (
11394 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
11395 )
11396 {
11397 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11398 _res = invalid_comprehension_var;
11399 goto done;
11400 }
11401 p->mark = _mark;
11402 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
11403 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
11404 }
11405 _res = NULL;
11406 done:
11407 D(p->level--);
11408 return _res;
11409}
11410
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011411// set: '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011412static expr_ty
11413set_rule(Parser *p)
11414{
11415 D(p->level++);
11416 if (p->error_indicator) {
11417 D(p->level--);
11418 return NULL;
11419 }
11420 expr_ty _res = NULL;
11421 int _mark = p->mark;
11422 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11423 p->error_indicator = 1;
11424 D(p->level--);
11425 return NULL;
11426 }
11427 int _start_lineno = p->tokens[_mark]->lineno;
11428 UNUSED(_start_lineno); // Only used by EXTRA macro
11429 int _start_col_offset = p->tokens[_mark]->col_offset;
11430 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011431 { // '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011432 if (p->error_indicator) {
11433 D(p->level--);
11434 return NULL;
11435 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011436 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011437 Token * _literal;
11438 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011439 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011440 if (
11441 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
11442 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011443 (a = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011444 &&
11445 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
11446 )
11447 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011448 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 +010011449 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11450 if (_token == NULL) {
11451 D(p->level--);
11452 return NULL;
11453 }
11454 int _end_lineno = _token->end_lineno;
11455 UNUSED(_end_lineno); // Only used by EXTRA macro
11456 int _end_col_offset = _token->end_col_offset;
11457 UNUSED(_end_col_offset); // Only used by EXTRA macro
11458 _res = _Py_Set ( a , EXTRA );
11459 if (_res == NULL && PyErr_Occurred()) {
11460 p->error_indicator = 1;
11461 D(p->level--);
11462 return NULL;
11463 }
11464 goto done;
11465 }
11466 p->mark = _mark;
11467 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011468 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011469 }
11470 _res = NULL;
11471 done:
11472 D(p->level--);
11473 return _res;
11474}
11475
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011476// setcomp: '{' named_expression ~ for_if_clauses '}' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011477static expr_ty
11478setcomp_rule(Parser *p)
11479{
11480 D(p->level++);
11481 if (p->error_indicator) {
11482 D(p->level--);
11483 return NULL;
11484 }
11485 expr_ty _res = NULL;
11486 int _mark = p->mark;
11487 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11488 p->error_indicator = 1;
11489 D(p->level--);
11490 return NULL;
11491 }
11492 int _start_lineno = p->tokens[_mark]->lineno;
11493 UNUSED(_start_lineno); // Only used by EXTRA macro
11494 int _start_col_offset = p->tokens[_mark]->col_offset;
11495 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011496 { // '{' named_expression ~ for_if_clauses '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011497 if (p->error_indicator) {
11498 D(p->level--);
11499 return NULL;
11500 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011501 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' named_expression ~ for_if_clauses '}'"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011502 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011503 Token * _literal;
11504 Token * _literal_1;
11505 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011506 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011507 if (
11508 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
11509 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011510 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011511 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011512 (_cut_var = 1)
11513 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011514 (b = for_if_clauses_rule(p)) // for_if_clauses
11515 &&
11516 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
11517 )
11518 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011519 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 +010011520 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11521 if (_token == NULL) {
11522 D(p->level--);
11523 return NULL;
11524 }
11525 int _end_lineno = _token->end_lineno;
11526 UNUSED(_end_lineno); // Only used by EXTRA macro
11527 int _end_col_offset = _token->end_col_offset;
11528 UNUSED(_end_col_offset); // Only used by EXTRA macro
11529 _res = _Py_SetComp ( a , b , EXTRA );
11530 if (_res == NULL && PyErr_Occurred()) {
11531 p->error_indicator = 1;
11532 D(p->level--);
11533 return NULL;
11534 }
11535 goto done;
11536 }
11537 p->mark = _mark;
11538 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011539 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression ~ for_if_clauses '}'"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011540 if (_cut_var) {
11541 D(p->level--);
11542 return NULL;
11543 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011544 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011545 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011546 if (p->error_indicator) {
11547 D(p->level--);
11548 return NULL;
11549 }
11550 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11551 void *invalid_comprehension_var;
11552 if (
11553 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
11554 )
11555 {
11556 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
11557 _res = invalid_comprehension_var;
11558 goto done;
11559 }
11560 p->mark = _mark;
11561 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
11562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
11563 }
11564 _res = NULL;
11565 done:
11566 D(p->level--);
11567 return _res;
11568}
11569
11570// dict: '{' double_starred_kvpairs? '}'
11571static expr_ty
11572dict_rule(Parser *p)
11573{
11574 D(p->level++);
11575 if (p->error_indicator) {
11576 D(p->level--);
11577 return NULL;
11578 }
11579 expr_ty _res = NULL;
11580 int _mark = p->mark;
11581 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11582 p->error_indicator = 1;
11583 D(p->level--);
11584 return NULL;
11585 }
11586 int _start_lineno = p->tokens[_mark]->lineno;
11587 UNUSED(_start_lineno); // Only used by EXTRA macro
11588 int _start_col_offset = p->tokens[_mark]->col_offset;
11589 UNUSED(_start_col_offset); // Only used by EXTRA macro
11590 { // '{' double_starred_kvpairs? '}'
11591 if (p->error_indicator) {
11592 D(p->level--);
11593 return NULL;
11594 }
11595 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
11596 Token * _literal;
11597 Token * _literal_1;
11598 void *a;
11599 if (
11600 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
11601 &&
11602 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
11603 &&
11604 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
11605 )
11606 {
11607 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
11608 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11609 if (_token == NULL) {
11610 D(p->level--);
11611 return NULL;
11612 }
11613 int _end_lineno = _token->end_lineno;
11614 UNUSED(_end_lineno); // Only used by EXTRA macro
11615 int _end_col_offset = _token->end_col_offset;
11616 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030011617 _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 +010011618 if (_res == NULL && PyErr_Occurred()) {
11619 p->error_indicator = 1;
11620 D(p->level--);
11621 return NULL;
11622 }
11623 goto done;
11624 }
11625 p->mark = _mark;
11626 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
11627 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
11628 }
11629 _res = NULL;
11630 done:
11631 D(p->level--);
11632 return _res;
11633}
11634
11635// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
11636static expr_ty
11637dictcomp_rule(Parser *p)
11638{
11639 D(p->level++);
11640 if (p->error_indicator) {
11641 D(p->level--);
11642 return NULL;
11643 }
11644 expr_ty _res = NULL;
11645 int _mark = p->mark;
11646 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11647 p->error_indicator = 1;
11648 D(p->level--);
11649 return NULL;
11650 }
11651 int _start_lineno = p->tokens[_mark]->lineno;
11652 UNUSED(_start_lineno); // Only used by EXTRA macro
11653 int _start_col_offset = p->tokens[_mark]->col_offset;
11654 UNUSED(_start_col_offset); // Only used by EXTRA macro
11655 { // '{' kvpair for_if_clauses '}'
11656 if (p->error_indicator) {
11657 D(p->level--);
11658 return NULL;
11659 }
11660 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
11661 Token * _literal;
11662 Token * _literal_1;
11663 KeyValuePair* a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011664 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011665 if (
11666 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
11667 &&
11668 (a = kvpair_rule(p)) // kvpair
11669 &&
11670 (b = for_if_clauses_rule(p)) // for_if_clauses
11671 &&
11672 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
11673 )
11674 {
11675 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
11676 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11677 if (_token == NULL) {
11678 D(p->level--);
11679 return NULL;
11680 }
11681 int _end_lineno = _token->end_lineno;
11682 UNUSED(_end_lineno); // Only used by EXTRA macro
11683 int _end_col_offset = _token->end_col_offset;
11684 UNUSED(_end_col_offset); // Only used by EXTRA macro
11685 _res = _Py_DictComp ( a -> key , a -> value , b , EXTRA );
11686 if (_res == NULL && PyErr_Occurred()) {
11687 p->error_indicator = 1;
11688 D(p->level--);
11689 return NULL;
11690 }
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, "'{' kvpair for_if_clauses '}'"));
11696 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011697 if (p->call_invalid_rules) { // invalid_dict_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011698 if (p->error_indicator) {
11699 D(p->level--);
11700 return NULL;
11701 }
11702 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
11703 void *invalid_dict_comprehension_var;
11704 if (
11705 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
11706 )
11707 {
11708 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
11709 _res = invalid_dict_comprehension_var;
11710 goto done;
11711 }
11712 p->mark = _mark;
11713 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
11714 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
11715 }
11716 _res = NULL;
11717 done:
11718 D(p->level--);
11719 return _res;
11720}
11721
11722// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
11723static asdl_seq*
11724double_starred_kvpairs_rule(Parser *p)
11725{
11726 D(p->level++);
11727 if (p->error_indicator) {
11728 D(p->level--);
11729 return NULL;
11730 }
11731 asdl_seq* _res = NULL;
11732 int _mark = p->mark;
11733 { // ','.double_starred_kvpair+ ','?
11734 if (p->error_indicator) {
11735 D(p->level--);
11736 return NULL;
11737 }
11738 D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
11739 void *_opt_var;
11740 UNUSED(_opt_var); // Silence compiler warnings
11741 asdl_seq * a;
11742 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011743 (a = _gather_101_rule(p)) // ','.double_starred_kvpair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011744 &&
11745 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
11746 )
11747 {
11748 D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
11749 _res = a;
11750 if (_res == NULL && PyErr_Occurred()) {
11751 p->error_indicator = 1;
11752 D(p->level--);
11753 return NULL;
11754 }
11755 goto done;
11756 }
11757 p->mark = _mark;
11758 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
11759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
11760 }
11761 _res = NULL;
11762 done:
11763 D(p->level--);
11764 return _res;
11765}
11766
11767// double_starred_kvpair: '**' bitwise_or | kvpair
11768static KeyValuePair*
11769double_starred_kvpair_rule(Parser *p)
11770{
11771 D(p->level++);
11772 if (p->error_indicator) {
11773 D(p->level--);
11774 return NULL;
11775 }
11776 KeyValuePair* _res = NULL;
11777 int _mark = p->mark;
11778 { // '**' bitwise_or
11779 if (p->error_indicator) {
11780 D(p->level--);
11781 return NULL;
11782 }
11783 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
11784 Token * _literal;
11785 expr_ty a;
11786 if (
11787 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
11788 &&
11789 (a = bitwise_or_rule(p)) // bitwise_or
11790 )
11791 {
11792 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
11793 _res = _PyPegen_key_value_pair ( p , NULL , a );
11794 if (_res == NULL && PyErr_Occurred()) {
11795 p->error_indicator = 1;
11796 D(p->level--);
11797 return NULL;
11798 }
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, "'**' bitwise_or"));
11804 }
11805 { // kvpair
11806 if (p->error_indicator) {
11807 D(p->level--);
11808 return NULL;
11809 }
11810 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
11811 KeyValuePair* kvpair_var;
11812 if (
11813 (kvpair_var = kvpair_rule(p)) // kvpair
11814 )
11815 {
11816 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
11817 _res = kvpair_var;
11818 goto done;
11819 }
11820 p->mark = _mark;
11821 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11822 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
11823 }
11824 _res = NULL;
11825 done:
11826 D(p->level--);
11827 return _res;
11828}
11829
11830// kvpair: expression ':' expression
11831static KeyValuePair*
11832kvpair_rule(Parser *p)
11833{
11834 D(p->level++);
11835 if (p->error_indicator) {
11836 D(p->level--);
11837 return NULL;
11838 }
11839 KeyValuePair* _res = NULL;
11840 int _mark = p->mark;
11841 { // expression ':' expression
11842 if (p->error_indicator) {
11843 D(p->level--);
11844 return NULL;
11845 }
11846 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
11847 Token * _literal;
11848 expr_ty a;
11849 expr_ty b;
11850 if (
11851 (a = expression_rule(p)) // expression
11852 &&
11853 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
11854 &&
11855 (b = expression_rule(p)) // expression
11856 )
11857 {
11858 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
11859 _res = _PyPegen_key_value_pair ( p , a , b );
11860 if (_res == NULL && PyErr_Occurred()) {
11861 p->error_indicator = 1;
11862 D(p->level--);
11863 return NULL;
11864 }
11865 goto done;
11866 }
11867 p->mark = _mark;
11868 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11869 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
11870 }
11871 _res = NULL;
11872 done:
11873 D(p->level--);
11874 return _res;
11875}
11876
11877// for_if_clauses: for_if_clause+
Pablo Galindoa5634c42020-09-16 19:42:00 +010011878static asdl_comprehension_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011879for_if_clauses_rule(Parser *p)
11880{
11881 D(p->level++);
11882 if (p->error_indicator) {
11883 D(p->level--);
11884 return NULL;
11885 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010011886 asdl_comprehension_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011887 int _mark = p->mark;
11888 { // for_if_clause+
11889 if (p->error_indicator) {
11890 D(p->level--);
11891 return NULL;
11892 }
11893 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 +010011894 asdl_comprehension_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011895 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011896 (a = (asdl_comprehension_seq*)_loop1_103_rule(p)) // for_if_clause+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011897 )
11898 {
11899 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 +010011900 _res = a;
11901 if (_res == NULL && PyErr_Occurred()) {
11902 p->error_indicator = 1;
11903 D(p->level--);
11904 return NULL;
11905 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011906 goto done;
11907 }
11908 p->mark = _mark;
11909 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
11910 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
11911 }
11912 _res = NULL;
11913 done:
11914 D(p->level--);
11915 return _res;
11916}
11917
11918// for_if_clause:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011919// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
11920// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
11921// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011922static comprehension_ty
11923for_if_clause_rule(Parser *p)
11924{
11925 D(p->level++);
11926 if (p->error_indicator) {
11927 D(p->level--);
11928 return NULL;
11929 }
11930 comprehension_ty _res = NULL;
11931 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011932 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011933 if (p->error_indicator) {
11934 D(p->level--);
11935 return NULL;
11936 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011937 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
11938 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011939 Token * _keyword;
11940 Token * _keyword_1;
11941 expr_ty a;
11942 Token * async_var;
11943 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011944 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011945 if (
11946 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
11947 &&
11948 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
11949 &&
11950 (a = star_targets_rule(p)) // star_targets
11951 &&
11952 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
11953 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011954 (_cut_var = 1)
11955 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011956 (b = disjunction_rule(p)) // disjunction
11957 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000011958 (c = (asdl_expr_seq*)_loop0_104_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011959 )
11960 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011961 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 +030011962 _res = CHECK_VERSION ( comprehension_ty , 6 , "Async comprehensions are" , _Py_comprehension ( a , b , c , 1 , p -> arena ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011963 if (_res == NULL && PyErr_Occurred()) {
11964 p->error_indicator = 1;
11965 D(p->level--);
11966 return NULL;
11967 }
11968 goto done;
11969 }
11970 p->mark = _mark;
11971 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011972 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
11973 if (_cut_var) {
11974 D(p->level--);
11975 return NULL;
11976 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011977 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011978 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011979 if (p->error_indicator) {
11980 D(p->level--);
11981 return NULL;
11982 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011983 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
11984 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011985 Token * _keyword;
11986 Token * _keyword_1;
11987 expr_ty a;
11988 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011989 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011990 if (
11991 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
11992 &&
11993 (a = star_targets_rule(p)) // star_targets
11994 &&
11995 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
11996 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030011997 (_cut_var = 1)
11998 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011999 (b = disjunction_rule(p)) // disjunction
12000 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012001 (c = (asdl_expr_seq*)_loop0_105_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012002 )
12003 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030012004 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 +010012005 _res = _Py_comprehension ( a , b , c , 0 , p -> arena );
12006 if (_res == NULL && PyErr_Occurred()) {
12007 p->error_indicator = 1;
12008 D(p->level--);
12009 return NULL;
12010 }
12011 goto done;
12012 }
12013 p->mark = _mark;
12014 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030012015 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
12016 if (_cut_var) {
12017 D(p->level--);
12018 return NULL;
12019 }
12020 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012021 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030012022 if (p->error_indicator) {
12023 D(p->level--);
12024 return NULL;
12025 }
12026 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
12027 void *invalid_for_target_var;
12028 if (
12029 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
12030 )
12031 {
12032 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
12033 _res = invalid_for_target_var;
12034 goto done;
12035 }
12036 p->mark = _mark;
12037 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
12038 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012039 }
12040 _res = NULL;
12041 done:
12042 D(p->level--);
12043 return _res;
12044}
12045
12046// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
12047static expr_ty
12048yield_expr_rule(Parser *p)
12049{
12050 D(p->level++);
12051 if (p->error_indicator) {
12052 D(p->level--);
12053 return NULL;
12054 }
12055 expr_ty _res = NULL;
12056 int _mark = p->mark;
12057 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12058 p->error_indicator = 1;
12059 D(p->level--);
12060 return NULL;
12061 }
12062 int _start_lineno = p->tokens[_mark]->lineno;
12063 UNUSED(_start_lineno); // Only used by EXTRA macro
12064 int _start_col_offset = p->tokens[_mark]->col_offset;
12065 UNUSED(_start_col_offset); // Only used by EXTRA macro
12066 { // 'yield' 'from' expression
12067 if (p->error_indicator) {
12068 D(p->level--);
12069 return NULL;
12070 }
12071 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
12072 Token * _keyword;
12073 Token * _keyword_1;
12074 expr_ty a;
12075 if (
12076 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
12077 &&
12078 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
12079 &&
12080 (a = expression_rule(p)) // expression
12081 )
12082 {
12083 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
12084 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12085 if (_token == NULL) {
12086 D(p->level--);
12087 return NULL;
12088 }
12089 int _end_lineno = _token->end_lineno;
12090 UNUSED(_end_lineno); // Only used by EXTRA macro
12091 int _end_col_offset = _token->end_col_offset;
12092 UNUSED(_end_col_offset); // Only used by EXTRA macro
12093 _res = _Py_YieldFrom ( a , EXTRA );
12094 if (_res == NULL && PyErr_Occurred()) {
12095 p->error_indicator = 1;
12096 D(p->level--);
12097 return NULL;
12098 }
12099 goto done;
12100 }
12101 p->mark = _mark;
12102 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
12103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
12104 }
12105 { // 'yield' star_expressions?
12106 if (p->error_indicator) {
12107 D(p->level--);
12108 return NULL;
12109 }
12110 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
12111 Token * _keyword;
12112 void *a;
12113 if (
12114 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
12115 &&
12116 (a = star_expressions_rule(p), 1) // star_expressions?
12117 )
12118 {
12119 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
12120 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12121 if (_token == NULL) {
12122 D(p->level--);
12123 return NULL;
12124 }
12125 int _end_lineno = _token->end_lineno;
12126 UNUSED(_end_lineno); // Only used by EXTRA macro
12127 int _end_col_offset = _token->end_col_offset;
12128 UNUSED(_end_col_offset); // Only used by EXTRA macro
12129 _res = _Py_Yield ( a , EXTRA );
12130 if (_res == NULL && PyErr_Occurred()) {
12131 p->error_indicator = 1;
12132 D(p->level--);
12133 return NULL;
12134 }
12135 goto done;
12136 }
12137 p->mark = _mark;
12138 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
12139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
12140 }
12141 _res = NULL;
12142 done:
12143 D(p->level--);
12144 return _res;
12145}
12146
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012147// arguments: args ','? &')' | invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012148static expr_ty
12149arguments_rule(Parser *p)
12150{
12151 D(p->level++);
12152 if (p->error_indicator) {
12153 D(p->level--);
12154 return NULL;
12155 }
12156 expr_ty _res = NULL;
12157 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
12158 D(p->level--);
12159 return _res;
12160 }
12161 int _mark = p->mark;
12162 { // args ','? &')'
12163 if (p->error_indicator) {
12164 D(p->level--);
12165 return NULL;
12166 }
12167 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
12168 void *_opt_var;
12169 UNUSED(_opt_var); // Silence compiler warnings
12170 expr_ty a;
12171 if (
12172 (a = args_rule(p)) // args
12173 &&
12174 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
12175 &&
12176 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
12177 )
12178 {
12179 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
12180 _res = a;
12181 if (_res == NULL && PyErr_Occurred()) {
12182 p->error_indicator = 1;
12183 D(p->level--);
12184 return NULL;
12185 }
12186 goto done;
12187 }
12188 p->mark = _mark;
12189 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
12190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
12191 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012192 if (p->call_invalid_rules) { // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012193 if (p->error_indicator) {
12194 D(p->level--);
12195 return NULL;
12196 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012197 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
12198 void *invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012199 if (
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012200 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012201 )
12202 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012203 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
12204 _res = invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012205 goto done;
12206 }
12207 p->mark = _mark;
12208 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012209 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012210 }
12211 _res = NULL;
12212 done:
12213 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
12214 D(p->level--);
12215 return _res;
12216}
12217
Pablo Galindo4a97b152020-09-02 17:44:19 +010012218// args: ','.(starred_expression | named_expression !'=')+ [',' kwargs] | kwargs
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012219static expr_ty
12220args_rule(Parser *p)
12221{
12222 D(p->level++);
12223 if (p->error_indicator) {
12224 D(p->level--);
12225 return NULL;
12226 }
12227 expr_ty _res = NULL;
12228 int _mark = p->mark;
12229 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12230 p->error_indicator = 1;
12231 D(p->level--);
12232 return NULL;
12233 }
12234 int _start_lineno = p->tokens[_mark]->lineno;
12235 UNUSED(_start_lineno); // Only used by EXTRA macro
12236 int _start_col_offset = p->tokens[_mark]->col_offset;
12237 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo4a97b152020-09-02 17:44:19 +010012238 { // ','.(starred_expression | named_expression !'=')+ [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012239 if (p->error_indicator) {
12240 D(p->level--);
12241 return NULL;
12242 }
Pablo Galindo4a97b152020-09-02 17:44:19 +010012243 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 +010012244 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012245 void *b;
12246 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012247 (a = (asdl_expr_seq*)_gather_106_rule(p)) // ','.(starred_expression | named_expression !'=')+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012248 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012249 (b = _tmp_108_rule(p), 1) // [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012250 )
12251 {
Pablo Galindo4a97b152020-09-02 17:44:19 +010012252 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 +010012253 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12254 if (_token == NULL) {
12255 D(p->level--);
12256 return NULL;
12257 }
12258 int _end_lineno = _token->end_lineno;
12259 UNUSED(_end_lineno); // Only used by EXTRA macro
12260 int _end_col_offset = _token->end_col_offset;
12261 UNUSED(_end_col_offset); // Only used by EXTRA macro
12262 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012263 if (_res == NULL && PyErr_Occurred()) {
12264 p->error_indicator = 1;
12265 D(p->level--);
12266 return NULL;
12267 }
12268 goto done;
12269 }
12270 p->mark = _mark;
12271 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010012272 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012273 }
12274 { // kwargs
12275 if (p->error_indicator) {
12276 D(p->level--);
12277 return NULL;
12278 }
12279 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
12280 asdl_seq* a;
12281 if (
12282 (a = kwargs_rule(p)) // kwargs
12283 )
12284 {
12285 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
12286 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12287 if (_token == NULL) {
12288 D(p->level--);
12289 return NULL;
12290 }
12291 int _end_lineno = _token->end_lineno;
12292 UNUSED(_end_lineno); // Only used by EXTRA macro
12293 int _end_col_offset = _token->end_col_offset;
12294 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012295 _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 +010012296 if (_res == NULL && PyErr_Occurred()) {
12297 p->error_indicator = 1;
12298 D(p->level--);
12299 return NULL;
12300 }
12301 goto done;
12302 }
12303 p->mark = _mark;
12304 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
12305 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
12306 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012307 _res = NULL;
12308 done:
12309 D(p->level--);
12310 return _res;
12311}
12312
12313// kwargs:
12314// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
12315// | ','.kwarg_or_starred+
12316// | ','.kwarg_or_double_starred+
12317static asdl_seq*
12318kwargs_rule(Parser *p)
12319{
12320 D(p->level++);
12321 if (p->error_indicator) {
12322 D(p->level--);
12323 return NULL;
12324 }
12325 asdl_seq* _res = NULL;
12326 int _mark = p->mark;
12327 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
12328 if (p->error_indicator) {
12329 D(p->level--);
12330 return NULL;
12331 }
12332 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
12333 Token * _literal;
12334 asdl_seq * a;
12335 asdl_seq * b;
12336 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012337 (a = _gather_109_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012338 &&
12339 (_literal = _PyPegen_expect_token(p, 12)) // token=','
12340 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012341 (b = _gather_111_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012342 )
12343 {
12344 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
12345 _res = _PyPegen_join_sequences ( p , a , b );
12346 if (_res == NULL && PyErr_Occurred()) {
12347 p->error_indicator = 1;
12348 D(p->level--);
12349 return NULL;
12350 }
12351 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+ ',' ','.kwarg_or_double_starred+"));
12356 }
12357 { // ','.kwarg_or_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_starred+"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012363 asdl_seq * _gather_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012364 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012365 (_gather_113_var = _gather_113_rule(p)) // ','.kwarg_or_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_starred+"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012369 _res = _gather_113_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_starred+"));
12375 }
12376 { // ','.kwarg_or_double_starred+
12377 if (p->error_indicator) {
12378 D(p->level--);
12379 return NULL;
12380 }
12381 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012382 asdl_seq * _gather_115_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012383 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012384 (_gather_115_var = _gather_115_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012385 )
12386 {
12387 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 +000012388 _res = _gather_115_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012389 goto done;
12390 }
12391 p->mark = _mark;
12392 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12393 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
12394 }
12395 _res = NULL;
12396 done:
12397 D(p->level--);
12398 return _res;
12399}
12400
12401// starred_expression: '*' expression
12402static expr_ty
12403starred_expression_rule(Parser *p)
12404{
12405 D(p->level++);
12406 if (p->error_indicator) {
12407 D(p->level--);
12408 return NULL;
12409 }
12410 expr_ty _res = NULL;
12411 int _mark = p->mark;
12412 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12413 p->error_indicator = 1;
12414 D(p->level--);
12415 return NULL;
12416 }
12417 int _start_lineno = p->tokens[_mark]->lineno;
12418 UNUSED(_start_lineno); // Only used by EXTRA macro
12419 int _start_col_offset = p->tokens[_mark]->col_offset;
12420 UNUSED(_start_col_offset); // Only used by EXTRA macro
12421 { // '*' expression
12422 if (p->error_indicator) {
12423 D(p->level--);
12424 return NULL;
12425 }
12426 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
12427 Token * _literal;
12428 expr_ty a;
12429 if (
12430 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
12431 &&
12432 (a = expression_rule(p)) // expression
12433 )
12434 {
12435 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
12436 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12437 if (_token == NULL) {
12438 D(p->level--);
12439 return NULL;
12440 }
12441 int _end_lineno = _token->end_lineno;
12442 UNUSED(_end_lineno); // Only used by EXTRA macro
12443 int _end_col_offset = _token->end_col_offset;
12444 UNUSED(_end_col_offset); // Only used by EXTRA macro
12445 _res = _Py_Starred ( a , Load , EXTRA );
12446 if (_res == NULL && PyErr_Occurred()) {
12447 p->error_indicator = 1;
12448 D(p->level--);
12449 return NULL;
12450 }
12451 goto done;
12452 }
12453 p->mark = _mark;
12454 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
12455 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
12456 }
12457 _res = NULL;
12458 done:
12459 D(p->level--);
12460 return _res;
12461}
12462
12463// kwarg_or_starred: NAME '=' expression | starred_expression | invalid_kwarg
12464static KeywordOrStarred*
12465kwarg_or_starred_rule(Parser *p)
12466{
12467 D(p->level++);
12468 if (p->error_indicator) {
12469 D(p->level--);
12470 return NULL;
12471 }
12472 KeywordOrStarred* _res = NULL;
12473 int _mark = p->mark;
12474 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12475 p->error_indicator = 1;
12476 D(p->level--);
12477 return NULL;
12478 }
12479 int _start_lineno = p->tokens[_mark]->lineno;
12480 UNUSED(_start_lineno); // Only used by EXTRA macro
12481 int _start_col_offset = p->tokens[_mark]->col_offset;
12482 UNUSED(_start_col_offset); // Only used by EXTRA macro
12483 { // NAME '=' expression
12484 if (p->error_indicator) {
12485 D(p->level--);
12486 return NULL;
12487 }
12488 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
12489 Token * _literal;
12490 expr_ty a;
12491 expr_ty b;
12492 if (
12493 (a = _PyPegen_name_token(p)) // NAME
12494 &&
12495 (_literal = _PyPegen_expect_token(p, 22)) // token='='
12496 &&
12497 (b = expression_rule(p)) // expression
12498 )
12499 {
12500 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
12501 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12502 if (_token == NULL) {
12503 D(p->level--);
12504 return NULL;
12505 }
12506 int _end_lineno = _token->end_lineno;
12507 UNUSED(_end_lineno); // Only used by EXTRA macro
12508 int _end_col_offset = _token->end_col_offset;
12509 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012510 _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 +010012511 if (_res == NULL && PyErr_Occurred()) {
12512 p->error_indicator = 1;
12513 D(p->level--);
12514 return NULL;
12515 }
12516 goto done;
12517 }
12518 p->mark = _mark;
12519 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12520 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
12521 }
12522 { // starred_expression
12523 if (p->error_indicator) {
12524 D(p->level--);
12525 return NULL;
12526 }
12527 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
12528 expr_ty a;
12529 if (
12530 (a = starred_expression_rule(p)) // starred_expression
12531 )
12532 {
12533 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
12534 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
12535 if (_res == NULL && PyErr_Occurred()) {
12536 p->error_indicator = 1;
12537 D(p->level--);
12538 return NULL;
12539 }
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, "starred_expression"));
12545 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012546 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012547 if (p->error_indicator) {
12548 D(p->level--);
12549 return NULL;
12550 }
12551 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
12552 void *invalid_kwarg_var;
12553 if (
12554 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
12555 )
12556 {
12557 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
12558 _res = invalid_kwarg_var;
12559 goto done;
12560 }
12561 p->mark = _mark;
12562 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12563 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
12564 }
12565 _res = NULL;
12566 done:
12567 D(p->level--);
12568 return _res;
12569}
12570
12571// kwarg_or_double_starred: NAME '=' expression | '**' expression | invalid_kwarg
12572static KeywordOrStarred*
12573kwarg_or_double_starred_rule(Parser *p)
12574{
12575 D(p->level++);
12576 if (p->error_indicator) {
12577 D(p->level--);
12578 return NULL;
12579 }
12580 KeywordOrStarred* _res = NULL;
12581 int _mark = p->mark;
12582 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12583 p->error_indicator = 1;
12584 D(p->level--);
12585 return NULL;
12586 }
12587 int _start_lineno = p->tokens[_mark]->lineno;
12588 UNUSED(_start_lineno); // Only used by EXTRA macro
12589 int _start_col_offset = p->tokens[_mark]->col_offset;
12590 UNUSED(_start_col_offset); // Only used by EXTRA macro
12591 { // NAME '=' expression
12592 if (p->error_indicator) {
12593 D(p->level--);
12594 return NULL;
12595 }
12596 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
12597 Token * _literal;
12598 expr_ty a;
12599 expr_ty b;
12600 if (
12601 (a = _PyPegen_name_token(p)) // NAME
12602 &&
12603 (_literal = _PyPegen_expect_token(p, 22)) // token='='
12604 &&
12605 (b = expression_rule(p)) // expression
12606 )
12607 {
12608 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
12609 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12610 if (_token == NULL) {
12611 D(p->level--);
12612 return NULL;
12613 }
12614 int _end_lineno = _token->end_lineno;
12615 UNUSED(_end_lineno); // Only used by EXTRA macro
12616 int _end_col_offset = _token->end_col_offset;
12617 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012618 _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 +010012619 if (_res == NULL && PyErr_Occurred()) {
12620 p->error_indicator = 1;
12621 D(p->level--);
12622 return NULL;
12623 }
12624 goto done;
12625 }
12626 p->mark = _mark;
12627 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12628 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
12629 }
12630 { // '**' expression
12631 if (p->error_indicator) {
12632 D(p->level--);
12633 return NULL;
12634 }
12635 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
12636 Token * _literal;
12637 expr_ty a;
12638 if (
12639 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
12640 &&
12641 (a = expression_rule(p)) // expression
12642 )
12643 {
12644 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
12645 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12646 if (_token == NULL) {
12647 D(p->level--);
12648 return NULL;
12649 }
12650 int _end_lineno = _token->end_lineno;
12651 UNUSED(_end_lineno); // Only used by EXTRA macro
12652 int _end_col_offset = _token->end_col_offset;
12653 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012654 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _Py_keyword ( NULL , a , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012655 if (_res == NULL && PyErr_Occurred()) {
12656 p->error_indicator = 1;
12657 D(p->level--);
12658 return NULL;
12659 }
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, "'**' expression"));
12665 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020012666 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012667 if (p->error_indicator) {
12668 D(p->level--);
12669 return NULL;
12670 }
12671 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
12672 void *invalid_kwarg_var;
12673 if (
12674 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
12675 )
12676 {
12677 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
12678 _res = invalid_kwarg_var;
12679 goto done;
12680 }
12681 p->mark = _mark;
12682 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12683 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
12684 }
12685 _res = NULL;
12686 done:
12687 D(p->level--);
12688 return _res;
12689}
12690
12691// star_targets: star_target !',' | star_target ((',' star_target))* ','?
12692static expr_ty
12693star_targets_rule(Parser *p)
12694{
12695 D(p->level++);
12696 if (p->error_indicator) {
12697 D(p->level--);
12698 return NULL;
12699 }
12700 expr_ty _res = NULL;
12701 int _mark = p->mark;
12702 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12703 p->error_indicator = 1;
12704 D(p->level--);
12705 return NULL;
12706 }
12707 int _start_lineno = p->tokens[_mark]->lineno;
12708 UNUSED(_start_lineno); // Only used by EXTRA macro
12709 int _start_col_offset = p->tokens[_mark]->col_offset;
12710 UNUSED(_start_col_offset); // Only used by EXTRA macro
12711 { // star_target !','
12712 if (p->error_indicator) {
12713 D(p->level--);
12714 return NULL;
12715 }
12716 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
12717 expr_ty a;
12718 if (
12719 (a = star_target_rule(p)) // star_target
12720 &&
12721 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
12722 )
12723 {
12724 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
12725 _res = a;
12726 if (_res == NULL && PyErr_Occurred()) {
12727 p->error_indicator = 1;
12728 D(p->level--);
12729 return NULL;
12730 }
12731 goto done;
12732 }
12733 p->mark = _mark;
12734 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
12735 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
12736 }
12737 { // star_target ((',' star_target))* ','?
12738 if (p->error_indicator) {
12739 D(p->level--);
12740 return NULL;
12741 }
12742 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
12743 void *_opt_var;
12744 UNUSED(_opt_var); // Silence compiler warnings
12745 expr_ty a;
12746 asdl_seq * b;
12747 if (
12748 (a = star_target_rule(p)) // star_target
12749 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012750 (b = _loop0_117_rule(p)) // ((',' star_target))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012751 &&
12752 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
12753 )
12754 {
12755 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
12756 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12757 if (_token == NULL) {
12758 D(p->level--);
12759 return NULL;
12760 }
12761 int _end_lineno = _token->end_lineno;
12762 UNUSED(_end_lineno); // Only used by EXTRA macro
12763 int _end_col_offset = _token->end_col_offset;
12764 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012765 _res = _Py_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012766 if (_res == NULL && PyErr_Occurred()) {
12767 p->error_indicator = 1;
12768 D(p->level--);
12769 return NULL;
12770 }
12771 goto done;
12772 }
12773 p->mark = _mark;
12774 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
12775 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
12776 }
12777 _res = NULL;
12778 done:
12779 D(p->level--);
12780 return _res;
12781}
12782
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012783// star_targets_list_seq: ','.star_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010012784static asdl_expr_seq*
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012785star_targets_list_seq_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012786{
12787 D(p->level++);
12788 if (p->error_indicator) {
12789 D(p->level--);
12790 return NULL;
12791 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010012792 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012793 int _mark = p->mark;
12794 { // ','.star_target+ ','?
12795 if (p->error_indicator) {
12796 D(p->level--);
12797 return NULL;
12798 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012799 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 +010012800 void *_opt_var;
12801 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010012802 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012803 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000012804 (a = (asdl_expr_seq*)_gather_118_rule(p)) // ','.star_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012805 &&
12806 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
12807 )
12808 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012809 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 +010012810 _res = a;
12811 if (_res == NULL && PyErr_Occurred()) {
12812 p->error_indicator = 1;
12813 D(p->level--);
12814 return NULL;
12815 }
12816 goto done;
12817 }
12818 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012819 D(fprintf(stderr, "%*c%s star_targets_list_seq[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012820 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
12821 }
12822 _res = NULL;
12823 done:
12824 D(p->level--);
12825 return _res;
12826}
12827
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012828// star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
12829static asdl_expr_seq*
12830star_targets_tuple_seq_rule(Parser *p)
12831{
12832 D(p->level++);
12833 if (p->error_indicator) {
12834 D(p->level--);
12835 return NULL;
12836 }
12837 asdl_expr_seq* _res = NULL;
12838 int _mark = p->mark;
12839 { // star_target ((',' star_target))+ ','?
12840 if (p->error_indicator) {
12841 D(p->level--);
12842 return NULL;
12843 }
12844 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
12845 void *_opt_var;
12846 UNUSED(_opt_var); // Silence compiler warnings
12847 expr_ty a;
12848 asdl_seq * b;
12849 if (
12850 (a = star_target_rule(p)) // star_target
12851 &&
12852 (b = _loop1_120_rule(p)) // ((',' star_target))+
12853 &&
12854 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
12855 )
12856 {
12857 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
12858 _res = ( asdl_expr_seq * ) _PyPegen_seq_insert_in_front ( p , a , b );
12859 if (_res == NULL && PyErr_Occurred()) {
12860 p->error_indicator = 1;
12861 D(p->level--);
12862 return NULL;
12863 }
12864 goto done;
12865 }
12866 p->mark = _mark;
12867 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
12868 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))+ ','?"));
12869 }
12870 { // star_target ','
12871 if (p->error_indicator) {
12872 D(p->level--);
12873 return NULL;
12874 }
12875 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ','"));
12876 Token * _literal;
12877 expr_ty a;
12878 if (
12879 (a = star_target_rule(p)) // star_target
12880 &&
12881 (_literal = _PyPegen_expect_token(p, 12)) // token=','
12882 )
12883 {
12884 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
12885 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
12886 if (_res == NULL && PyErr_Occurred()) {
12887 p->error_indicator = 1;
12888 D(p->level--);
12889 return NULL;
12890 }
12891 goto done;
12892 }
12893 p->mark = _mark;
12894 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
12895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ','"));
12896 }
12897 _res = NULL;
12898 done:
12899 D(p->level--);
12900 return _res;
12901}
12902
12903// star_target: '*' (!'*' star_target) | target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012904static expr_ty
12905star_target_rule(Parser *p)
12906{
12907 D(p->level++);
12908 if (p->error_indicator) {
12909 D(p->level--);
12910 return NULL;
12911 }
12912 expr_ty _res = NULL;
12913 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
12914 D(p->level--);
12915 return _res;
12916 }
12917 int _mark = p->mark;
12918 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12919 p->error_indicator = 1;
12920 D(p->level--);
12921 return NULL;
12922 }
12923 int _start_lineno = p->tokens[_mark]->lineno;
12924 UNUSED(_start_lineno); // Only used by EXTRA macro
12925 int _start_col_offset = p->tokens[_mark]->col_offset;
12926 UNUSED(_start_col_offset); // Only used by EXTRA macro
12927 { // '*' (!'*' star_target)
12928 if (p->error_indicator) {
12929 D(p->level--);
12930 return NULL;
12931 }
12932 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
12933 Token * _literal;
12934 void *a;
12935 if (
12936 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
12937 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012938 (a = _tmp_121_rule(p)) // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012939 )
12940 {
12941 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
12942 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12943 if (_token == NULL) {
12944 D(p->level--);
12945 return NULL;
12946 }
12947 int _end_lineno = _token->end_lineno;
12948 UNUSED(_end_lineno); // Only used by EXTRA macro
12949 int _end_col_offset = _token->end_col_offset;
12950 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030012951 _res = _Py_Starred ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012952 if (_res == NULL && PyErr_Occurred()) {
12953 p->error_indicator = 1;
12954 D(p->level--);
12955 return NULL;
12956 }
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, "'*' (!'*' star_target)"));
12962 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020012963 { // target_with_star_atom
12964 if (p->error_indicator) {
12965 D(p->level--);
12966 return NULL;
12967 }
12968 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
12969 expr_ty target_with_star_atom_var;
12970 if (
12971 (target_with_star_atom_var = target_with_star_atom_rule(p)) // target_with_star_atom
12972 )
12973 {
12974 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
12975 _res = target_with_star_atom_var;
12976 goto done;
12977 }
12978 p->mark = _mark;
12979 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12980 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_with_star_atom"));
12981 }
12982 _res = NULL;
12983 done:
12984 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
12985 D(p->level--);
12986 return _res;
12987}
12988
12989// target_with_star_atom:
12990// | t_primary '.' NAME !t_lookahead
12991// | t_primary '[' slices ']' !t_lookahead
12992// | star_atom
12993static expr_ty
12994target_with_star_atom_rule(Parser *p)
12995{
12996 D(p->level++);
12997 if (p->error_indicator) {
12998 D(p->level--);
12999 return NULL;
13000 }
13001 expr_ty _res = NULL;
13002 if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
13003 D(p->level--);
13004 return _res;
13005 }
13006 int _mark = p->mark;
13007 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13008 p->error_indicator = 1;
13009 D(p->level--);
13010 return NULL;
13011 }
13012 int _start_lineno = p->tokens[_mark]->lineno;
13013 UNUSED(_start_lineno); // Only used by EXTRA macro
13014 int _start_col_offset = p->tokens[_mark]->col_offset;
13015 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013016 { // t_primary '.' NAME !t_lookahead
13017 if (p->error_indicator) {
13018 D(p->level--);
13019 return NULL;
13020 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013021 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 +010013022 Token * _literal;
13023 expr_ty a;
13024 expr_ty b;
13025 if (
13026 (a = t_primary_rule(p)) // t_primary
13027 &&
13028 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13029 &&
13030 (b = _PyPegen_name_token(p)) // NAME
13031 &&
13032 _PyPegen_lookahead(0, t_lookahead_rule, p)
13033 )
13034 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013035 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 +010013036 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13037 if (_token == NULL) {
13038 D(p->level--);
13039 return NULL;
13040 }
13041 int _end_lineno = _token->end_lineno;
13042 UNUSED(_end_lineno); // Only used by EXTRA macro
13043 int _end_col_offset = _token->end_col_offset;
13044 UNUSED(_end_col_offset); // Only used by EXTRA macro
13045 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13046 if (_res == NULL && PyErr_Occurred()) {
13047 p->error_indicator = 1;
13048 D(p->level--);
13049 return NULL;
13050 }
13051 goto done;
13052 }
13053 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013054 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013055 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13056 }
13057 { // t_primary '[' slices ']' !t_lookahead
13058 if (p->error_indicator) {
13059 D(p->level--);
13060 return NULL;
13061 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013062 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 +010013063 Token * _literal;
13064 Token * _literal_1;
13065 expr_ty a;
13066 expr_ty b;
13067 if (
13068 (a = t_primary_rule(p)) // t_primary
13069 &&
13070 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13071 &&
13072 (b = slices_rule(p)) // slices
13073 &&
13074 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13075 &&
13076 _PyPegen_lookahead(0, t_lookahead_rule, p)
13077 )
13078 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013079 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 +010013080 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13081 if (_token == NULL) {
13082 D(p->level--);
13083 return NULL;
13084 }
13085 int _end_lineno = _token->end_lineno;
13086 UNUSED(_end_lineno); // Only used by EXTRA macro
13087 int _end_col_offset = _token->end_col_offset;
13088 UNUSED(_end_col_offset); // Only used by EXTRA macro
13089 _res = _Py_Subscript ( a , b , Store , EXTRA );
13090 if (_res == NULL && PyErr_Occurred()) {
13091 p->error_indicator = 1;
13092 D(p->level--);
13093 return NULL;
13094 }
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, "t_primary '[' slices ']' !t_lookahead"));
13100 }
13101 { // star_atom
13102 if (p->error_indicator) {
13103 D(p->level--);
13104 return NULL;
13105 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013106 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 +010013107 expr_ty star_atom_var;
13108 if (
13109 (star_atom_var = star_atom_rule(p)) // star_atom
13110 )
13111 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013112 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 +010013113 _res = star_atom_var;
13114 goto done;
13115 }
13116 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013117 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013118 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
13119 }
13120 _res = NULL;
13121 done:
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013122 _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013123 D(p->level--);
13124 return _res;
13125}
13126
13127// star_atom:
13128// | NAME
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013129// | '(' target_with_star_atom ')'
13130// | '(' star_targets_tuple_seq? ')'
13131// | '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013132static expr_ty
13133star_atom_rule(Parser *p)
13134{
13135 D(p->level++);
13136 if (p->error_indicator) {
13137 D(p->level--);
13138 return NULL;
13139 }
13140 expr_ty _res = NULL;
13141 int _mark = p->mark;
13142 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13143 p->error_indicator = 1;
13144 D(p->level--);
13145 return NULL;
13146 }
13147 int _start_lineno = p->tokens[_mark]->lineno;
13148 UNUSED(_start_lineno); // Only used by EXTRA macro
13149 int _start_col_offset = p->tokens[_mark]->col_offset;
13150 UNUSED(_start_col_offset); // Only used by EXTRA macro
13151 { // NAME
13152 if (p->error_indicator) {
13153 D(p->level--);
13154 return NULL;
13155 }
13156 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
13157 expr_ty a;
13158 if (
13159 (a = _PyPegen_name_token(p)) // NAME
13160 )
13161 {
13162 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
13163 _res = _PyPegen_set_expr_context ( p , a , Store );
13164 if (_res == NULL && PyErr_Occurred()) {
13165 p->error_indicator = 1;
13166 D(p->level--);
13167 return NULL;
13168 }
13169 goto done;
13170 }
13171 p->mark = _mark;
13172 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
13173 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
13174 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013175 { // '(' target_with_star_atom ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013176 if (p->error_indicator) {
13177 D(p->level--);
13178 return NULL;
13179 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013180 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 +010013181 Token * _literal;
13182 Token * _literal_1;
13183 expr_ty a;
13184 if (
13185 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13186 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013187 (a = target_with_star_atom_rule(p)) // target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013188 &&
13189 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13190 )
13191 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013192 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 +010013193 _res = _PyPegen_set_expr_context ( p , a , Store );
13194 if (_res == NULL && PyErr_Occurred()) {
13195 p->error_indicator = 1;
13196 D(p->level--);
13197 return NULL;
13198 }
13199 goto done;
13200 }
13201 p->mark = _mark;
13202 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013203 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013204 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013205 { // '(' star_targets_tuple_seq? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013206 if (p->error_indicator) {
13207 D(p->level--);
13208 return NULL;
13209 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013210 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 +010013211 Token * _literal;
13212 Token * _literal_1;
13213 void *a;
13214 if (
13215 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13216 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013217 (a = star_targets_tuple_seq_rule(p), 1) // star_targets_tuple_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013218 &&
13219 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13220 )
13221 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013222 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 +010013223 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13224 if (_token == NULL) {
13225 D(p->level--);
13226 return NULL;
13227 }
13228 int _end_lineno = _token->end_lineno;
13229 UNUSED(_end_lineno); // Only used by EXTRA macro
13230 int _end_col_offset = _token->end_col_offset;
13231 UNUSED(_end_col_offset); // Only used by EXTRA macro
13232 _res = _Py_Tuple ( a , Store , EXTRA );
13233 if (_res == NULL && PyErr_Occurred()) {
13234 p->error_indicator = 1;
13235 D(p->level--);
13236 return NULL;
13237 }
13238 goto done;
13239 }
13240 p->mark = _mark;
13241 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013243 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013244 { // '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013245 if (p->error_indicator) {
13246 D(p->level--);
13247 return NULL;
13248 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013249 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 +010013250 Token * _literal;
13251 Token * _literal_1;
13252 void *a;
13253 if (
13254 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13255 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013256 (a = star_targets_list_seq_rule(p), 1) // star_targets_list_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013257 &&
13258 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13259 )
13260 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013261 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 +010013262 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13263 if (_token == NULL) {
13264 D(p->level--);
13265 return NULL;
13266 }
13267 int _end_lineno = _token->end_lineno;
13268 UNUSED(_end_lineno); // Only used by EXTRA macro
13269 int _end_col_offset = _token->end_col_offset;
13270 UNUSED(_end_col_offset); // Only used by EXTRA macro
13271 _res = _Py_List ( a , Store , EXTRA );
13272 if (_res == NULL && PyErr_Occurred()) {
13273 p->error_indicator = 1;
13274 D(p->level--);
13275 return NULL;
13276 }
13277 goto done;
13278 }
13279 p->mark = _mark;
13280 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013281 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013282 }
13283 _res = NULL;
13284 done:
13285 D(p->level--);
13286 return _res;
13287}
13288
13289// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
13290static expr_ty
13291single_target_rule(Parser *p)
13292{
13293 D(p->level++);
13294 if (p->error_indicator) {
13295 D(p->level--);
13296 return NULL;
13297 }
13298 expr_ty _res = NULL;
13299 int _mark = p->mark;
13300 { // single_subscript_attribute_target
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, "single_subscript_attribute_target"));
13306 expr_ty single_subscript_attribute_target_var;
13307 if (
13308 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
13309 )
13310 {
13311 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
13312 _res = single_subscript_attribute_target_var;
13313 goto done;
13314 }
13315 p->mark = _mark;
13316 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13317 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
13318 }
13319 { // NAME
13320 if (p->error_indicator) {
13321 D(p->level--);
13322 return NULL;
13323 }
13324 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
13325 expr_ty a;
13326 if (
13327 (a = _PyPegen_name_token(p)) // NAME
13328 )
13329 {
13330 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
13331 _res = _PyPegen_set_expr_context ( p , a , Store );
13332 if (_res == NULL && PyErr_Occurred()) {
13333 p->error_indicator = 1;
13334 D(p->level--);
13335 return NULL;
13336 }
13337 goto done;
13338 }
13339 p->mark = _mark;
13340 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13341 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
13342 }
13343 { // '(' single_target ')'
13344 if (p->error_indicator) {
13345 D(p->level--);
13346 return NULL;
13347 }
13348 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
13349 Token * _literal;
13350 Token * _literal_1;
13351 expr_ty a;
13352 if (
13353 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13354 &&
13355 (a = single_target_rule(p)) // single_target
13356 &&
13357 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13358 )
13359 {
13360 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
13361 _res = a;
13362 if (_res == NULL && PyErr_Occurred()) {
13363 p->error_indicator = 1;
13364 D(p->level--);
13365 return NULL;
13366 }
13367 goto done;
13368 }
13369 p->mark = _mark;
13370 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13371 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
13372 }
13373 _res = NULL;
13374 done:
13375 D(p->level--);
13376 return _res;
13377}
13378
13379// single_subscript_attribute_target:
13380// | t_primary '.' NAME !t_lookahead
13381// | t_primary '[' slices ']' !t_lookahead
13382static expr_ty
13383single_subscript_attribute_target_rule(Parser *p)
13384{
13385 D(p->level++);
13386 if (p->error_indicator) {
13387 D(p->level--);
13388 return NULL;
13389 }
13390 expr_ty _res = NULL;
13391 int _mark = p->mark;
13392 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13393 p->error_indicator = 1;
13394 D(p->level--);
13395 return NULL;
13396 }
13397 int _start_lineno = p->tokens[_mark]->lineno;
13398 UNUSED(_start_lineno); // Only used by EXTRA macro
13399 int _start_col_offset = p->tokens[_mark]->col_offset;
13400 UNUSED(_start_col_offset); // Only used by EXTRA macro
13401 { // t_primary '.' NAME !t_lookahead
13402 if (p->error_indicator) {
13403 D(p->level--);
13404 return NULL;
13405 }
13406 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13407 Token * _literal;
13408 expr_ty a;
13409 expr_ty b;
13410 if (
13411 (a = t_primary_rule(p)) // t_primary
13412 &&
13413 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13414 &&
13415 (b = _PyPegen_name_token(p)) // NAME
13416 &&
13417 _PyPegen_lookahead(0, t_lookahead_rule, p)
13418 )
13419 {
13420 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13421 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13422 if (_token == NULL) {
13423 D(p->level--);
13424 return NULL;
13425 }
13426 int _end_lineno = _token->end_lineno;
13427 UNUSED(_end_lineno); // Only used by EXTRA macro
13428 int _end_col_offset = _token->end_col_offset;
13429 UNUSED(_end_col_offset); // Only used by EXTRA macro
13430 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13431 if (_res == NULL && PyErr_Occurred()) {
13432 p->error_indicator = 1;
13433 D(p->level--);
13434 return NULL;
13435 }
13436 goto done;
13437 }
13438 p->mark = _mark;
13439 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
13440 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13441 }
13442 { // t_primary '[' slices ']' !t_lookahead
13443 if (p->error_indicator) {
13444 D(p->level--);
13445 return NULL;
13446 }
13447 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13448 Token * _literal;
13449 Token * _literal_1;
13450 expr_ty a;
13451 expr_ty b;
13452 if (
13453 (a = t_primary_rule(p)) // t_primary
13454 &&
13455 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13456 &&
13457 (b = slices_rule(p)) // slices
13458 &&
13459 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13460 &&
13461 _PyPegen_lookahead(0, t_lookahead_rule, p)
13462 )
13463 {
13464 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13465 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13466 if (_token == NULL) {
13467 D(p->level--);
13468 return NULL;
13469 }
13470 int _end_lineno = _token->end_lineno;
13471 UNUSED(_end_lineno); // Only used by EXTRA macro
13472 int _end_col_offset = _token->end_col_offset;
13473 UNUSED(_end_col_offset); // Only used by EXTRA macro
13474 _res = _Py_Subscript ( a , b , Store , EXTRA );
13475 if (_res == NULL && PyErr_Occurred()) {
13476 p->error_indicator = 1;
13477 D(p->level--);
13478 return NULL;
13479 }
13480 goto done;
13481 }
13482 p->mark = _mark;
13483 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
13484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13485 }
13486 _res = NULL;
13487 done:
13488 D(p->level--);
13489 return _res;
13490}
13491
13492// del_targets: ','.del_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010013493static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013494del_targets_rule(Parser *p)
13495{
13496 D(p->level++);
13497 if (p->error_indicator) {
13498 D(p->level--);
13499 return NULL;
13500 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010013501 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013502 int _mark = p->mark;
13503 { // ','.del_target+ ','?
13504 if (p->error_indicator) {
13505 D(p->level--);
13506 return NULL;
13507 }
13508 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
13509 void *_opt_var;
13510 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010013511 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013512 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013513 (a = (asdl_expr_seq*)_gather_122_rule(p)) // ','.del_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013514 &&
13515 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
13516 )
13517 {
13518 D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
13519 _res = a;
13520 if (_res == NULL && PyErr_Occurred()) {
13521 p->error_indicator = 1;
13522 D(p->level--);
13523 return NULL;
13524 }
13525 goto done;
13526 }
13527 p->mark = _mark;
13528 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
13529 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
13530 }
13531 _res = NULL;
13532 done:
13533 D(p->level--);
13534 return _res;
13535}
13536
13537// del_target:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013538// | t_primary '.' NAME !t_lookahead
13539// | t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013540// | del_t_atom
13541static expr_ty
13542del_target_rule(Parser *p)
13543{
13544 D(p->level++);
13545 if (p->error_indicator) {
13546 D(p->level--);
13547 return NULL;
13548 }
13549 expr_ty _res = NULL;
13550 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
13551 D(p->level--);
13552 return _res;
13553 }
13554 int _mark = p->mark;
13555 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13556 p->error_indicator = 1;
13557 D(p->level--);
13558 return NULL;
13559 }
13560 int _start_lineno = p->tokens[_mark]->lineno;
13561 UNUSED(_start_lineno); // Only used by EXTRA macro
13562 int _start_col_offset = p->tokens[_mark]->col_offset;
13563 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013564 { // t_primary '.' NAME !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013565 if (p->error_indicator) {
13566 D(p->level--);
13567 return NULL;
13568 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013569 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 +010013570 Token * _literal;
13571 expr_ty a;
13572 expr_ty b;
13573 if (
13574 (a = t_primary_rule(p)) // t_primary
13575 &&
13576 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13577 &&
13578 (b = _PyPegen_name_token(p)) // NAME
13579 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013580 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013581 )
13582 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013583 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 +010013584 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13585 if (_token == NULL) {
13586 D(p->level--);
13587 return NULL;
13588 }
13589 int _end_lineno = _token->end_lineno;
13590 UNUSED(_end_lineno); // Only used by EXTRA macro
13591 int _end_col_offset = _token->end_col_offset;
13592 UNUSED(_end_col_offset); // Only used by EXTRA macro
13593 _res = _Py_Attribute ( a , b -> v . Name . id , Del , EXTRA );
13594 if (_res == NULL && PyErr_Occurred()) {
13595 p->error_indicator = 1;
13596 D(p->level--);
13597 return NULL;
13598 }
13599 goto done;
13600 }
13601 p->mark = _mark;
13602 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013604 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013605 { // t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013606 if (p->error_indicator) {
13607 D(p->level--);
13608 return NULL;
13609 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013610 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 +010013611 Token * _literal;
13612 Token * _literal_1;
13613 expr_ty a;
13614 expr_ty b;
13615 if (
13616 (a = t_primary_rule(p)) // t_primary
13617 &&
13618 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13619 &&
13620 (b = slices_rule(p)) // slices
13621 &&
13622 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13623 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013624 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013625 )
13626 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013627 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 +010013628 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13629 if (_token == NULL) {
13630 D(p->level--);
13631 return NULL;
13632 }
13633 int _end_lineno = _token->end_lineno;
13634 UNUSED(_end_lineno); // Only used by EXTRA macro
13635 int _end_col_offset = _token->end_col_offset;
13636 UNUSED(_end_col_offset); // Only used by EXTRA macro
13637 _res = _Py_Subscript ( a , b , Del , EXTRA );
13638 if (_res == NULL && PyErr_Occurred()) {
13639 p->error_indicator = 1;
13640 D(p->level--);
13641 return NULL;
13642 }
13643 goto done;
13644 }
13645 p->mark = _mark;
13646 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013647 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013648 }
13649 { // del_t_atom
13650 if (p->error_indicator) {
13651 D(p->level--);
13652 return NULL;
13653 }
13654 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
13655 expr_ty del_t_atom_var;
13656 if (
13657 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
13658 )
13659 {
13660 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
13661 _res = del_t_atom_var;
13662 goto done;
13663 }
13664 p->mark = _mark;
13665 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
13666 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
13667 }
13668 _res = NULL;
13669 done:
13670 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
13671 D(p->level--);
13672 return _res;
13673}
13674
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013675// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013676static expr_ty
13677del_t_atom_rule(Parser *p)
13678{
13679 D(p->level++);
13680 if (p->error_indicator) {
13681 D(p->level--);
13682 return NULL;
13683 }
13684 expr_ty _res = NULL;
13685 int _mark = p->mark;
13686 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13687 p->error_indicator = 1;
13688 D(p->level--);
13689 return NULL;
13690 }
13691 int _start_lineno = p->tokens[_mark]->lineno;
13692 UNUSED(_start_lineno); // Only used by EXTRA macro
13693 int _start_col_offset = p->tokens[_mark]->col_offset;
13694 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013695 { // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013696 if (p->error_indicator) {
13697 D(p->level--);
13698 return NULL;
13699 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013700 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013701 expr_ty a;
13702 if (
13703 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013704 )
13705 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013706 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 +010013707 _res = _PyPegen_set_expr_context ( p , a , Del );
13708 if (_res == NULL && PyErr_Occurred()) {
13709 p->error_indicator = 1;
13710 D(p->level--);
13711 return NULL;
13712 }
13713 goto done;
13714 }
13715 p->mark = _mark;
13716 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030013717 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013718 }
13719 { // '(' del_target ')'
13720 if (p->error_indicator) {
13721 D(p->level--);
13722 return NULL;
13723 }
13724 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
13725 Token * _literal;
13726 Token * _literal_1;
13727 expr_ty a;
13728 if (
13729 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13730 &&
13731 (a = del_target_rule(p)) // del_target
13732 &&
13733 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13734 )
13735 {
13736 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
13737 _res = _PyPegen_set_expr_context ( p , a , Del );
13738 if (_res == NULL && PyErr_Occurred()) {
13739 p->error_indicator = 1;
13740 D(p->level--);
13741 return NULL;
13742 }
13743 goto done;
13744 }
13745 p->mark = _mark;
13746 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
13748 }
13749 { // '(' del_targets? ')'
13750 if (p->error_indicator) {
13751 D(p->level--);
13752 return NULL;
13753 }
13754 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
13755 Token * _literal;
13756 Token * _literal_1;
13757 void *a;
13758 if (
13759 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13760 &&
13761 (a = del_targets_rule(p), 1) // del_targets?
13762 &&
13763 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13764 )
13765 {
13766 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
13767 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13768 if (_token == NULL) {
13769 D(p->level--);
13770 return NULL;
13771 }
13772 int _end_lineno = _token->end_lineno;
13773 UNUSED(_end_lineno); // Only used by EXTRA macro
13774 int _end_col_offset = _token->end_col_offset;
13775 UNUSED(_end_col_offset); // Only used by EXTRA macro
13776 _res = _Py_Tuple ( a , Del , EXTRA );
13777 if (_res == NULL && PyErr_Occurred()) {
13778 p->error_indicator = 1;
13779 D(p->level--);
13780 return NULL;
13781 }
13782 goto done;
13783 }
13784 p->mark = _mark;
13785 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13786 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
13787 }
13788 { // '[' del_targets? ']'
13789 if (p->error_indicator) {
13790 D(p->level--);
13791 return NULL;
13792 }
13793 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
13794 Token * _literal;
13795 Token * _literal_1;
13796 void *a;
13797 if (
13798 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13799 &&
13800 (a = del_targets_rule(p), 1) // del_targets?
13801 &&
13802 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13803 )
13804 {
13805 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
13806 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13807 if (_token == NULL) {
13808 D(p->level--);
13809 return NULL;
13810 }
13811 int _end_lineno = _token->end_lineno;
13812 UNUSED(_end_lineno); // Only used by EXTRA macro
13813 int _end_col_offset = _token->end_col_offset;
13814 UNUSED(_end_col_offset); // Only used by EXTRA macro
13815 _res = _Py_List ( a , Del , EXTRA );
13816 if (_res == NULL && PyErr_Occurred()) {
13817 p->error_indicator = 1;
13818 D(p->level--);
13819 return NULL;
13820 }
13821 goto done;
13822 }
13823 p->mark = _mark;
13824 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13825 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
13826 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013827 _res = NULL;
13828 done:
13829 D(p->level--);
13830 return _res;
13831}
13832
13833// targets: ','.target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010013834static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013835targets_rule(Parser *p)
13836{
13837 D(p->level++);
13838 if (p->error_indicator) {
13839 D(p->level--);
13840 return NULL;
13841 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010013842 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013843 int _mark = p->mark;
13844 { // ','.target+ ','?
13845 if (p->error_indicator) {
13846 D(p->level--);
13847 return NULL;
13848 }
13849 D(fprintf(stderr, "%*c> targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
13850 void *_opt_var;
13851 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010013852 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013853 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020013854 (a = (asdl_expr_seq*)_gather_124_rule(p)) // ','.target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013855 &&
13856 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
13857 )
13858 {
13859 D(fprintf(stderr, "%*c+ targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
13860 _res = a;
13861 if (_res == NULL && PyErr_Occurred()) {
13862 p->error_indicator = 1;
13863 D(p->level--);
13864 return NULL;
13865 }
13866 goto done;
13867 }
13868 p->mark = _mark;
13869 D(fprintf(stderr, "%*c%s targets[%d-%d]: %s failed!\n", p->level, ' ',
13870 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.target+ ','?"));
13871 }
13872 _res = NULL;
13873 done:
13874 D(p->level--);
13875 return _res;
13876}
13877
13878// target:
13879// | t_primary '.' NAME !t_lookahead
13880// | t_primary '[' slices ']' !t_lookahead
13881// | t_atom
13882static expr_ty
13883target_rule(Parser *p)
13884{
13885 D(p->level++);
13886 if (p->error_indicator) {
13887 D(p->level--);
13888 return NULL;
13889 }
13890 expr_ty _res = NULL;
13891 if (_PyPegen_is_memoized(p, target_type, &_res)) {
13892 D(p->level--);
13893 return _res;
13894 }
13895 int _mark = p->mark;
13896 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13897 p->error_indicator = 1;
13898 D(p->level--);
13899 return NULL;
13900 }
13901 int _start_lineno = p->tokens[_mark]->lineno;
13902 UNUSED(_start_lineno); // Only used by EXTRA macro
13903 int _start_col_offset = p->tokens[_mark]->col_offset;
13904 UNUSED(_start_col_offset); // Only used by EXTRA macro
13905 { // t_primary '.' NAME !t_lookahead
13906 if (p->error_indicator) {
13907 D(p->level--);
13908 return NULL;
13909 }
13910 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13911 Token * _literal;
13912 expr_ty a;
13913 expr_ty b;
13914 if (
13915 (a = t_primary_rule(p)) // t_primary
13916 &&
13917 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13918 &&
13919 (b = _PyPegen_name_token(p)) // NAME
13920 &&
13921 _PyPegen_lookahead(0, t_lookahead_rule, p)
13922 )
13923 {
13924 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13925 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13926 if (_token == NULL) {
13927 D(p->level--);
13928 return NULL;
13929 }
13930 int _end_lineno = _token->end_lineno;
13931 UNUSED(_end_lineno); // Only used by EXTRA macro
13932 int _end_col_offset = _token->end_col_offset;
13933 UNUSED(_end_col_offset); // Only used by EXTRA macro
13934 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13935 if (_res == NULL && PyErr_Occurred()) {
13936 p->error_indicator = 1;
13937 D(p->level--);
13938 return NULL;
13939 }
13940 goto done;
13941 }
13942 p->mark = _mark;
13943 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13944 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
13945 }
13946 { // t_primary '[' slices ']' !t_lookahead
13947 if (p->error_indicator) {
13948 D(p->level--);
13949 return NULL;
13950 }
13951 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13952 Token * _literal;
13953 Token * _literal_1;
13954 expr_ty a;
13955 expr_ty b;
13956 if (
13957 (a = t_primary_rule(p)) // t_primary
13958 &&
13959 (_literal = _PyPegen_expect_token(p, 9)) // token='['
13960 &&
13961 (b = slices_rule(p)) // slices
13962 &&
13963 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
13964 &&
13965 _PyPegen_lookahead(0, t_lookahead_rule, p)
13966 )
13967 {
13968 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
13969 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13970 if (_token == NULL) {
13971 D(p->level--);
13972 return NULL;
13973 }
13974 int _end_lineno = _token->end_lineno;
13975 UNUSED(_end_lineno); // Only used by EXTRA macro
13976 int _end_col_offset = _token->end_col_offset;
13977 UNUSED(_end_col_offset); // Only used by EXTRA macro
13978 _res = _Py_Subscript ( a , b , Store , EXTRA );
13979 if (_res == NULL && PyErr_Occurred()) {
13980 p->error_indicator = 1;
13981 D(p->level--);
13982 return NULL;
13983 }
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_primary '[' slices ']' !t_lookahead"));
13989 }
13990 { // t_atom
13991 if (p->error_indicator) {
13992 D(p->level--);
13993 return NULL;
13994 }
13995 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_atom"));
13996 expr_ty t_atom_var;
13997 if (
13998 (t_atom_var = t_atom_rule(p)) // t_atom
13999 )
14000 {
14001 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_atom"));
14002 _res = t_atom_var;
14003 goto done;
14004 }
14005 p->mark = _mark;
14006 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
14007 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_atom"));
14008 }
14009 _res = NULL;
14010 done:
14011 _PyPegen_insert_memo(p, _mark, target_type, _res);
14012 D(p->level--);
14013 return _res;
14014}
14015
14016// Left-recursive
14017// t_primary:
14018// | t_primary '.' NAME &t_lookahead
14019// | t_primary '[' slices ']' &t_lookahead
14020// | t_primary genexp &t_lookahead
14021// | t_primary '(' arguments? ')' &t_lookahead
14022// | atom &t_lookahead
14023static expr_ty t_primary_raw(Parser *);
14024static expr_ty
14025t_primary_rule(Parser *p)
14026{
14027 D(p->level++);
14028 expr_ty _res = NULL;
14029 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
14030 D(p->level--);
14031 return _res;
14032 }
14033 int _mark = p->mark;
14034 int _resmark = p->mark;
14035 while (1) {
14036 int tmpvar_8 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
14037 if (tmpvar_8) {
14038 D(p->level--);
14039 return _res;
14040 }
14041 p->mark = _mark;
14042 void *_raw = t_primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020014043 if (p->error_indicator)
14044 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014045 if (_raw == NULL || p->mark <= _resmark)
14046 break;
14047 _resmark = p->mark;
14048 _res = _raw;
14049 }
14050 p->mark = _resmark;
14051 D(p->level--);
14052 return _res;
14053}
14054static expr_ty
14055t_primary_raw(Parser *p)
14056{
14057 D(p->level++);
14058 if (p->error_indicator) {
14059 D(p->level--);
14060 return NULL;
14061 }
14062 expr_ty _res = NULL;
14063 int _mark = p->mark;
14064 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14065 p->error_indicator = 1;
14066 D(p->level--);
14067 return NULL;
14068 }
14069 int _start_lineno = p->tokens[_mark]->lineno;
14070 UNUSED(_start_lineno); // Only used by EXTRA macro
14071 int _start_col_offset = p->tokens[_mark]->col_offset;
14072 UNUSED(_start_col_offset); // Only used by EXTRA macro
14073 { // t_primary '.' NAME &t_lookahead
14074 if (p->error_indicator) {
14075 D(p->level--);
14076 return NULL;
14077 }
14078 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
14079 Token * _literal;
14080 expr_ty a;
14081 expr_ty b;
14082 if (
14083 (a = t_primary_rule(p)) // t_primary
14084 &&
14085 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
14086 &&
14087 (b = _PyPegen_name_token(p)) // NAME
14088 &&
14089 _PyPegen_lookahead(1, t_lookahead_rule, p)
14090 )
14091 {
14092 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
14093 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14094 if (_token == NULL) {
14095 D(p->level--);
14096 return NULL;
14097 }
14098 int _end_lineno = _token->end_lineno;
14099 UNUSED(_end_lineno); // Only used by EXTRA macro
14100 int _end_col_offset = _token->end_col_offset;
14101 UNUSED(_end_col_offset); // Only used by EXTRA macro
14102 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
14103 if (_res == NULL && PyErr_Occurred()) {
14104 p->error_indicator = 1;
14105 D(p->level--);
14106 return NULL;
14107 }
14108 goto done;
14109 }
14110 p->mark = _mark;
14111 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14112 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
14113 }
14114 { // t_primary '[' slices ']' &t_lookahead
14115 if (p->error_indicator) {
14116 D(p->level--);
14117 return NULL;
14118 }
14119 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
14120 Token * _literal;
14121 Token * _literal_1;
14122 expr_ty a;
14123 expr_ty b;
14124 if (
14125 (a = t_primary_rule(p)) // t_primary
14126 &&
14127 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14128 &&
14129 (b = slices_rule(p)) // slices
14130 &&
14131 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14132 &&
14133 _PyPegen_lookahead(1, t_lookahead_rule, p)
14134 )
14135 {
14136 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
14137 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14138 if (_token == NULL) {
14139 D(p->level--);
14140 return NULL;
14141 }
14142 int _end_lineno = _token->end_lineno;
14143 UNUSED(_end_lineno); // Only used by EXTRA macro
14144 int _end_col_offset = _token->end_col_offset;
14145 UNUSED(_end_col_offset); // Only used by EXTRA macro
14146 _res = _Py_Subscript ( a , b , Load , EXTRA );
14147 if (_res == NULL && PyErr_Occurred()) {
14148 p->error_indicator = 1;
14149 D(p->level--);
14150 return NULL;
14151 }
14152 goto done;
14153 }
14154 p->mark = _mark;
14155 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14156 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
14157 }
14158 { // t_primary genexp &t_lookahead
14159 if (p->error_indicator) {
14160 D(p->level--);
14161 return NULL;
14162 }
14163 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
14164 expr_ty a;
14165 expr_ty b;
14166 if (
14167 (a = t_primary_rule(p)) // t_primary
14168 &&
14169 (b = genexp_rule(p)) // genexp
14170 &&
14171 _PyPegen_lookahead(1, t_lookahead_rule, p)
14172 )
14173 {
14174 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
14175 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14176 if (_token == NULL) {
14177 D(p->level--);
14178 return NULL;
14179 }
14180 int _end_lineno = _token->end_lineno;
14181 UNUSED(_end_lineno); // Only used by EXTRA macro
14182 int _end_col_offset = _token->end_col_offset;
14183 UNUSED(_end_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +030014184 _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 +010014185 if (_res == NULL && PyErr_Occurred()) {
14186 p->error_indicator = 1;
14187 D(p->level--);
14188 return NULL;
14189 }
14190 goto done;
14191 }
14192 p->mark = _mark;
14193 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14194 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
14195 }
14196 { // t_primary '(' arguments? ')' &t_lookahead
14197 if (p->error_indicator) {
14198 D(p->level--);
14199 return NULL;
14200 }
14201 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
14202 Token * _literal;
14203 Token * _literal_1;
14204 expr_ty a;
14205 void *b;
14206 if (
14207 (a = t_primary_rule(p)) // t_primary
14208 &&
14209 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14210 &&
14211 (b = arguments_rule(p), 1) // arguments?
14212 &&
14213 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14214 &&
14215 _PyPegen_lookahead(1, t_lookahead_rule, p)
14216 )
14217 {
14218 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
14219 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14220 if (_token == NULL) {
14221 D(p->level--);
14222 return NULL;
14223 }
14224 int _end_lineno = _token->end_lineno;
14225 UNUSED(_end_lineno); // Only used by EXTRA macro
14226 int _end_col_offset = _token->end_col_offset;
14227 UNUSED(_end_col_offset); // Only used by EXTRA macro
14228 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
14229 if (_res == NULL && PyErr_Occurred()) {
14230 p->error_indicator = 1;
14231 D(p->level--);
14232 return NULL;
14233 }
14234 goto done;
14235 }
14236 p->mark = _mark;
14237 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
14239 }
14240 { // atom &t_lookahead
14241 if (p->error_indicator) {
14242 D(p->level--);
14243 return NULL;
14244 }
14245 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
14246 expr_ty a;
14247 if (
14248 (a = atom_rule(p)) // atom
14249 &&
14250 _PyPegen_lookahead(1, t_lookahead_rule, p)
14251 )
14252 {
14253 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
14254 _res = a;
14255 if (_res == NULL && PyErr_Occurred()) {
14256 p->error_indicator = 1;
14257 D(p->level--);
14258 return NULL;
14259 }
14260 goto done;
14261 }
14262 p->mark = _mark;
14263 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14264 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
14265 }
14266 _res = NULL;
14267 done:
14268 D(p->level--);
14269 return _res;
14270}
14271
14272// t_lookahead: '(' | '[' | '.'
14273static void *
14274t_lookahead_rule(Parser *p)
14275{
14276 D(p->level++);
14277 if (p->error_indicator) {
14278 D(p->level--);
14279 return NULL;
14280 }
14281 void * _res = NULL;
14282 int _mark = p->mark;
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, 7)) // 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, 9)) // 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 { // '.'
14322 if (p->error_indicator) {
14323 D(p->level--);
14324 return NULL;
14325 }
14326 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
14327 Token * _literal;
14328 if (
14329 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
14330 )
14331 {
14332 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
14333 _res = _literal;
14334 goto done;
14335 }
14336 p->mark = _mark;
14337 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14338 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
14339 }
14340 _res = NULL;
14341 done:
14342 D(p->level--);
14343 return _res;
14344}
14345
14346// t_atom: NAME | '(' target ')' | '(' targets? ')' | '[' targets? ']'
14347static expr_ty
14348t_atom_rule(Parser *p)
14349{
14350 D(p->level++);
14351 if (p->error_indicator) {
14352 D(p->level--);
14353 return NULL;
14354 }
14355 expr_ty _res = NULL;
14356 int _mark = p->mark;
14357 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14358 p->error_indicator = 1;
14359 D(p->level--);
14360 return NULL;
14361 }
14362 int _start_lineno = p->tokens[_mark]->lineno;
14363 UNUSED(_start_lineno); // Only used by EXTRA macro
14364 int _start_col_offset = p->tokens[_mark]->col_offset;
14365 UNUSED(_start_col_offset); // Only used by EXTRA macro
14366 { // NAME
14367 if (p->error_indicator) {
14368 D(p->level--);
14369 return NULL;
14370 }
14371 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
14372 expr_ty a;
14373 if (
14374 (a = _PyPegen_name_token(p)) // NAME
14375 )
14376 {
14377 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
14378 _res = _PyPegen_set_expr_context ( p , a , Store );
14379 if (_res == NULL && PyErr_Occurred()) {
14380 p->error_indicator = 1;
14381 D(p->level--);
14382 return NULL;
14383 }
14384 goto done;
14385 }
14386 p->mark = _mark;
14387 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14388 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
14389 }
14390 { // '(' target ')'
14391 if (p->error_indicator) {
14392 D(p->level--);
14393 return NULL;
14394 }
14395 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
14396 Token * _literal;
14397 Token * _literal_1;
14398 expr_ty a;
14399 if (
14400 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14401 &&
14402 (a = target_rule(p)) // target
14403 &&
14404 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14405 )
14406 {
14407 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
14408 _res = _PyPegen_set_expr_context ( p , a , Store );
14409 if (_res == NULL && PyErr_Occurred()) {
14410 p->error_indicator = 1;
14411 D(p->level--);
14412 return NULL;
14413 }
14414 goto done;
14415 }
14416 p->mark = _mark;
14417 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14418 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target ')'"));
14419 }
14420 { // '(' targets? ')'
14421 if (p->error_indicator) {
14422 D(p->level--);
14423 return NULL;
14424 }
14425 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
14426 Token * _literal;
14427 Token * _literal_1;
14428 void *b;
14429 if (
14430 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14431 &&
14432 (b = targets_rule(p), 1) // targets?
14433 &&
14434 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14435 )
14436 {
14437 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
14438 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14439 if (_token == NULL) {
14440 D(p->level--);
14441 return NULL;
14442 }
14443 int _end_lineno = _token->end_lineno;
14444 UNUSED(_end_lineno); // Only used by EXTRA macro
14445 int _end_col_offset = _token->end_col_offset;
14446 UNUSED(_end_col_offset); // Only used by EXTRA macro
14447 _res = _Py_Tuple ( b , Store , EXTRA );
14448 if (_res == NULL && PyErr_Occurred()) {
14449 p->error_indicator = 1;
14450 D(p->level--);
14451 return NULL;
14452 }
14453 goto done;
14454 }
14455 p->mark = _mark;
14456 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14457 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' targets? ')'"));
14458 }
14459 { // '[' targets? ']'
14460 if (p->error_indicator) {
14461 D(p->level--);
14462 return NULL;
14463 }
14464 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
14465 Token * _literal;
14466 Token * _literal_1;
14467 void *b;
14468 if (
14469 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14470 &&
14471 (b = targets_rule(p), 1) // targets?
14472 &&
14473 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14474 )
14475 {
14476 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
14477 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14478 if (_token == NULL) {
14479 D(p->level--);
14480 return NULL;
14481 }
14482 int _end_lineno = _token->end_lineno;
14483 UNUSED(_end_lineno); // Only used by EXTRA macro
14484 int _end_col_offset = _token->end_col_offset;
14485 UNUSED(_end_col_offset); // Only used by EXTRA macro
14486 _res = _Py_List ( b , Store , EXTRA );
14487 if (_res == NULL && PyErr_Occurred()) {
14488 p->error_indicator = 1;
14489 D(p->level--);
14490 return NULL;
14491 }
14492 goto done;
14493 }
14494 p->mark = _mark;
14495 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14496 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' targets? ']'"));
14497 }
14498 _res = NULL;
14499 done:
14500 D(p->level--);
14501 return _res;
14502}
14503
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014504// invalid_arguments:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014505// | args ',' '*'
14506// | expression for_if_clauses ',' [args | expression for_if_clauses]
14507// | args for_if_clauses
14508// | args ',' expression for_if_clauses
14509// | args ',' args
14510static void *
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014511invalid_arguments_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014512{
14513 D(p->level++);
14514 if (p->error_indicator) {
14515 D(p->level--);
14516 return NULL;
14517 }
14518 void * _res = NULL;
14519 int _mark = p->mark;
14520 { // args ',' '*'
14521 if (p->error_indicator) {
14522 D(p->level--);
14523 return NULL;
14524 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014525 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014526 Token * _literal;
14527 Token * _literal_1;
14528 expr_ty args_var;
14529 if (
14530 (args_var = args_rule(p)) // args
14531 &&
14532 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14533 &&
14534 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
14535 )
14536 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014537 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014538 _res = RAISE_SYNTAX_ERROR ( "iterable argument unpacking follows keyword argument unpacking" );
14539 if (_res == NULL && PyErr_Occurred()) {
14540 p->error_indicator = 1;
14541 D(p->level--);
14542 return NULL;
14543 }
14544 goto done;
14545 }
14546 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014547 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014548 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
14549 }
14550 { // expression for_if_clauses ',' [args | expression for_if_clauses]
14551 if (p->error_indicator) {
14552 D(p->level--);
14553 return NULL;
14554 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014555 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 +010014556 Token * _literal;
14557 void *_opt_var;
14558 UNUSED(_opt_var); // Silence compiler warnings
14559 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014560 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014561 if (
14562 (a = expression_rule(p)) // expression
14563 &&
14564 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14565 &&
14566 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14567 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014568 (_opt_var = _tmp_126_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014569 )
14570 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014571 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 +010014572 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
14573 if (_res == NULL && PyErr_Occurred()) {
14574 p->error_indicator = 1;
14575 D(p->level--);
14576 return NULL;
14577 }
14578 goto done;
14579 }
14580 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014581 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
14583 }
14584 { // args for_if_clauses
14585 if (p->error_indicator) {
14586 D(p->level--);
14587 return NULL;
14588 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014589 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 +010014590 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014591 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014592 if (
14593 (a = args_rule(p)) // args
14594 &&
14595 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14596 )
14597 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014598 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 +010014599 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
14600 if (_res == NULL && PyErr_Occurred()) {
14601 p->error_indicator = 1;
14602 D(p->level--);
14603 return NULL;
14604 }
14605 goto done;
14606 }
14607 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014608 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014609 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
14610 }
14611 { // args ',' expression for_if_clauses
14612 if (p->error_indicator) {
14613 D(p->level--);
14614 return NULL;
14615 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014616 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 +010014617 Token * _literal;
14618 expr_ty a;
14619 expr_ty args_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014620 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014621 if (
14622 (args_var = args_rule(p)) // args
14623 &&
14624 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14625 &&
14626 (a = expression_rule(p)) // expression
14627 &&
14628 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14629 )
14630 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014631 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 +010014632 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
14633 if (_res == NULL && PyErr_Occurred()) {
14634 p->error_indicator = 1;
14635 D(p->level--);
14636 return NULL;
14637 }
14638 goto done;
14639 }
14640 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014641 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014642 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
14643 }
14644 { // args ',' args
14645 if (p->error_indicator) {
14646 D(p->level--);
14647 return NULL;
14648 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014649 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014650 Token * _literal;
14651 expr_ty a;
14652 expr_ty args_var;
14653 if (
14654 (a = args_rule(p)) // args
14655 &&
14656 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14657 &&
14658 (args_var = args_rule(p)) // args
14659 )
14660 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014661 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 +010014662 _res = _PyPegen_arguments_parsing_error ( p , a );
14663 if (_res == NULL && PyErr_Occurred()) {
14664 p->error_indicator = 1;
14665 D(p->level--);
14666 return NULL;
14667 }
14668 goto done;
14669 }
14670 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014671 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014672 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
14673 }
14674 _res = NULL;
14675 done:
14676 D(p->level--);
14677 return _res;
14678}
14679
14680// invalid_kwarg: expression '='
14681static void *
14682invalid_kwarg_rule(Parser *p)
14683{
14684 D(p->level++);
14685 if (p->error_indicator) {
14686 D(p->level--);
14687 return NULL;
14688 }
14689 void * _res = NULL;
14690 int _mark = p->mark;
14691 { // expression '='
14692 if (p->error_indicator) {
14693 D(p->level--);
14694 return NULL;
14695 }
14696 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression '='"));
Pablo Galindo43c4fb62020-12-13 16:46:48 +000014697 Token * a;
14698 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014699 if (
Pablo Galindo43c4fb62020-12-13 16:46:48 +000014700 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014701 &&
Pablo Galindo43c4fb62020-12-13 16:46:48 +000014702 (a = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014703 )
14704 {
14705 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression '='"));
14706 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression cannot contain assignment, perhaps you meant \"==\"?" );
14707 if (_res == NULL && PyErr_Occurred()) {
14708 p->error_indicator = 1;
14709 D(p->level--);
14710 return NULL;
14711 }
14712 goto done;
14713 }
14714 p->mark = _mark;
14715 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
14716 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression '='"));
14717 }
14718 _res = NULL;
14719 done:
14720 D(p->level--);
14721 return _res;
14722}
14723
14724// invalid_named_expression: expression ':=' expression
14725static void *
14726invalid_named_expression_rule(Parser *p)
14727{
14728 D(p->level++);
14729 if (p->error_indicator) {
14730 D(p->level--);
14731 return NULL;
14732 }
14733 void * _res = NULL;
14734 int _mark = p->mark;
14735 { // expression ':=' expression
14736 if (p->error_indicator) {
14737 D(p->level--);
14738 return NULL;
14739 }
14740 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
14741 Token * _literal;
14742 expr_ty a;
14743 expr_ty expression_var;
14744 if (
14745 (a = expression_rule(p)) // expression
14746 &&
14747 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
14748 &&
14749 (expression_var = expression_rule(p)) // expression
14750 )
14751 {
14752 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
14753 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
14754 if (_res == NULL && PyErr_Occurred()) {
14755 p->error_indicator = 1;
14756 D(p->level--);
14757 return NULL;
14758 }
14759 goto done;
14760 }
14761 p->mark = _mark;
14762 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
14763 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
14764 }
14765 _res = NULL;
14766 done:
14767 D(p->level--);
14768 return _res;
14769}
14770
14771// invalid_assignment:
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014772// | invalid_ann_assign_target ':' expression
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014773// | star_named_expression ',' star_named_expressions* ':' expression
14774// | expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014775// | ((star_targets '='))* star_expressions '='
14776// | ((star_targets '='))* yield_expr '='
14777// | star_expressions augassign (yield_expr | star_expressions)
14778static void *
14779invalid_assignment_rule(Parser *p)
14780{
14781 D(p->level++);
14782 if (p->error_indicator) {
14783 D(p->level--);
14784 return NULL;
14785 }
14786 void * _res = NULL;
14787 int _mark = p->mark;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014788 { // invalid_ann_assign_target ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014789 if (p->error_indicator) {
14790 D(p->level--);
14791 return NULL;
14792 }
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014793 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 +010014794 Token * _literal;
14795 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014796 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014797 if (
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014798 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014799 &&
14800 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014801 &&
14802 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014803 )
14804 {
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014805 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
14806 _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 +010014807 if (_res == NULL && PyErr_Occurred()) {
14808 p->error_indicator = 1;
14809 D(p->level--);
14810 return NULL;
14811 }
14812 goto done;
14813 }
14814 p->mark = _mark;
14815 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014816 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014817 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014818 { // star_named_expression ',' star_named_expressions* ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014819 if (p->error_indicator) {
14820 D(p->level--);
14821 return NULL;
14822 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014823 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 +010014824 Token * _literal;
14825 Token * _literal_1;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014826 asdl_seq * _loop0_127_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014827 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014828 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014829 if (
14830 (a = star_named_expression_rule(p)) // star_named_expression
14831 &&
14832 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14833 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014834 (_loop0_127_var = _loop0_127_rule(p)) // star_named_expressions*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014835 &&
14836 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014837 &&
14838 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014839 )
14840 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014841 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 +010014842 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
14843 if (_res == NULL && PyErr_Occurred()) {
14844 p->error_indicator = 1;
14845 D(p->level--);
14846 return NULL;
14847 }
14848 goto done;
14849 }
14850 p->mark = _mark;
14851 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014852 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014853 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014854 { // expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014855 if (p->error_indicator) {
14856 D(p->level--);
14857 return NULL;
14858 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014859 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014860 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014861 expr_ty a;
14862 expr_ty expression_var;
14863 if (
14864 (a = expression_rule(p)) // expression
14865 &&
14866 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
14867 &&
14868 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014869 )
14870 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014871 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 +010014872 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
14873 if (_res == NULL && PyErr_Occurred()) {
14874 p->error_indicator = 1;
14875 D(p->level--);
14876 return NULL;
14877 }
14878 goto done;
14879 }
14880 p->mark = _mark;
14881 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030014882 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014883 }
14884 { // ((star_targets '='))* star_expressions '='
14885 if (p->error_indicator) {
14886 D(p->level--);
14887 return NULL;
14888 }
14889 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
14890 Token * _literal;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014891 asdl_seq * _loop0_128_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014892 expr_ty a;
14893 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014894 (_loop0_128_var = _loop0_128_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014895 &&
14896 (a = star_expressions_rule(p)) // star_expressions
14897 &&
14898 (_literal = _PyPegen_expect_token(p, 22)) // token='='
14899 )
14900 {
14901 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 +030014902 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014903 if (_res == NULL && PyErr_Occurred()) {
14904 p->error_indicator = 1;
14905 D(p->level--);
14906 return NULL;
14907 }
14908 goto done;
14909 }
14910 p->mark = _mark;
14911 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14912 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
14913 }
14914 { // ((star_targets '='))* yield_expr '='
14915 if (p->error_indicator) {
14916 D(p->level--);
14917 return NULL;
14918 }
14919 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14920 Token * _literal;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014921 asdl_seq * _loop0_129_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014922 expr_ty a;
14923 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014924 (_loop0_129_var = _loop0_129_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014925 &&
14926 (a = yield_expr_rule(p)) // yield_expr
14927 &&
14928 (_literal = _PyPegen_expect_token(p, 22)) // token='='
14929 )
14930 {
14931 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14932 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
14933 if (_res == NULL && PyErr_Occurred()) {
14934 p->error_indicator = 1;
14935 D(p->level--);
14936 return NULL;
14937 }
14938 goto done;
14939 }
14940 p->mark = _mark;
14941 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14942 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14943 }
14944 { // star_expressions augassign (yield_expr | star_expressions)
14945 if (p->error_indicator) {
14946 D(p->level--);
14947 return NULL;
14948 }
14949 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 +020014950 void *_tmp_130_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014951 expr_ty a;
14952 AugOperator* augassign_var;
14953 if (
14954 (a = star_expressions_rule(p)) // star_expressions
14955 &&
14956 (augassign_var = augassign_rule(p)) // augassign
14957 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020014958 (_tmp_130_var = _tmp_130_rule(p)) // yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014959 )
14960 {
14961 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
14962 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
14963 if (_res == NULL && PyErr_Occurred()) {
14964 p->error_indicator = 1;
14965 D(p->level--);
14966 return NULL;
14967 }
14968 goto done;
14969 }
14970 p->mark = _mark;
14971 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14972 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
14973 }
14974 _res = NULL;
14975 done:
14976 D(p->level--);
14977 return _res;
14978}
14979
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030014980// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
14981static expr_ty
14982invalid_ann_assign_target_rule(Parser *p)
14983{
14984 D(p->level++);
14985 if (p->error_indicator) {
14986 D(p->level--);
14987 return NULL;
14988 }
14989 expr_ty _res = NULL;
14990 int _mark = p->mark;
14991 { // list
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, "list"));
14997 expr_ty list_var;
14998 if (
14999 (list_var = list_rule(p)) // list
15000 )
15001 {
15002 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
15003 _res = list_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, "list"));
15009 }
15010 { // tuple
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, "tuple"));
15016 expr_ty tuple_var;
15017 if (
15018 (tuple_var = tuple_rule(p)) // tuple
15019 )
15020 {
15021 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
15022 _res = tuple_var;
15023 goto done;
15024 }
15025 p->mark = _mark;
15026 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
15027 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
15028 }
15029 { // '(' invalid_ann_assign_target ')'
15030 if (p->error_indicator) {
15031 D(p->level--);
15032 return NULL;
15033 }
15034 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
15035 Token * _literal;
15036 Token * _literal_1;
15037 expr_ty a;
15038 if (
15039 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15040 &&
15041 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
15042 &&
15043 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15044 )
15045 {
15046 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
15047 _res = a;
15048 if (_res == NULL && PyErr_Occurred()) {
15049 p->error_indicator = 1;
15050 D(p->level--);
15051 return NULL;
15052 }
15053 goto done;
15054 }
15055 p->mark = _mark;
15056 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
15057 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
15058 }
15059 _res = NULL;
15060 done:
15061 D(p->level--);
15062 return _res;
15063}
15064
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015065// invalid_del_stmt: 'del' star_expressions
15066static void *
15067invalid_del_stmt_rule(Parser *p)
15068{
15069 D(p->level++);
15070 if (p->error_indicator) {
15071 D(p->level--);
15072 return NULL;
15073 }
15074 void * _res = NULL;
15075 int _mark = p->mark;
15076 { // 'del' star_expressions
15077 if (p->error_indicator) {
15078 D(p->level--);
15079 return NULL;
15080 }
15081 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
15082 Token * _keyword;
15083 expr_ty a;
15084 if (
15085 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
15086 &&
15087 (a = star_expressions_rule(p)) // star_expressions
15088 )
15089 {
15090 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 +030015091 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015092 if (_res == NULL && PyErr_Occurred()) {
15093 p->error_indicator = 1;
15094 D(p->level--);
15095 return NULL;
15096 }
15097 goto done;
15098 }
15099 p->mark = _mark;
15100 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
15101 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
15102 }
15103 _res = NULL;
15104 done:
15105 D(p->level--);
15106 return _res;
15107}
15108
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015109// invalid_block: NEWLINE !INDENT
15110static void *
15111invalid_block_rule(Parser *p)
15112{
15113 D(p->level++);
15114 if (p->error_indicator) {
15115 D(p->level--);
15116 return NULL;
15117 }
15118 void * _res = NULL;
15119 int _mark = p->mark;
15120 { // NEWLINE !INDENT
15121 if (p->error_indicator) {
15122 D(p->level--);
15123 return NULL;
15124 }
15125 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
15126 Token * newline_var;
15127 if (
15128 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
15129 &&
15130 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
15131 )
15132 {
15133 D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
15134 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
15135 if (_res == NULL && PyErr_Occurred()) {
15136 p->error_indicator = 1;
15137 D(p->level--);
15138 return NULL;
15139 }
15140 goto done;
15141 }
15142 p->mark = _mark;
15143 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
15144 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
15145 }
15146 _res = NULL;
15147 done:
15148 D(p->level--);
15149 return _res;
15150}
15151
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020015152// Left-recursive
15153// invalid_primary: primary '{'
15154static void *
15155invalid_primary_rule(Parser *p)
15156{
15157 D(p->level++);
15158 if (p->error_indicator) {
15159 D(p->level--);
15160 return NULL;
15161 }
15162 void * _res = NULL;
15163 int _mark = p->mark;
15164 { // primary '{'
15165 if (p->error_indicator) {
15166 D(p->level--);
15167 return NULL;
15168 }
15169 D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
15170 Token * a;
15171 expr_ty primary_var;
15172 if (
15173 (primary_var = primary_rule(p)) // primary
15174 &&
15175 (a = _PyPegen_expect_token(p, 25)) // token='{'
15176 )
15177 {
15178 D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
15179 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
15180 if (_res == NULL && PyErr_Occurred()) {
15181 p->error_indicator = 1;
15182 D(p->level--);
15183 return NULL;
15184 }
15185 goto done;
15186 }
15187 p->mark = _mark;
15188 D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
15189 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
15190 }
15191 _res = NULL;
15192 done:
15193 D(p->level--);
15194 return _res;
15195}
15196
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015197// invalid_comprehension: ('[' | '(' | '{') starred_expression for_if_clauses
15198static void *
15199invalid_comprehension_rule(Parser *p)
15200{
15201 D(p->level++);
15202 if (p->error_indicator) {
15203 D(p->level--);
15204 return NULL;
15205 }
15206 void * _res = NULL;
15207 int _mark = p->mark;
15208 { // ('[' | '(' | '{') starred_expression for_if_clauses
15209 if (p->error_indicator) {
15210 D(p->level--);
15211 return NULL;
15212 }
15213 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 +020015214 void *_tmp_131_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015215 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015216 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015217 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015218 (_tmp_131_var = _tmp_131_rule(p)) // '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015219 &&
15220 (a = starred_expression_rule(p)) // starred_expression
15221 &&
15222 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
15223 )
15224 {
15225 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
15226 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
15227 if (_res == NULL && PyErr_Occurred()) {
15228 p->error_indicator = 1;
15229 D(p->level--);
15230 return NULL;
15231 }
15232 goto done;
15233 }
15234 p->mark = _mark;
15235 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
15236 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
15237 }
15238 _res = NULL;
15239 done:
15240 D(p->level--);
15241 return _res;
15242}
15243
15244// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
15245static void *
15246invalid_dict_comprehension_rule(Parser *p)
15247{
15248 D(p->level++);
15249 if (p->error_indicator) {
15250 D(p->level--);
15251 return NULL;
15252 }
15253 void * _res = NULL;
15254 int _mark = p->mark;
15255 { // '{' '**' bitwise_or for_if_clauses '}'
15256 if (p->error_indicator) {
15257 D(p->level--);
15258 return NULL;
15259 }
15260 D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
15261 Token * _literal;
15262 Token * _literal_1;
15263 Token * a;
15264 expr_ty bitwise_or_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015265 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015266 if (
15267 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15268 &&
15269 (a = _PyPegen_expect_token(p, 35)) // token='**'
15270 &&
15271 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
15272 &&
15273 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
15274 &&
15275 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15276 )
15277 {
15278 D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
15279 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
15280 if (_res == NULL && PyErr_Occurred()) {
15281 p->error_indicator = 1;
15282 D(p->level--);
15283 return NULL;
15284 }
15285 goto done;
15286 }
15287 p->mark = _mark;
15288 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
15289 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
15290 }
15291 _res = NULL;
15292 done:
15293 D(p->level--);
15294 return _res;
15295}
15296
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015297// invalid_parameters: param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015298static void *
15299invalid_parameters_rule(Parser *p)
15300{
15301 D(p->level++);
15302 if (p->error_indicator) {
15303 D(p->level--);
15304 return NULL;
15305 }
15306 void * _res = NULL;
15307 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015308 { // param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015309 if (p->error_indicator) {
15310 D(p->level--);
15311 return NULL;
15312 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015313 D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015314 asdl_seq * _loop0_132_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015315 void *invalid_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015316 arg_ty param_no_default_var;
15317 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015318 (_loop0_132_var = _loop0_132_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015319 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015320 (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015321 &&
15322 (param_no_default_var = param_no_default_rule(p)) // param_no_default
15323 )
15324 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015325 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 +010015326 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
15327 if (_res == NULL && PyErr_Occurred()) {
15328 p->error_indicator = 1;
15329 D(p->level--);
15330 return NULL;
15331 }
15332 goto done;
15333 }
15334 p->mark = _mark;
15335 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
15337 }
15338 _res = NULL;
15339 done:
15340 D(p->level--);
15341 return _res;
15342}
15343
15344// invalid_parameters_helper: slash_with_default | param_with_default+
15345static void *
15346invalid_parameters_helper_rule(Parser *p)
15347{
15348 D(p->level++);
15349 if (p->error_indicator) {
15350 D(p->level--);
15351 return NULL;
15352 }
15353 void * _res = NULL;
15354 int _mark = p->mark;
15355 { // slash_with_default
15356 if (p->error_indicator) {
15357 D(p->level--);
15358 return NULL;
15359 }
15360 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
15361 SlashWithDefault* a;
15362 if (
15363 (a = slash_with_default_rule(p)) // slash_with_default
15364 )
15365 {
15366 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
15367 _res = _PyPegen_singleton_seq ( p , a );
15368 if (_res == NULL && PyErr_Occurred()) {
15369 p->error_indicator = 1;
15370 D(p->level--);
15371 return NULL;
15372 }
15373 goto done;
15374 }
15375 p->mark = _mark;
15376 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
15377 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
15378 }
15379 { // param_with_default+
15380 if (p->error_indicator) {
15381 D(p->level--);
15382 return NULL;
15383 }
15384 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
15385 asdl_seq * _loop1_133_var;
15386 if (
15387 (_loop1_133_var = _loop1_133_rule(p)) // param_with_default+
15388 )
15389 {
15390 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
15391 _res = _loop1_133_var;
15392 goto done;
15393 }
15394 p->mark = _mark;
15395 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
15396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015397 }
15398 _res = NULL;
15399 done:
15400 D(p->level--);
15401 return _res;
15402}
15403
15404// invalid_lambda_parameters:
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015405// | lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015406static void *
15407invalid_lambda_parameters_rule(Parser *p)
15408{
15409 D(p->level++);
15410 if (p->error_indicator) {
15411 D(p->level--);
15412 return NULL;
15413 }
15414 void * _res = NULL;
15415 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015416 { // lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015417 if (p->error_indicator) {
15418 D(p->level--);
15419 return NULL;
15420 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015421 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"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015422 asdl_seq * _loop0_134_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015423 void *invalid_lambda_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015424 arg_ty lambda_param_no_default_var;
15425 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015426 (_loop0_134_var = _loop0_134_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015427 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015428 (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015429 &&
15430 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
15431 )
15432 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015433 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 +010015434 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
15435 if (_res == NULL && PyErr_Occurred()) {
15436 p->error_indicator = 1;
15437 D(p->level--);
15438 return NULL;
15439 }
15440 goto done;
15441 }
15442 p->mark = _mark;
15443 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020015444 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
15445 }
15446 _res = NULL;
15447 done:
15448 D(p->level--);
15449 return _res;
15450}
15451
15452// invalid_lambda_parameters_helper:
15453// | lambda_slash_with_default
15454// | lambda_param_with_default+
15455static void *
15456invalid_lambda_parameters_helper_rule(Parser *p)
15457{
15458 D(p->level++);
15459 if (p->error_indicator) {
15460 D(p->level--);
15461 return NULL;
15462 }
15463 void * _res = NULL;
15464 int _mark = p->mark;
15465 { // lambda_slash_with_default
15466 if (p->error_indicator) {
15467 D(p->level--);
15468 return NULL;
15469 }
15470 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
15471 SlashWithDefault* a;
15472 if (
15473 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
15474 )
15475 {
15476 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
15477 _res = _PyPegen_singleton_seq ( p , a );
15478 if (_res == NULL && PyErr_Occurred()) {
15479 p->error_indicator = 1;
15480 D(p->level--);
15481 return NULL;
15482 }
15483 goto done;
15484 }
15485 p->mark = _mark;
15486 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
15487 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
15488 }
15489 { // lambda_param_with_default+
15490 if (p->error_indicator) {
15491 D(p->level--);
15492 return NULL;
15493 }
15494 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
15495 asdl_seq * _loop1_135_var;
15496 if (
15497 (_loop1_135_var = _loop1_135_rule(p)) // lambda_param_with_default+
15498 )
15499 {
15500 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
15501 _res = _loop1_135_var;
15502 goto done;
15503 }
15504 p->mark = _mark;
15505 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
15506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015507 }
15508 _res = NULL;
15509 done:
15510 D(p->level--);
15511 return _res;
15512}
15513
15514// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
15515static void *
15516invalid_star_etc_rule(Parser *p)
15517{
15518 D(p->level++);
15519 if (p->error_indicator) {
15520 D(p->level--);
15521 return NULL;
15522 }
15523 void * _res = NULL;
15524 int _mark = p->mark;
15525 { // '*' (')' | ',' (')' | '**'))
15526 if (p->error_indicator) {
15527 D(p->level--);
15528 return NULL;
15529 }
15530 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
15531 Token * _literal;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015532 void *_tmp_136_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015533 if (
15534 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15535 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015536 (_tmp_136_var = _tmp_136_rule(p)) // ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015537 )
15538 {
15539 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
15540 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15541 if (_res == NULL && PyErr_Occurred()) {
15542 p->error_indicator = 1;
15543 D(p->level--);
15544 return NULL;
15545 }
15546 goto done;
15547 }
15548 p->mark = _mark;
15549 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15550 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
15551 }
15552 { // '*' ',' TYPE_COMMENT
15553 if (p->error_indicator) {
15554 D(p->level--);
15555 return NULL;
15556 }
15557 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
15558 Token * _literal;
15559 Token * _literal_1;
15560 Token * type_comment_var;
15561 if (
15562 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15563 &&
15564 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
15565 &&
15566 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
15567 )
15568 {
15569 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
15570 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
15571 if (_res == NULL && PyErr_Occurred()) {
15572 p->error_indicator = 1;
15573 D(p->level--);
15574 return NULL;
15575 }
15576 goto done;
15577 }
15578 p->mark = _mark;
15579 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
15581 }
15582 _res = NULL;
15583 done:
15584 D(p->level--);
15585 return _res;
15586}
15587
15588// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
15589static void *
15590invalid_lambda_star_etc_rule(Parser *p)
15591{
15592 D(p->level++);
15593 if (p->error_indicator) {
15594 D(p->level--);
15595 return NULL;
15596 }
15597 void * _res = NULL;
15598 int _mark = p->mark;
15599 { // '*' (':' | ',' (':' | '**'))
15600 if (p->error_indicator) {
15601 D(p->level--);
15602 return NULL;
15603 }
15604 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
15605 Token * _literal;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015606 void *_tmp_137_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015607 if (
15608 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15609 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015610 (_tmp_137_var = _tmp_137_rule(p)) // ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015611 )
15612 {
15613 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
15614 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15615 if (_res == NULL && PyErr_Occurred()) {
15616 p->error_indicator = 1;
15617 D(p->level--);
15618 return NULL;
15619 }
15620 goto done;
15621 }
15622 p->mark = _mark;
15623 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
15625 }
15626 _res = NULL;
15627 done:
15628 D(p->level--);
15629 return _res;
15630}
15631
15632// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
15633static void *
15634invalid_double_type_comments_rule(Parser *p)
15635{
15636 D(p->level++);
15637 if (p->error_indicator) {
15638 D(p->level--);
15639 return NULL;
15640 }
15641 void * _res = NULL;
15642 int _mark = p->mark;
15643 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
15644 if (p->error_indicator) {
15645 D(p->level--);
15646 return NULL;
15647 }
15648 D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
15649 Token * indent_var;
15650 Token * newline_var;
15651 Token * newline_var_1;
15652 Token * type_comment_var;
15653 Token * type_comment_var_1;
15654 if (
15655 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
15656 &&
15657 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
15658 &&
15659 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
15660 &&
15661 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
15662 &&
15663 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
15664 )
15665 {
15666 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"));
15667 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
15668 if (_res == NULL && PyErr_Occurred()) {
15669 p->error_indicator = 1;
15670 D(p->level--);
15671 return NULL;
15672 }
15673 goto done;
15674 }
15675 p->mark = _mark;
15676 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
15677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
15678 }
15679 _res = NULL;
15680 done:
15681 D(p->level--);
15682 return _res;
15683}
15684
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015685// invalid_with_item: expression 'as' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015686static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015687invalid_with_item_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015688{
15689 D(p->level++);
15690 if (p->error_indicator) {
15691 D(p->level--);
15692 return NULL;
15693 }
15694 void * _res = NULL;
15695 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015696 { // expression 'as' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015697 if (p->error_indicator) {
15698 D(p->level--);
15699 return NULL;
15700 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015701 D(fprintf(stderr, "%*c> invalid_with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression 'as' expression"));
15702 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015703 expr_ty a;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015704 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015705 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015706 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015707 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015708 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
15709 &&
15710 (a = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015711 )
15712 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015713 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 +030015714 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015715 if (_res == NULL && PyErr_Occurred()) {
15716 p->error_indicator = 1;
15717 D(p->level--);
15718 return NULL;
15719 }
15720 goto done;
15721 }
15722 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015723 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
15724 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression"));
15725 }
15726 _res = NULL;
15727 done:
15728 D(p->level--);
15729 return _res;
15730}
15731
15732// invalid_for_target: ASYNC? 'for' star_expressions
15733static void *
15734invalid_for_target_rule(Parser *p)
15735{
15736 D(p->level++);
15737 if (p->error_indicator) {
15738 D(p->level--);
15739 return NULL;
15740 }
15741 void * _res = NULL;
15742 int _mark = p->mark;
15743 { // ASYNC? 'for' star_expressions
15744 if (p->error_indicator) {
15745 D(p->level--);
15746 return NULL;
15747 }
15748 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
15749 Token * _keyword;
15750 void *_opt_var;
15751 UNUSED(_opt_var); // Silence compiler warnings
15752 expr_ty a;
15753 if (
15754 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
15755 &&
15756 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15757 &&
15758 (a = star_expressions_rule(p)) // star_expressions
15759 )
15760 {
15761 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 +030015762 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015763 if (_res == NULL && PyErr_Occurred()) {
15764 p->error_indicator = 1;
15765 D(p->level--);
15766 return NULL;
15767 }
15768 goto done;
15769 }
15770 p->mark = _mark;
15771 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
15772 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
15773 }
15774 _res = NULL;
15775 done:
15776 D(p->level--);
15777 return _res;
15778}
15779
15780// invalid_group: '(' starred_expression ')'
15781static void *
15782invalid_group_rule(Parser *p)
15783{
15784 D(p->level++);
15785 if (p->error_indicator) {
15786 D(p->level--);
15787 return NULL;
15788 }
15789 void * _res = NULL;
15790 int _mark = p->mark;
15791 { // '(' starred_expression ')'
15792 if (p->error_indicator) {
15793 D(p->level--);
15794 return NULL;
15795 }
15796 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
15797 Token * _literal;
15798 Token * _literal_1;
15799 expr_ty a;
15800 if (
15801 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15802 &&
15803 (a = starred_expression_rule(p)) // starred_expression
15804 &&
15805 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15806 )
15807 {
15808 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
15809 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "can't use starred expression here" );
15810 if (_res == NULL && PyErr_Occurred()) {
15811 p->error_indicator = 1;
15812 D(p->level--);
15813 return NULL;
15814 }
15815 goto done;
15816 }
15817 p->mark = _mark;
15818 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
15819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015820 }
15821 _res = NULL;
15822 done:
15823 D(p->level--);
15824 return _res;
15825}
15826
15827// invalid_import_from_targets: import_from_as_names ','
15828static void *
15829invalid_import_from_targets_rule(Parser *p)
15830{
15831 D(p->level++);
15832 if (p->error_indicator) {
15833 D(p->level--);
15834 return NULL;
15835 }
15836 void * _res = NULL;
15837 int _mark = p->mark;
15838 { // import_from_as_names ','
15839 if (p->error_indicator) {
15840 D(p->level--);
15841 return NULL;
15842 }
15843 D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
15844 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015845 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015846 if (
15847 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
15848 &&
15849 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15850 )
15851 {
15852 D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
15853 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
15854 if (_res == NULL && PyErr_Occurred()) {
15855 p->error_indicator = 1;
15856 D(p->level--);
15857 return NULL;
15858 }
15859 goto done;
15860 }
15861 p->mark = _mark;
15862 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
15863 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
15864 }
15865 _res = NULL;
15866 done:
15867 D(p->level--);
15868 return _res;
15869}
15870
15871// _loop0_1: NEWLINE
15872static asdl_seq *
15873_loop0_1_rule(Parser *p)
15874{
15875 D(p->level++);
15876 if (p->error_indicator) {
15877 D(p->level--);
15878 return NULL;
15879 }
15880 void *_res = NULL;
15881 int _mark = p->mark;
15882 int _start_mark = p->mark;
15883 void **_children = PyMem_Malloc(sizeof(void *));
15884 if (!_children) {
15885 p->error_indicator = 1;
15886 PyErr_NoMemory();
15887 D(p->level--);
15888 return NULL;
15889 }
15890 ssize_t _children_capacity = 1;
15891 ssize_t _n = 0;
15892 { // NEWLINE
15893 if (p->error_indicator) {
15894 D(p->level--);
15895 return NULL;
15896 }
15897 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
15898 Token * newline_var;
15899 while (
15900 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
15901 )
15902 {
15903 _res = newline_var;
15904 if (_n == _children_capacity) {
15905 _children_capacity *= 2;
15906 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15907 if (!_new_children) {
15908 p->error_indicator = 1;
15909 PyErr_NoMemory();
15910 D(p->level--);
15911 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000015912 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015913 _children = _new_children;
15914 }
15915 _children[_n++] = _res;
15916 _mark = p->mark;
15917 }
15918 p->mark = _mark;
15919 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
15920 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
15921 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015922 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015923 if (!_seq) {
15924 PyMem_Free(_children);
15925 p->error_indicator = 1;
15926 PyErr_NoMemory();
15927 D(p->level--);
15928 return NULL;
15929 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015930 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015931 PyMem_Free(_children);
15932 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
15933 D(p->level--);
15934 return _seq;
15935}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000015936
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015937// _loop0_2: NEWLINE
15938static asdl_seq *
15939_loop0_2_rule(Parser *p)
15940{
15941 D(p->level++);
15942 if (p->error_indicator) {
15943 D(p->level--);
15944 return NULL;
15945 }
15946 void *_res = NULL;
15947 int _mark = p->mark;
15948 int _start_mark = p->mark;
15949 void **_children = PyMem_Malloc(sizeof(void *));
15950 if (!_children) {
15951 p->error_indicator = 1;
15952 PyErr_NoMemory();
15953 D(p->level--);
15954 return NULL;
15955 }
15956 ssize_t _children_capacity = 1;
15957 ssize_t _n = 0;
15958 { // NEWLINE
15959 if (p->error_indicator) {
15960 D(p->level--);
15961 return NULL;
15962 }
15963 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
15964 Token * newline_var;
15965 while (
15966 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
15967 )
15968 {
15969 _res = newline_var;
15970 if (_n == _children_capacity) {
15971 _children_capacity *= 2;
15972 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15973 if (!_new_children) {
15974 p->error_indicator = 1;
15975 PyErr_NoMemory();
15976 D(p->level--);
15977 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000015978 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015979 _children = _new_children;
15980 }
15981 _children[_n++] = _res;
15982 _mark = p->mark;
15983 }
15984 p->mark = _mark;
15985 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
15986 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
15987 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015988 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015989 if (!_seq) {
15990 PyMem_Free(_children);
15991 p->error_indicator = 1;
15992 PyErr_NoMemory();
15993 D(p->level--);
15994 return NULL;
15995 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015996 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015997 PyMem_Free(_children);
15998 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
15999 D(p->level--);
16000 return _seq;
16001}
16002
16003// _loop0_4: ',' expression
16004static asdl_seq *
16005_loop0_4_rule(Parser *p)
16006{
16007 D(p->level++);
16008 if (p->error_indicator) {
16009 D(p->level--);
16010 return NULL;
16011 }
16012 void *_res = NULL;
16013 int _mark = p->mark;
16014 int _start_mark = p->mark;
16015 void **_children = PyMem_Malloc(sizeof(void *));
16016 if (!_children) {
16017 p->error_indicator = 1;
16018 PyErr_NoMemory();
16019 D(p->level--);
16020 return NULL;
16021 }
16022 ssize_t _children_capacity = 1;
16023 ssize_t _n = 0;
16024 { // ',' expression
16025 if (p->error_indicator) {
16026 D(p->level--);
16027 return NULL;
16028 }
16029 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
16030 Token * _literal;
16031 expr_ty elem;
16032 while (
16033 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16034 &&
16035 (elem = expression_rule(p)) // expression
16036 )
16037 {
16038 _res = elem;
16039 if (_res == NULL && PyErr_Occurred()) {
16040 p->error_indicator = 1;
16041 PyMem_Free(_children);
16042 D(p->level--);
16043 return NULL;
16044 }
16045 if (_n == _children_capacity) {
16046 _children_capacity *= 2;
16047 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16048 if (!_new_children) {
16049 p->error_indicator = 1;
16050 PyErr_NoMemory();
16051 D(p->level--);
16052 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016053 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016054 _children = _new_children;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016055 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016056 _children[_n++] = _res;
16057 _mark = p->mark;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016058 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016059 p->mark = _mark;
16060 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
16061 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016062 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016063 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016064 if (!_seq) {
16065 PyMem_Free(_children);
16066 p->error_indicator = 1;
16067 PyErr_NoMemory();
16068 D(p->level--);
16069 return NULL;
16070 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016071 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016072 PyMem_Free(_children);
16073 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
16074 D(p->level--);
16075 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016076}
16077
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016078// _gather_3: expression _loop0_4
16079static asdl_seq *
16080_gather_3_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016081{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016082 D(p->level++);
16083 if (p->error_indicator) {
16084 D(p->level--);
16085 return NULL;
16086 }
16087 asdl_seq * _res = NULL;
16088 int _mark = p->mark;
16089 { // expression _loop0_4
16090 if (p->error_indicator) {
16091 D(p->level--);
16092 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016093 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016094 D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
16095 expr_ty elem;
16096 asdl_seq * seq;
16097 if (
16098 (elem = expression_rule(p)) // expression
16099 &&
16100 (seq = _loop0_4_rule(p)) // _loop0_4
16101 )
16102 {
16103 D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
16104 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16105 goto done;
16106 }
16107 p->mark = _mark;
16108 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
16109 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016110 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016111 _res = NULL;
16112 done:
16113 D(p->level--);
16114 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016115}
16116
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016117// _loop0_6: ',' expression
16118static asdl_seq *
16119_loop0_6_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016120{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016121 D(p->level++);
16122 if (p->error_indicator) {
16123 D(p->level--);
16124 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016125 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016126 void *_res = NULL;
16127 int _mark = p->mark;
16128 int _start_mark = p->mark;
16129 void **_children = PyMem_Malloc(sizeof(void *));
16130 if (!_children) {
16131 p->error_indicator = 1;
16132 PyErr_NoMemory();
16133 D(p->level--);
16134 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016135 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016136 ssize_t _children_capacity = 1;
16137 ssize_t _n = 0;
16138 { // ',' expression
16139 if (p->error_indicator) {
16140 D(p->level--);
16141 return NULL;
16142 }
16143 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
16144 Token * _literal;
16145 expr_ty elem;
16146 while (
16147 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16148 &&
16149 (elem = expression_rule(p)) // expression
16150 )
16151 {
16152 _res = elem;
16153 if (_res == NULL && PyErr_Occurred()) {
16154 p->error_indicator = 1;
16155 PyMem_Free(_children);
16156 D(p->level--);
16157 return NULL;
16158 }
16159 if (_n == _children_capacity) {
16160 _children_capacity *= 2;
16161 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16162 if (!_new_children) {
16163 p->error_indicator = 1;
16164 PyErr_NoMemory();
16165 D(p->level--);
16166 return NULL;
16167 }
16168 _children = _new_children;
16169 }
16170 _children[_n++] = _res;
16171 _mark = p->mark;
16172 }
16173 p->mark = _mark;
16174 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
16175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
16176 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016177 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016178 if (!_seq) {
16179 PyMem_Free(_children);
16180 p->error_indicator = 1;
16181 PyErr_NoMemory();
16182 D(p->level--);
16183 return NULL;
16184 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016185 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016186 PyMem_Free(_children);
16187 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
16188 D(p->level--);
16189 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016190}
16191
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016192// _gather_5: expression _loop0_6
16193static asdl_seq *
16194_gather_5_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016195{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016196 D(p->level++);
16197 if (p->error_indicator) {
16198 D(p->level--);
16199 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016200 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016201 asdl_seq * _res = NULL;
16202 int _mark = p->mark;
16203 { // expression _loop0_6
16204 if (p->error_indicator) {
16205 D(p->level--);
16206 return NULL;
16207 }
16208 D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
16209 expr_ty elem;
16210 asdl_seq * seq;
16211 if (
16212 (elem = expression_rule(p)) // expression
16213 &&
16214 (seq = _loop0_6_rule(p)) // _loop0_6
16215 )
16216 {
16217 D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
16218 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16219 goto done;
16220 }
16221 p->mark = _mark;
16222 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
16223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
16224 }
16225 _res = NULL;
16226 done:
16227 D(p->level--);
16228 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016229}
16230
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016231// _loop0_8: ',' expression
16232static asdl_seq *
16233_loop0_8_rule(Parser *p)
16234{
16235 D(p->level++);
16236 if (p->error_indicator) {
16237 D(p->level--);
16238 return NULL;
16239 }
16240 void *_res = NULL;
16241 int _mark = p->mark;
16242 int _start_mark = p->mark;
16243 void **_children = PyMem_Malloc(sizeof(void *));
16244 if (!_children) {
16245 p->error_indicator = 1;
16246 PyErr_NoMemory();
16247 D(p->level--);
16248 return NULL;
16249 }
16250 ssize_t _children_capacity = 1;
16251 ssize_t _n = 0;
16252 { // ',' expression
16253 if (p->error_indicator) {
16254 D(p->level--);
16255 return NULL;
16256 }
16257 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
16258 Token * _literal;
16259 expr_ty elem;
16260 while (
16261 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16262 &&
16263 (elem = expression_rule(p)) // expression
16264 )
16265 {
16266 _res = elem;
16267 if (_res == NULL && PyErr_Occurred()) {
16268 p->error_indicator = 1;
16269 PyMem_Free(_children);
16270 D(p->level--);
16271 return NULL;
16272 }
16273 if (_n == _children_capacity) {
16274 _children_capacity *= 2;
16275 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16276 if (!_new_children) {
16277 p->error_indicator = 1;
16278 PyErr_NoMemory();
16279 D(p->level--);
16280 return NULL;
16281 }
16282 _children = _new_children;
16283 }
16284 _children[_n++] = _res;
16285 _mark = p->mark;
16286 }
16287 p->mark = _mark;
16288 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
16289 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
16290 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016291 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016292 if (!_seq) {
16293 PyMem_Free(_children);
16294 p->error_indicator = 1;
16295 PyErr_NoMemory();
16296 D(p->level--);
16297 return NULL;
16298 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016299 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016300 PyMem_Free(_children);
16301 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
16302 D(p->level--);
16303 return _seq;
16304}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016305
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016306// _gather_7: expression _loop0_8
16307static asdl_seq *
16308_gather_7_rule(Parser *p)
16309{
16310 D(p->level++);
16311 if (p->error_indicator) {
16312 D(p->level--);
16313 return NULL;
16314 }
16315 asdl_seq * _res = NULL;
16316 int _mark = p->mark;
16317 { // expression _loop0_8
16318 if (p->error_indicator) {
16319 D(p->level--);
16320 return NULL;
16321 }
16322 D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
16323 expr_ty elem;
16324 asdl_seq * seq;
16325 if (
16326 (elem = expression_rule(p)) // expression
16327 &&
16328 (seq = _loop0_8_rule(p)) // _loop0_8
16329 )
16330 {
16331 D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
16332 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16333 goto done;
16334 }
16335 p->mark = _mark;
16336 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
16337 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
16338 }
16339 _res = NULL;
16340 done:
16341 D(p->level--);
16342 return _res;
16343}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016344
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016345// _loop0_10: ',' expression
16346static asdl_seq *
16347_loop0_10_rule(Parser *p)
16348{
16349 D(p->level++);
16350 if (p->error_indicator) {
16351 D(p->level--);
16352 return NULL;
16353 }
16354 void *_res = NULL;
16355 int _mark = p->mark;
16356 int _start_mark = p->mark;
16357 void **_children = PyMem_Malloc(sizeof(void *));
16358 if (!_children) {
16359 p->error_indicator = 1;
16360 PyErr_NoMemory();
16361 D(p->level--);
16362 return NULL;
16363 }
16364 ssize_t _children_capacity = 1;
16365 ssize_t _n = 0;
16366 { // ',' expression
16367 if (p->error_indicator) {
16368 D(p->level--);
16369 return NULL;
16370 }
16371 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
16372 Token * _literal;
16373 expr_ty elem;
16374 while (
16375 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16376 &&
16377 (elem = expression_rule(p)) // expression
16378 )
16379 {
16380 _res = elem;
16381 if (_res == NULL && PyErr_Occurred()) {
16382 p->error_indicator = 1;
16383 PyMem_Free(_children);
16384 D(p->level--);
16385 return NULL;
16386 }
16387 if (_n == _children_capacity) {
16388 _children_capacity *= 2;
16389 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16390 if (!_new_children) {
16391 p->error_indicator = 1;
16392 PyErr_NoMemory();
16393 D(p->level--);
16394 return NULL;
16395 }
16396 _children = _new_children;
16397 }
16398 _children[_n++] = _res;
16399 _mark = p->mark;
16400 }
16401 p->mark = _mark;
16402 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
16403 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
16404 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016405 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016406 if (!_seq) {
16407 PyMem_Free(_children);
16408 p->error_indicator = 1;
16409 PyErr_NoMemory();
16410 D(p->level--);
16411 return NULL;
16412 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016413 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016414 PyMem_Free(_children);
16415 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
16416 D(p->level--);
16417 return _seq;
16418}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016419
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016420// _gather_9: expression _loop0_10
16421static asdl_seq *
16422_gather_9_rule(Parser *p)
16423{
16424 D(p->level++);
16425 if (p->error_indicator) {
16426 D(p->level--);
16427 return NULL;
16428 }
16429 asdl_seq * _res = NULL;
16430 int _mark = p->mark;
16431 { // expression _loop0_10
16432 if (p->error_indicator) {
16433 D(p->level--);
16434 return NULL;
16435 }
16436 D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
16437 expr_ty elem;
16438 asdl_seq * seq;
16439 if (
16440 (elem = expression_rule(p)) // expression
16441 &&
16442 (seq = _loop0_10_rule(p)) // _loop0_10
16443 )
16444 {
16445 D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
16446 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16447 goto done;
16448 }
16449 p->mark = _mark;
16450 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
16451 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
16452 }
16453 _res = NULL;
16454 done:
16455 D(p->level--);
16456 return _res;
16457}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016458
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016459// _loop1_11: statement
16460static asdl_seq *
16461_loop1_11_rule(Parser *p)
16462{
16463 D(p->level++);
16464 if (p->error_indicator) {
16465 D(p->level--);
16466 return NULL;
16467 }
16468 void *_res = NULL;
16469 int _mark = p->mark;
16470 int _start_mark = p->mark;
16471 void **_children = PyMem_Malloc(sizeof(void *));
16472 if (!_children) {
16473 p->error_indicator = 1;
16474 PyErr_NoMemory();
16475 D(p->level--);
16476 return NULL;
16477 }
16478 ssize_t _children_capacity = 1;
16479 ssize_t _n = 0;
16480 { // statement
16481 if (p->error_indicator) {
16482 D(p->level--);
16483 return NULL;
16484 }
16485 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010016486 asdl_stmt_seq* statement_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016487 while (
16488 (statement_var = statement_rule(p)) // statement
16489 )
16490 {
16491 _res = statement_var;
16492 if (_n == _children_capacity) {
16493 _children_capacity *= 2;
16494 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16495 if (!_new_children) {
16496 p->error_indicator = 1;
16497 PyErr_NoMemory();
16498 D(p->level--);
16499 return NULL;
16500 }
16501 _children = _new_children;
16502 }
16503 _children[_n++] = _res;
16504 _mark = p->mark;
16505 }
16506 p->mark = _mark;
16507 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
16508 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
16509 }
16510 if (_n == 0 || p->error_indicator) {
16511 PyMem_Free(_children);
16512 D(p->level--);
16513 return NULL;
16514 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016515 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016516 if (!_seq) {
16517 PyMem_Free(_children);
16518 p->error_indicator = 1;
16519 PyErr_NoMemory();
16520 D(p->level--);
16521 return NULL;
16522 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016523 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016524 PyMem_Free(_children);
16525 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
16526 D(p->level--);
16527 return _seq;
16528}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016529
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016530// _loop0_13: ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016531static asdl_seq *
16532_loop0_13_rule(Parser *p)
16533{
16534 D(p->level++);
16535 if (p->error_indicator) {
16536 D(p->level--);
16537 return NULL;
16538 }
16539 void *_res = NULL;
16540 int _mark = p->mark;
16541 int _start_mark = p->mark;
16542 void **_children = PyMem_Malloc(sizeof(void *));
16543 if (!_children) {
16544 p->error_indicator = 1;
16545 PyErr_NoMemory();
16546 D(p->level--);
16547 return NULL;
16548 }
16549 ssize_t _children_capacity = 1;
16550 ssize_t _n = 0;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016551 { // ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016552 if (p->error_indicator) {
16553 D(p->level--);
16554 return NULL;
16555 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016556 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016557 Token * _literal;
16558 stmt_ty elem;
16559 while (
16560 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
16561 &&
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016562 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016563 )
16564 {
16565 _res = elem;
16566 if (_res == NULL && PyErr_Occurred()) {
16567 p->error_indicator = 1;
16568 PyMem_Free(_children);
16569 D(p->level--);
16570 return NULL;
16571 }
16572 if (_n == _children_capacity) {
16573 _children_capacity *= 2;
16574 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16575 if (!_new_children) {
16576 p->error_indicator = 1;
16577 PyErr_NoMemory();
16578 D(p->level--);
16579 return NULL;
16580 }
16581 _children = _new_children;
16582 }
16583 _children[_n++] = _res;
16584 _mark = p->mark;
16585 }
16586 p->mark = _mark;
16587 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016588 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016589 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016590 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016591 if (!_seq) {
16592 PyMem_Free(_children);
16593 p->error_indicator = 1;
16594 PyErr_NoMemory();
16595 D(p->level--);
16596 return NULL;
16597 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016598 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016599 PyMem_Free(_children);
16600 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
16601 D(p->level--);
16602 return _seq;
16603}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016604
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016605// _gather_12: simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016606static asdl_seq *
16607_gather_12_rule(Parser *p)
16608{
16609 D(p->level++);
16610 if (p->error_indicator) {
16611 D(p->level--);
16612 return NULL;
16613 }
16614 asdl_seq * _res = NULL;
16615 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016616 { // simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016617 if (p->error_indicator) {
16618 D(p->level--);
16619 return NULL;
16620 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016621 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 +010016622 stmt_ty elem;
16623 asdl_seq * seq;
16624 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016625 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016626 &&
16627 (seq = _loop0_13_rule(p)) // _loop0_13
16628 )
16629 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016630 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 +010016631 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16632 goto done;
16633 }
16634 p->mark = _mark;
16635 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016636 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016637 }
16638 _res = NULL;
16639 done:
16640 D(p->level--);
16641 return _res;
16642}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016643
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016644// _tmp_14: 'import' | 'from'
16645static void *
16646_tmp_14_rule(Parser *p)
16647{
16648 D(p->level++);
16649 if (p->error_indicator) {
16650 D(p->level--);
16651 return NULL;
16652 }
16653 void * _res = NULL;
16654 int _mark = p->mark;
16655 { // 'import'
16656 if (p->error_indicator) {
16657 D(p->level--);
16658 return NULL;
16659 }
16660 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
16661 Token * _keyword;
16662 if (
16663 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
16664 )
16665 {
16666 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
16667 _res = _keyword;
16668 goto done;
16669 }
16670 p->mark = _mark;
16671 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16672 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
16673 }
16674 { // 'from'
16675 if (p->error_indicator) {
16676 D(p->level--);
16677 return NULL;
16678 }
16679 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
16680 Token * _keyword;
16681 if (
16682 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
16683 )
16684 {
16685 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
16686 _res = _keyword;
16687 goto done;
16688 }
16689 p->mark = _mark;
16690 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16691 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
16692 }
16693 _res = NULL;
16694 done:
16695 D(p->level--);
16696 return _res;
16697}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016698
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016699// _tmp_15: 'def' | '@' | ASYNC
16700static void *
16701_tmp_15_rule(Parser *p)
16702{
16703 D(p->level++);
16704 if (p->error_indicator) {
16705 D(p->level--);
16706 return NULL;
16707 }
16708 void * _res = NULL;
16709 int _mark = p->mark;
16710 { // 'def'
16711 if (p->error_indicator) {
16712 D(p->level--);
16713 return NULL;
16714 }
16715 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
16716 Token * _keyword;
16717 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016718 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016719 )
16720 {
16721 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
16722 _res = _keyword;
16723 goto done;
16724 }
16725 p->mark = _mark;
16726 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16727 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
16728 }
16729 { // '@'
16730 if (p->error_indicator) {
16731 D(p->level--);
16732 return NULL;
16733 }
16734 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
16735 Token * _literal;
16736 if (
16737 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
16738 )
16739 {
16740 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
16741 _res = _literal;
16742 goto done;
16743 }
16744 p->mark = _mark;
16745 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16746 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
16747 }
16748 { // ASYNC
16749 if (p->error_indicator) {
16750 D(p->level--);
16751 return NULL;
16752 }
16753 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
16754 Token * async_var;
16755 if (
16756 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
16757 )
16758 {
16759 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
16760 _res = async_var;
16761 goto done;
16762 }
16763 p->mark = _mark;
16764 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
16766 }
16767 _res = NULL;
16768 done:
16769 D(p->level--);
16770 return _res;
16771}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016772
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016773// _tmp_16: 'class' | '@'
16774static void *
16775_tmp_16_rule(Parser *p)
16776{
16777 D(p->level++);
16778 if (p->error_indicator) {
16779 D(p->level--);
16780 return NULL;
16781 }
16782 void * _res = NULL;
16783 int _mark = p->mark;
16784 { // 'class'
16785 if (p->error_indicator) {
16786 D(p->level--);
16787 return NULL;
16788 }
16789 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
16790 Token * _keyword;
16791 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016792 (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016793 )
16794 {
16795 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
16796 _res = _keyword;
16797 goto done;
16798 }
16799 p->mark = _mark;
16800 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
16801 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
16802 }
16803 { // '@'
16804 if (p->error_indicator) {
16805 D(p->level--);
16806 return NULL;
16807 }
16808 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
16809 Token * _literal;
16810 if (
16811 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
16812 )
16813 {
16814 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
16815 _res = _literal;
16816 goto done;
16817 }
16818 p->mark = _mark;
16819 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
16820 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
16821 }
16822 _res = NULL;
16823 done:
16824 D(p->level--);
16825 return _res;
16826}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016827
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016828// _tmp_17: 'with' | ASYNC
16829static void *
16830_tmp_17_rule(Parser *p)
16831{
16832 D(p->level++);
16833 if (p->error_indicator) {
16834 D(p->level--);
16835 return NULL;
16836 }
16837 void * _res = NULL;
16838 int _mark = p->mark;
16839 { // 'with'
16840 if (p->error_indicator) {
16841 D(p->level--);
16842 return NULL;
16843 }
16844 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
16845 Token * _keyword;
16846 if (
16847 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
16848 )
16849 {
16850 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
16851 _res = _keyword;
16852 goto done;
16853 }
16854 p->mark = _mark;
16855 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
16856 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
16857 }
16858 { // ASYNC
16859 if (p->error_indicator) {
16860 D(p->level--);
16861 return NULL;
16862 }
16863 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
16864 Token * async_var;
16865 if (
16866 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
16867 )
16868 {
16869 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
16870 _res = async_var;
16871 goto done;
16872 }
16873 p->mark = _mark;
16874 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
16875 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
16876 }
16877 _res = NULL;
16878 done:
16879 D(p->level--);
16880 return _res;
16881}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016882
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016883// _tmp_18: 'for' | ASYNC
16884static void *
16885_tmp_18_rule(Parser *p)
16886{
16887 D(p->level++);
16888 if (p->error_indicator) {
16889 D(p->level--);
16890 return NULL;
16891 }
16892 void * _res = NULL;
16893 int _mark = p->mark;
16894 { // 'for'
16895 if (p->error_indicator) {
16896 D(p->level--);
16897 return NULL;
16898 }
16899 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
16900 Token * _keyword;
16901 if (
16902 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
16903 )
16904 {
16905 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
16906 _res = _keyword;
16907 goto done;
16908 }
16909 p->mark = _mark;
16910 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
16911 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
16912 }
16913 { // ASYNC
16914 if (p->error_indicator) {
16915 D(p->level--);
16916 return NULL;
16917 }
16918 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
16919 Token * async_var;
16920 if (
16921 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
16922 )
16923 {
16924 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
16925 _res = async_var;
16926 goto done;
16927 }
16928 p->mark = _mark;
16929 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
16930 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
16931 }
16932 _res = NULL;
16933 done:
16934 D(p->level--);
16935 return _res;
16936}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016937
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016938// _tmp_19: '=' annotated_rhs
16939static void *
16940_tmp_19_rule(Parser *p)
16941{
16942 D(p->level++);
16943 if (p->error_indicator) {
16944 D(p->level--);
16945 return NULL;
16946 }
16947 void * _res = NULL;
16948 int _mark = p->mark;
16949 { // '=' annotated_rhs
16950 if (p->error_indicator) {
16951 D(p->level--);
16952 return NULL;
16953 }
16954 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
16955 Token * _literal;
16956 expr_ty d;
16957 if (
16958 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16959 &&
16960 (d = annotated_rhs_rule(p)) // annotated_rhs
16961 )
16962 {
16963 D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
16964 _res = d;
16965 if (_res == NULL && PyErr_Occurred()) {
16966 p->error_indicator = 1;
16967 D(p->level--);
16968 return NULL;
16969 }
16970 goto done;
16971 }
16972 p->mark = _mark;
16973 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
16974 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
16975 }
16976 _res = NULL;
16977 done:
16978 D(p->level--);
16979 return _res;
16980}
16981
16982// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
16983static void *
16984_tmp_20_rule(Parser *p)
16985{
16986 D(p->level++);
16987 if (p->error_indicator) {
16988 D(p->level--);
16989 return NULL;
16990 }
16991 void * _res = NULL;
16992 int _mark = p->mark;
16993 { // '(' single_target ')'
16994 if (p->error_indicator) {
16995 D(p->level--);
16996 return NULL;
16997 }
16998 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16999 Token * _literal;
17000 Token * _literal_1;
17001 expr_ty b;
17002 if (
17003 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17004 &&
17005 (b = single_target_rule(p)) // single_target
17006 &&
17007 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17008 )
17009 {
17010 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
17011 _res = b;
17012 if (_res == NULL && PyErr_Occurred()) {
17013 p->error_indicator = 1;
17014 D(p->level--);
17015 return NULL;
17016 }
17017 goto done;
17018 }
17019 p->mark = _mark;
17020 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
17021 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
17022 }
17023 { // single_subscript_attribute_target
17024 if (p->error_indicator) {
17025 D(p->level--);
17026 return NULL;
17027 }
17028 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
17029 expr_ty single_subscript_attribute_target_var;
17030 if (
17031 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
17032 )
17033 {
17034 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
17035 _res = single_subscript_attribute_target_var;
17036 goto done;
17037 }
17038 p->mark = _mark;
17039 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
17040 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
17041 }
17042 _res = NULL;
17043 done:
17044 D(p->level--);
17045 return _res;
17046}
17047
17048// _tmp_21: '=' annotated_rhs
17049static void *
17050_tmp_21_rule(Parser *p)
17051{
17052 D(p->level++);
17053 if (p->error_indicator) {
17054 D(p->level--);
17055 return NULL;
17056 }
17057 void * _res = NULL;
17058 int _mark = p->mark;
17059 { // '=' annotated_rhs
17060 if (p->error_indicator) {
17061 D(p->level--);
17062 return NULL;
17063 }
17064 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
17065 Token * _literal;
17066 expr_ty d;
17067 if (
17068 (_literal = _PyPegen_expect_token(p, 22)) // token='='
17069 &&
17070 (d = annotated_rhs_rule(p)) // annotated_rhs
17071 )
17072 {
17073 D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
17074 _res = d;
17075 if (_res == NULL && PyErr_Occurred()) {
17076 p->error_indicator = 1;
17077 D(p->level--);
17078 return NULL;
17079 }
17080 goto done;
17081 }
17082 p->mark = _mark;
17083 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
17084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
17085 }
17086 _res = NULL;
17087 done:
17088 D(p->level--);
17089 return _res;
17090}
17091
17092// _loop1_22: (star_targets '=')
17093static asdl_seq *
17094_loop1_22_rule(Parser *p)
17095{
17096 D(p->level++);
17097 if (p->error_indicator) {
17098 D(p->level--);
17099 return NULL;
17100 }
17101 void *_res = NULL;
17102 int _mark = p->mark;
17103 int _start_mark = p->mark;
17104 void **_children = PyMem_Malloc(sizeof(void *));
17105 if (!_children) {
17106 p->error_indicator = 1;
17107 PyErr_NoMemory();
17108 D(p->level--);
17109 return NULL;
17110 }
17111 ssize_t _children_capacity = 1;
17112 ssize_t _n = 0;
17113 { // (star_targets '=')
17114 if (p->error_indicator) {
17115 D(p->level--);
17116 return NULL;
17117 }
17118 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017119 void *_tmp_138_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017120 while (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017121 (_tmp_138_var = _tmp_138_rule(p)) // star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017122 )
17123 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017124 _res = _tmp_138_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017125 if (_n == _children_capacity) {
17126 _children_capacity *= 2;
17127 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17128 if (!_new_children) {
17129 p->error_indicator = 1;
17130 PyErr_NoMemory();
17131 D(p->level--);
17132 return NULL;
17133 }
17134 _children = _new_children;
17135 }
17136 _children[_n++] = _res;
17137 _mark = p->mark;
17138 }
17139 p->mark = _mark;
17140 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
17141 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
17142 }
17143 if (_n == 0 || p->error_indicator) {
17144 PyMem_Free(_children);
17145 D(p->level--);
17146 return NULL;
17147 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017148 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017149 if (!_seq) {
17150 PyMem_Free(_children);
17151 p->error_indicator = 1;
17152 PyErr_NoMemory();
17153 D(p->level--);
17154 return NULL;
17155 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017156 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017157 PyMem_Free(_children);
17158 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
17159 D(p->level--);
17160 return _seq;
17161}
17162
17163// _tmp_23: yield_expr | star_expressions
17164static void *
17165_tmp_23_rule(Parser *p)
17166{
17167 D(p->level++);
17168 if (p->error_indicator) {
17169 D(p->level--);
17170 return NULL;
17171 }
17172 void * _res = NULL;
17173 int _mark = p->mark;
17174 { // yield_expr
17175 if (p->error_indicator) {
17176 D(p->level--);
17177 return NULL;
17178 }
17179 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
17180 expr_ty yield_expr_var;
17181 if (
17182 (yield_expr_var = yield_expr_rule(p)) // yield_expr
17183 )
17184 {
17185 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
17186 _res = yield_expr_var;
17187 goto done;
17188 }
17189 p->mark = _mark;
17190 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
17191 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
17192 }
17193 { // star_expressions
17194 if (p->error_indicator) {
17195 D(p->level--);
17196 return NULL;
17197 }
17198 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
17199 expr_ty star_expressions_var;
17200 if (
17201 (star_expressions_var = star_expressions_rule(p)) // star_expressions
17202 )
17203 {
17204 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
17205 _res = star_expressions_var;
17206 goto done;
17207 }
17208 p->mark = _mark;
17209 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
17210 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
17211 }
17212 _res = NULL;
17213 done:
17214 D(p->level--);
17215 return _res;
17216}
17217
17218// _tmp_24: yield_expr | star_expressions
17219static void *
17220_tmp_24_rule(Parser *p)
17221{
17222 D(p->level++);
17223 if (p->error_indicator) {
17224 D(p->level--);
17225 return NULL;
17226 }
17227 void * _res = NULL;
17228 int _mark = p->mark;
17229 { // yield_expr
17230 if (p->error_indicator) {
17231 D(p->level--);
17232 return NULL;
17233 }
17234 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
17235 expr_ty yield_expr_var;
17236 if (
17237 (yield_expr_var = yield_expr_rule(p)) // yield_expr
17238 )
17239 {
17240 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
17241 _res = yield_expr_var;
17242 goto done;
17243 }
17244 p->mark = _mark;
17245 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
17246 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
17247 }
17248 { // star_expressions
17249 if (p->error_indicator) {
17250 D(p->level--);
17251 return NULL;
17252 }
17253 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
17254 expr_ty star_expressions_var;
17255 if (
17256 (star_expressions_var = star_expressions_rule(p)) // star_expressions
17257 )
17258 {
17259 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
17260 _res = star_expressions_var;
17261 goto done;
17262 }
17263 p->mark = _mark;
17264 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
17265 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
17266 }
17267 _res = NULL;
17268 done:
17269 D(p->level--);
17270 return _res;
17271}
17272
17273// _loop0_26: ',' NAME
17274static asdl_seq *
17275_loop0_26_rule(Parser *p)
17276{
17277 D(p->level++);
17278 if (p->error_indicator) {
17279 D(p->level--);
17280 return NULL;
17281 }
17282 void *_res = NULL;
17283 int _mark = p->mark;
17284 int _start_mark = p->mark;
17285 void **_children = PyMem_Malloc(sizeof(void *));
17286 if (!_children) {
17287 p->error_indicator = 1;
17288 PyErr_NoMemory();
17289 D(p->level--);
17290 return NULL;
17291 }
17292 ssize_t _children_capacity = 1;
17293 ssize_t _n = 0;
17294 { // ',' NAME
17295 if (p->error_indicator) {
17296 D(p->level--);
17297 return NULL;
17298 }
17299 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
17300 Token * _literal;
17301 expr_ty elem;
17302 while (
17303 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17304 &&
17305 (elem = _PyPegen_name_token(p)) // NAME
17306 )
17307 {
17308 _res = elem;
17309 if (_res == NULL && PyErr_Occurred()) {
17310 p->error_indicator = 1;
17311 PyMem_Free(_children);
17312 D(p->level--);
17313 return NULL;
17314 }
17315 if (_n == _children_capacity) {
17316 _children_capacity *= 2;
17317 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17318 if (!_new_children) {
17319 p->error_indicator = 1;
17320 PyErr_NoMemory();
17321 D(p->level--);
17322 return NULL;
17323 }
17324 _children = _new_children;
17325 }
17326 _children[_n++] = _res;
17327 _mark = p->mark;
17328 }
17329 p->mark = _mark;
17330 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
17331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
17332 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017333 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017334 if (!_seq) {
17335 PyMem_Free(_children);
17336 p->error_indicator = 1;
17337 PyErr_NoMemory();
17338 D(p->level--);
17339 return NULL;
17340 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017341 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017342 PyMem_Free(_children);
17343 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
17344 D(p->level--);
17345 return _seq;
17346}
17347
17348// _gather_25: NAME _loop0_26
17349static asdl_seq *
17350_gather_25_rule(Parser *p)
17351{
17352 D(p->level++);
17353 if (p->error_indicator) {
17354 D(p->level--);
17355 return NULL;
17356 }
17357 asdl_seq * _res = NULL;
17358 int _mark = p->mark;
17359 { // NAME _loop0_26
17360 if (p->error_indicator) {
17361 D(p->level--);
17362 return NULL;
17363 }
17364 D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
17365 expr_ty elem;
17366 asdl_seq * seq;
17367 if (
17368 (elem = _PyPegen_name_token(p)) // NAME
17369 &&
17370 (seq = _loop0_26_rule(p)) // _loop0_26
17371 )
17372 {
17373 D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
17374 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
17375 goto done;
17376 }
17377 p->mark = _mark;
17378 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
17379 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
17380 }
17381 _res = NULL;
17382 done:
17383 D(p->level--);
17384 return _res;
17385}
17386
17387// _loop0_28: ',' NAME
17388static asdl_seq *
17389_loop0_28_rule(Parser *p)
17390{
17391 D(p->level++);
17392 if (p->error_indicator) {
17393 D(p->level--);
17394 return NULL;
17395 }
17396 void *_res = NULL;
17397 int _mark = p->mark;
17398 int _start_mark = p->mark;
17399 void **_children = PyMem_Malloc(sizeof(void *));
17400 if (!_children) {
17401 p->error_indicator = 1;
17402 PyErr_NoMemory();
17403 D(p->level--);
17404 return NULL;
17405 }
17406 ssize_t _children_capacity = 1;
17407 ssize_t _n = 0;
17408 { // ',' NAME
17409 if (p->error_indicator) {
17410 D(p->level--);
17411 return NULL;
17412 }
17413 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
17414 Token * _literal;
17415 expr_ty elem;
17416 while (
17417 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17418 &&
17419 (elem = _PyPegen_name_token(p)) // NAME
17420 )
17421 {
17422 _res = elem;
17423 if (_res == NULL && PyErr_Occurred()) {
17424 p->error_indicator = 1;
17425 PyMem_Free(_children);
17426 D(p->level--);
17427 return NULL;
17428 }
17429 if (_n == _children_capacity) {
17430 _children_capacity *= 2;
17431 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17432 if (!_new_children) {
17433 p->error_indicator = 1;
17434 PyErr_NoMemory();
17435 D(p->level--);
17436 return NULL;
17437 }
17438 _children = _new_children;
17439 }
17440 _children[_n++] = _res;
17441 _mark = p->mark;
17442 }
17443 p->mark = _mark;
17444 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
17445 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
17446 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017447 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017448 if (!_seq) {
17449 PyMem_Free(_children);
17450 p->error_indicator = 1;
17451 PyErr_NoMemory();
17452 D(p->level--);
17453 return NULL;
17454 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017455 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017456 PyMem_Free(_children);
17457 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
17458 D(p->level--);
17459 return _seq;
17460}
17461
17462// _gather_27: NAME _loop0_28
17463static asdl_seq *
17464_gather_27_rule(Parser *p)
17465{
17466 D(p->level++);
17467 if (p->error_indicator) {
17468 D(p->level--);
17469 return NULL;
17470 }
17471 asdl_seq * _res = NULL;
17472 int _mark = p->mark;
17473 { // NAME _loop0_28
17474 if (p->error_indicator) {
17475 D(p->level--);
17476 return NULL;
17477 }
17478 D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
17479 expr_ty elem;
17480 asdl_seq * seq;
17481 if (
17482 (elem = _PyPegen_name_token(p)) // NAME
17483 &&
17484 (seq = _loop0_28_rule(p)) // _loop0_28
17485 )
17486 {
17487 D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
17488 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
17489 goto done;
17490 }
17491 p->mark = _mark;
17492 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
17493 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
17494 }
17495 _res = NULL;
17496 done:
17497 D(p->level--);
17498 return _res;
17499}
17500
17501// _tmp_29: ',' expression
17502static void *
17503_tmp_29_rule(Parser *p)
17504{
17505 D(p->level++);
17506 if (p->error_indicator) {
17507 D(p->level--);
17508 return NULL;
17509 }
17510 void * _res = NULL;
17511 int _mark = p->mark;
17512 { // ',' expression
17513 if (p->error_indicator) {
17514 D(p->level--);
17515 return NULL;
17516 }
17517 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
17518 Token * _literal;
17519 expr_ty z;
17520 if (
17521 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17522 &&
17523 (z = expression_rule(p)) // expression
17524 )
17525 {
17526 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
17527 _res = z;
17528 if (_res == NULL && PyErr_Occurred()) {
17529 p->error_indicator = 1;
17530 D(p->level--);
17531 return NULL;
17532 }
17533 goto done;
17534 }
17535 p->mark = _mark;
17536 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
17537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
17538 }
17539 _res = NULL;
17540 done:
17541 D(p->level--);
17542 return _res;
17543}
17544
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017545// _tmp_30: ';' | NEWLINE
17546static void *
17547_tmp_30_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017548{
17549 D(p->level++);
17550 if (p->error_indicator) {
17551 D(p->level--);
17552 return NULL;
17553 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017554 void * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017555 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017556 { // ';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017557 if (p->error_indicator) {
17558 D(p->level--);
17559 return NULL;
17560 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017561 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
17562 Token * _literal;
17563 if (
17564 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017565 )
17566 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017567 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
17568 _res = _literal;
17569 goto done;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017570 }
17571 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017572 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
17573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017574 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017575 { // NEWLINE
17576 if (p->error_indicator) {
17577 D(p->level--);
17578 return NULL;
17579 }
17580 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
17581 Token * newline_var;
17582 if (
17583 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
17584 )
17585 {
17586 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
17587 _res = newline_var;
17588 goto done;
17589 }
17590 p->mark = _mark;
17591 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
17592 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017593 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017594 _res = NULL;
17595 done:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017596 D(p->level--);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017597 return _res;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017598}
17599
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017600// _loop0_31: ('.' | '...')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017601static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017602_loop0_31_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017603{
17604 D(p->level++);
17605 if (p->error_indicator) {
17606 D(p->level--);
17607 return NULL;
17608 }
17609 void *_res = NULL;
17610 int _mark = p->mark;
17611 int _start_mark = p->mark;
17612 void **_children = PyMem_Malloc(sizeof(void *));
17613 if (!_children) {
17614 p->error_indicator = 1;
17615 PyErr_NoMemory();
17616 D(p->level--);
17617 return NULL;
17618 }
17619 ssize_t _children_capacity = 1;
17620 ssize_t _n = 0;
17621 { // ('.' | '...')
17622 if (p->error_indicator) {
17623 D(p->level--);
17624 return NULL;
17625 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017626 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017627 void *_tmp_139_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017628 while (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017629 (_tmp_139_var = _tmp_139_rule(p)) // '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017630 )
17631 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017632 _res = _tmp_139_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017633 if (_n == _children_capacity) {
17634 _children_capacity *= 2;
17635 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17636 if (!_new_children) {
17637 p->error_indicator = 1;
17638 PyErr_NoMemory();
17639 D(p->level--);
17640 return NULL;
17641 }
17642 _children = _new_children;
17643 }
17644 _children[_n++] = _res;
17645 _mark = p->mark;
17646 }
17647 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017648 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
17649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
17650 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017651 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017652 if (!_seq) {
17653 PyMem_Free(_children);
17654 p->error_indicator = 1;
17655 PyErr_NoMemory();
17656 D(p->level--);
17657 return NULL;
17658 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017659 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017660 PyMem_Free(_children);
17661 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
17662 D(p->level--);
17663 return _seq;
17664}
17665
17666// _loop1_32: ('.' | '...')
17667static asdl_seq *
17668_loop1_32_rule(Parser *p)
17669{
17670 D(p->level++);
17671 if (p->error_indicator) {
17672 D(p->level--);
17673 return NULL;
17674 }
17675 void *_res = NULL;
17676 int _mark = p->mark;
17677 int _start_mark = p->mark;
17678 void **_children = PyMem_Malloc(sizeof(void *));
17679 if (!_children) {
17680 p->error_indicator = 1;
17681 PyErr_NoMemory();
17682 D(p->level--);
17683 return NULL;
17684 }
17685 ssize_t _children_capacity = 1;
17686 ssize_t _n = 0;
17687 { // ('.' | '...')
17688 if (p->error_indicator) {
17689 D(p->level--);
17690 return NULL;
17691 }
17692 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017693 void *_tmp_140_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017694 while (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017695 (_tmp_140_var = _tmp_140_rule(p)) // '.' | '...'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017696 )
17697 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017698 _res = _tmp_140_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017699 if (_n == _children_capacity) {
17700 _children_capacity *= 2;
17701 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17702 if (!_new_children) {
17703 p->error_indicator = 1;
17704 PyErr_NoMemory();
17705 D(p->level--);
17706 return NULL;
17707 }
17708 _children = _new_children;
17709 }
17710 _children[_n++] = _res;
17711 _mark = p->mark;
17712 }
17713 p->mark = _mark;
17714 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017715 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
17716 }
17717 if (_n == 0 || p->error_indicator) {
17718 PyMem_Free(_children);
17719 D(p->level--);
17720 return NULL;
17721 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017722 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017723 if (!_seq) {
17724 PyMem_Free(_children);
17725 p->error_indicator = 1;
17726 PyErr_NoMemory();
17727 D(p->level--);
17728 return NULL;
17729 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017730 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017731 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017732 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017733 D(p->level--);
17734 return _seq;
17735}
17736
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017737// _loop0_34: ',' import_from_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017738static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017739_loop0_34_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017740{
17741 D(p->level++);
17742 if (p->error_indicator) {
17743 D(p->level--);
17744 return NULL;
17745 }
17746 void *_res = NULL;
17747 int _mark = p->mark;
17748 int _start_mark = p->mark;
17749 void **_children = PyMem_Malloc(sizeof(void *));
17750 if (!_children) {
17751 p->error_indicator = 1;
17752 PyErr_NoMemory();
17753 D(p->level--);
17754 return NULL;
17755 }
17756 ssize_t _children_capacity = 1;
17757 ssize_t _n = 0;
17758 { // ',' import_from_as_name
17759 if (p->error_indicator) {
17760 D(p->level--);
17761 return NULL;
17762 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017763 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 +010017764 Token * _literal;
17765 alias_ty elem;
17766 while (
17767 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17768 &&
17769 (elem = import_from_as_name_rule(p)) // import_from_as_name
17770 )
17771 {
17772 _res = elem;
17773 if (_res == NULL && PyErr_Occurred()) {
17774 p->error_indicator = 1;
17775 PyMem_Free(_children);
17776 D(p->level--);
17777 return NULL;
17778 }
17779 if (_n == _children_capacity) {
17780 _children_capacity *= 2;
17781 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17782 if (!_new_children) {
17783 p->error_indicator = 1;
17784 PyErr_NoMemory();
17785 D(p->level--);
17786 return NULL;
17787 }
17788 _children = _new_children;
17789 }
17790 _children[_n++] = _res;
17791 _mark = p->mark;
17792 }
17793 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017794 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
17796 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017797 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017798 if (!_seq) {
17799 PyMem_Free(_children);
17800 p->error_indicator = 1;
17801 PyErr_NoMemory();
17802 D(p->level--);
17803 return NULL;
17804 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017805 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017806 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017807 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017808 D(p->level--);
17809 return _seq;
17810}
17811
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017812// _gather_33: import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017813static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017814_gather_33_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017815{
17816 D(p->level++);
17817 if (p->error_indicator) {
17818 D(p->level--);
17819 return NULL;
17820 }
17821 asdl_seq * _res = NULL;
17822 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017823 { // import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017824 if (p->error_indicator) {
17825 D(p->level--);
17826 return NULL;
17827 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017828 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 +010017829 alias_ty elem;
17830 asdl_seq * seq;
17831 if (
17832 (elem = import_from_as_name_rule(p)) // import_from_as_name
17833 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017834 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017835 )
17836 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017837 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 +010017838 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
17839 goto done;
17840 }
17841 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017842 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
17843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017844 }
17845 _res = NULL;
17846 done:
17847 D(p->level--);
17848 return _res;
17849}
17850
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017851// _tmp_35: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017852static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017853_tmp_35_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017854{
17855 D(p->level++);
17856 if (p->error_indicator) {
17857 D(p->level--);
17858 return NULL;
17859 }
17860 void * _res = NULL;
17861 int _mark = p->mark;
17862 { // 'as' NAME
17863 if (p->error_indicator) {
17864 D(p->level--);
17865 return NULL;
17866 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017867 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017868 Token * _keyword;
17869 expr_ty z;
17870 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017871 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017872 &&
17873 (z = _PyPegen_name_token(p)) // NAME
17874 )
17875 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017876 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 +010017877 _res = z;
17878 if (_res == NULL && PyErr_Occurred()) {
17879 p->error_indicator = 1;
17880 D(p->level--);
17881 return NULL;
17882 }
17883 goto done;
17884 }
17885 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017886 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017887 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
17888 }
17889 _res = NULL;
17890 done:
17891 D(p->level--);
17892 return _res;
17893}
17894
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017895// _loop0_37: ',' dotted_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017896static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017897_loop0_37_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017898{
17899 D(p->level++);
17900 if (p->error_indicator) {
17901 D(p->level--);
17902 return NULL;
17903 }
17904 void *_res = NULL;
17905 int _mark = p->mark;
17906 int _start_mark = p->mark;
17907 void **_children = PyMem_Malloc(sizeof(void *));
17908 if (!_children) {
17909 p->error_indicator = 1;
17910 PyErr_NoMemory();
17911 D(p->level--);
17912 return NULL;
17913 }
17914 ssize_t _children_capacity = 1;
17915 ssize_t _n = 0;
17916 { // ',' dotted_as_name
17917 if (p->error_indicator) {
17918 D(p->level--);
17919 return NULL;
17920 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017921 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 +010017922 Token * _literal;
17923 alias_ty elem;
17924 while (
17925 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17926 &&
17927 (elem = dotted_as_name_rule(p)) // dotted_as_name
17928 )
17929 {
17930 _res = elem;
17931 if (_res == NULL && PyErr_Occurred()) {
17932 p->error_indicator = 1;
17933 PyMem_Free(_children);
17934 D(p->level--);
17935 return NULL;
17936 }
17937 if (_n == _children_capacity) {
17938 _children_capacity *= 2;
17939 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17940 if (!_new_children) {
17941 p->error_indicator = 1;
17942 PyErr_NoMemory();
17943 D(p->level--);
17944 return NULL;
17945 }
17946 _children = _new_children;
17947 }
17948 _children[_n++] = _res;
17949 _mark = p->mark;
17950 }
17951 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017952 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017953 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
17954 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017955 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017956 if (!_seq) {
17957 PyMem_Free(_children);
17958 p->error_indicator = 1;
17959 PyErr_NoMemory();
17960 D(p->level--);
17961 return NULL;
17962 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017963 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017964 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017965 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017966 D(p->level--);
17967 return _seq;
17968}
17969
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017970// _gather_36: dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017971static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017972_gather_36_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017973{
17974 D(p->level++);
17975 if (p->error_indicator) {
17976 D(p->level--);
17977 return NULL;
17978 }
17979 asdl_seq * _res = NULL;
17980 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017981 { // dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017982 if (p->error_indicator) {
17983 D(p->level--);
17984 return NULL;
17985 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017986 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 +010017987 alias_ty elem;
17988 asdl_seq * seq;
17989 if (
17990 (elem = dotted_as_name_rule(p)) // dotted_as_name
17991 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017992 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017993 )
17994 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017995 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 +010017996 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
17997 goto done;
17998 }
17999 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018000 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
18001 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018002 }
18003 _res = NULL;
18004 done:
18005 D(p->level--);
18006 return _res;
18007}
18008
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018009// _tmp_38: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018010static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018011_tmp_38_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018012{
18013 D(p->level++);
18014 if (p->error_indicator) {
18015 D(p->level--);
18016 return NULL;
18017 }
18018 void * _res = NULL;
18019 int _mark = p->mark;
18020 { // 'as' NAME
18021 if (p->error_indicator) {
18022 D(p->level--);
18023 return NULL;
18024 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018025 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018026 Token * _keyword;
18027 expr_ty z;
18028 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018029 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018030 &&
18031 (z = _PyPegen_name_token(p)) // NAME
18032 )
18033 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018034 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 +010018035 _res = z;
18036 if (_res == NULL && PyErr_Occurred()) {
18037 p->error_indicator = 1;
18038 D(p->level--);
18039 return NULL;
18040 }
18041 goto done;
18042 }
18043 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018044 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018045 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
18046 }
18047 _res = NULL;
18048 done:
18049 D(p->level--);
18050 return _res;
18051}
18052
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018053// _loop0_40: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018054static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018055_loop0_40_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018056{
18057 D(p->level++);
18058 if (p->error_indicator) {
18059 D(p->level--);
18060 return NULL;
18061 }
18062 void *_res = NULL;
18063 int _mark = p->mark;
18064 int _start_mark = p->mark;
18065 void **_children = PyMem_Malloc(sizeof(void *));
18066 if (!_children) {
18067 p->error_indicator = 1;
18068 PyErr_NoMemory();
18069 D(p->level--);
18070 return NULL;
18071 }
18072 ssize_t _children_capacity = 1;
18073 ssize_t _n = 0;
18074 { // ',' with_item
18075 if (p->error_indicator) {
18076 D(p->level--);
18077 return NULL;
18078 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018079 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018080 Token * _literal;
18081 withitem_ty elem;
18082 while (
18083 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18084 &&
18085 (elem = with_item_rule(p)) // with_item
18086 )
18087 {
18088 _res = elem;
18089 if (_res == NULL && PyErr_Occurred()) {
18090 p->error_indicator = 1;
18091 PyMem_Free(_children);
18092 D(p->level--);
18093 return NULL;
18094 }
18095 if (_n == _children_capacity) {
18096 _children_capacity *= 2;
18097 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18098 if (!_new_children) {
18099 p->error_indicator = 1;
18100 PyErr_NoMemory();
18101 D(p->level--);
18102 return NULL;
18103 }
18104 _children = _new_children;
18105 }
18106 _children[_n++] = _res;
18107 _mark = p->mark;
18108 }
18109 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018110 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018111 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
18112 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018113 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018114 if (!_seq) {
18115 PyMem_Free(_children);
18116 p->error_indicator = 1;
18117 PyErr_NoMemory();
18118 D(p->level--);
18119 return NULL;
18120 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018121 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018122 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018123 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018124 D(p->level--);
18125 return _seq;
18126}
18127
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018128// _gather_39: with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018129static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018130_gather_39_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018131{
18132 D(p->level++);
18133 if (p->error_indicator) {
18134 D(p->level--);
18135 return NULL;
18136 }
18137 asdl_seq * _res = NULL;
18138 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018139 { // with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018140 if (p->error_indicator) {
18141 D(p->level--);
18142 return NULL;
18143 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018144 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 +010018145 withitem_ty elem;
18146 asdl_seq * seq;
18147 if (
18148 (elem = with_item_rule(p)) // with_item
18149 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018150 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018151 )
18152 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018153 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 +010018154 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18155 goto done;
18156 }
18157 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018158 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
18159 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018160 }
18161 _res = NULL;
18162 done:
18163 D(p->level--);
18164 return _res;
18165}
18166
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018167// _loop0_42: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018168static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018169_loop0_42_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018170{
18171 D(p->level++);
18172 if (p->error_indicator) {
18173 D(p->level--);
18174 return NULL;
18175 }
18176 void *_res = NULL;
18177 int _mark = p->mark;
18178 int _start_mark = p->mark;
18179 void **_children = PyMem_Malloc(sizeof(void *));
18180 if (!_children) {
18181 p->error_indicator = 1;
18182 PyErr_NoMemory();
18183 D(p->level--);
18184 return NULL;
18185 }
18186 ssize_t _children_capacity = 1;
18187 ssize_t _n = 0;
18188 { // ',' with_item
18189 if (p->error_indicator) {
18190 D(p->level--);
18191 return NULL;
18192 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018193 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018194 Token * _literal;
18195 withitem_ty elem;
18196 while (
18197 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18198 &&
18199 (elem = with_item_rule(p)) // with_item
18200 )
18201 {
18202 _res = elem;
18203 if (_res == NULL && PyErr_Occurred()) {
18204 p->error_indicator = 1;
18205 PyMem_Free(_children);
18206 D(p->level--);
18207 return NULL;
18208 }
18209 if (_n == _children_capacity) {
18210 _children_capacity *= 2;
18211 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18212 if (!_new_children) {
18213 p->error_indicator = 1;
18214 PyErr_NoMemory();
18215 D(p->level--);
18216 return NULL;
18217 }
18218 _children = _new_children;
18219 }
18220 _children[_n++] = _res;
18221 _mark = p->mark;
18222 }
18223 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018224 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018225 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
18226 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018227 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018228 if (!_seq) {
18229 PyMem_Free(_children);
18230 p->error_indicator = 1;
18231 PyErr_NoMemory();
18232 D(p->level--);
18233 return NULL;
18234 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018235 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018236 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018237 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018238 D(p->level--);
18239 return _seq;
18240}
18241
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018242// _gather_41: with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018243static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018244_gather_41_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018245{
18246 D(p->level++);
18247 if (p->error_indicator) {
18248 D(p->level--);
18249 return NULL;
18250 }
18251 asdl_seq * _res = NULL;
18252 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018253 { // with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018254 if (p->error_indicator) {
18255 D(p->level--);
18256 return NULL;
18257 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018258 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 +010018259 withitem_ty elem;
18260 asdl_seq * seq;
18261 if (
18262 (elem = with_item_rule(p)) // with_item
18263 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018264 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018265 )
18266 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018267 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 +010018268 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18269 goto done;
18270 }
18271 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018272 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
18273 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018274 }
18275 _res = NULL;
18276 done:
18277 D(p->level--);
18278 return _res;
18279}
18280
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018281// _loop0_44: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018282static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018283_loop0_44_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018284{
18285 D(p->level++);
18286 if (p->error_indicator) {
18287 D(p->level--);
18288 return NULL;
18289 }
18290 void *_res = NULL;
18291 int _mark = p->mark;
18292 int _start_mark = p->mark;
18293 void **_children = PyMem_Malloc(sizeof(void *));
18294 if (!_children) {
18295 p->error_indicator = 1;
18296 PyErr_NoMemory();
18297 D(p->level--);
18298 return NULL;
18299 }
18300 ssize_t _children_capacity = 1;
18301 ssize_t _n = 0;
18302 { // ',' with_item
18303 if (p->error_indicator) {
18304 D(p->level--);
18305 return NULL;
18306 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018307 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018308 Token * _literal;
18309 withitem_ty elem;
18310 while (
18311 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18312 &&
18313 (elem = with_item_rule(p)) // with_item
18314 )
18315 {
18316 _res = elem;
18317 if (_res == NULL && PyErr_Occurred()) {
18318 p->error_indicator = 1;
18319 PyMem_Free(_children);
18320 D(p->level--);
18321 return NULL;
18322 }
18323 if (_n == _children_capacity) {
18324 _children_capacity *= 2;
18325 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18326 if (!_new_children) {
18327 p->error_indicator = 1;
18328 PyErr_NoMemory();
18329 D(p->level--);
18330 return NULL;
18331 }
18332 _children = _new_children;
18333 }
18334 _children[_n++] = _res;
18335 _mark = p->mark;
18336 }
18337 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018338 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018339 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
18340 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018341 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018342 if (!_seq) {
18343 PyMem_Free(_children);
18344 p->error_indicator = 1;
18345 PyErr_NoMemory();
18346 D(p->level--);
18347 return NULL;
18348 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018349 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018350 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018351 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018352 D(p->level--);
18353 return _seq;
18354}
18355
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018356// _gather_43: with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018357static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018358_gather_43_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018359{
18360 D(p->level++);
18361 if (p->error_indicator) {
18362 D(p->level--);
18363 return NULL;
18364 }
18365 asdl_seq * _res = NULL;
18366 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018367 { // with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018368 if (p->error_indicator) {
18369 D(p->level--);
18370 return NULL;
18371 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018372 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 +010018373 withitem_ty elem;
18374 asdl_seq * seq;
18375 if (
18376 (elem = with_item_rule(p)) // with_item
18377 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018378 (seq = _loop0_44_rule(p)) // _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018379 )
18380 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018381 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 +010018382 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18383 goto done;
18384 }
18385 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018386 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
18387 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018388 }
18389 _res = NULL;
18390 done:
18391 D(p->level--);
18392 return _res;
18393}
18394
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018395// _loop0_46: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018396static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018397_loop0_46_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018398{
18399 D(p->level++);
18400 if (p->error_indicator) {
18401 D(p->level--);
18402 return NULL;
18403 }
18404 void *_res = NULL;
18405 int _mark = p->mark;
18406 int _start_mark = p->mark;
18407 void **_children = PyMem_Malloc(sizeof(void *));
18408 if (!_children) {
18409 p->error_indicator = 1;
18410 PyErr_NoMemory();
18411 D(p->level--);
18412 return NULL;
18413 }
18414 ssize_t _children_capacity = 1;
18415 ssize_t _n = 0;
18416 { // ',' with_item
18417 if (p->error_indicator) {
18418 D(p->level--);
18419 return NULL;
18420 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018421 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018422 Token * _literal;
18423 withitem_ty elem;
18424 while (
18425 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18426 &&
18427 (elem = with_item_rule(p)) // with_item
18428 )
18429 {
18430 _res = elem;
18431 if (_res == NULL && PyErr_Occurred()) {
18432 p->error_indicator = 1;
18433 PyMem_Free(_children);
18434 D(p->level--);
18435 return NULL;
18436 }
18437 if (_n == _children_capacity) {
18438 _children_capacity *= 2;
18439 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18440 if (!_new_children) {
18441 p->error_indicator = 1;
18442 PyErr_NoMemory();
18443 D(p->level--);
18444 return NULL;
18445 }
18446 _children = _new_children;
18447 }
18448 _children[_n++] = _res;
18449 _mark = p->mark;
18450 }
18451 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018452 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018453 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
18454 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018455 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018456 if (!_seq) {
18457 PyMem_Free(_children);
18458 p->error_indicator = 1;
18459 PyErr_NoMemory();
18460 D(p->level--);
18461 return NULL;
18462 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018463 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018464 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018465 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018466 D(p->level--);
18467 return _seq;
18468}
18469
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018470// _gather_45: with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018471static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018472_gather_45_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018473{
18474 D(p->level++);
18475 if (p->error_indicator) {
18476 D(p->level--);
18477 return NULL;
18478 }
18479 asdl_seq * _res = NULL;
18480 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018481 { // with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018482 if (p->error_indicator) {
18483 D(p->level--);
18484 return NULL;
18485 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018486 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 +010018487 withitem_ty elem;
18488 asdl_seq * seq;
18489 if (
18490 (elem = with_item_rule(p)) // with_item
18491 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018492 (seq = _loop0_46_rule(p)) // _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018493 )
18494 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018495 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 +010018496 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18497 goto done;
18498 }
18499 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018500 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
18501 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018502 }
18503 _res = NULL;
18504 done:
18505 D(p->level--);
18506 return _res;
18507}
18508
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018509// _tmp_47: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018510static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018511_tmp_47_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018512{
18513 D(p->level++);
18514 if (p->error_indicator) {
18515 D(p->level--);
18516 return NULL;
18517 }
18518 void * _res = NULL;
18519 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018520 { // ','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018521 if (p->error_indicator) {
18522 D(p->level--);
18523 return NULL;
18524 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018525 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
18526 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018527 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018528 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018529 )
18530 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018531 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
18532 _res = _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018533 goto done;
18534 }
18535 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018536 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
18538 }
18539 { // ')'
18540 if (p->error_indicator) {
18541 D(p->level--);
18542 return NULL;
18543 }
18544 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
18545 Token * _literal;
18546 if (
18547 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
18548 )
18549 {
18550 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
18551 _res = _literal;
18552 goto done;
18553 }
18554 p->mark = _mark;
18555 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18556 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
18557 }
18558 { // ':'
18559 if (p->error_indicator) {
18560 D(p->level--);
18561 return NULL;
18562 }
18563 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
18564 Token * _literal;
18565 if (
18566 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
18567 )
18568 {
18569 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
18570 _res = _literal;
18571 goto done;
18572 }
18573 p->mark = _mark;
18574 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18575 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018576 }
18577 _res = NULL;
18578 done:
18579 D(p->level--);
18580 return _res;
18581}
18582
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018583// _loop1_48: except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018584static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018585_loop1_48_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018586{
18587 D(p->level++);
18588 if (p->error_indicator) {
18589 D(p->level--);
18590 return NULL;
18591 }
18592 void *_res = NULL;
18593 int _mark = p->mark;
18594 int _start_mark = p->mark;
18595 void **_children = PyMem_Malloc(sizeof(void *));
18596 if (!_children) {
18597 p->error_indicator = 1;
18598 PyErr_NoMemory();
18599 D(p->level--);
18600 return NULL;
18601 }
18602 ssize_t _children_capacity = 1;
18603 ssize_t _n = 0;
18604 { // except_block
18605 if (p->error_indicator) {
18606 D(p->level--);
18607 return NULL;
18608 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018609 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018610 excepthandler_ty except_block_var;
18611 while (
18612 (except_block_var = except_block_rule(p)) // except_block
18613 )
18614 {
18615 _res = except_block_var;
18616 if (_n == _children_capacity) {
18617 _children_capacity *= 2;
18618 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18619 if (!_new_children) {
18620 p->error_indicator = 1;
18621 PyErr_NoMemory();
18622 D(p->level--);
18623 return NULL;
18624 }
18625 _children = _new_children;
18626 }
18627 _children[_n++] = _res;
18628 _mark = p->mark;
18629 }
18630 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018631 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018632 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
18633 }
18634 if (_n == 0 || p->error_indicator) {
18635 PyMem_Free(_children);
18636 D(p->level--);
18637 return NULL;
18638 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018639 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018640 if (!_seq) {
18641 PyMem_Free(_children);
18642 p->error_indicator = 1;
18643 PyErr_NoMemory();
18644 D(p->level--);
18645 return NULL;
18646 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018647 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018648 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018649 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018650 D(p->level--);
18651 return _seq;
18652}
18653
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018654// _tmp_49: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018655static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018656_tmp_49_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018657{
18658 D(p->level++);
18659 if (p->error_indicator) {
18660 D(p->level--);
18661 return NULL;
18662 }
18663 void * _res = NULL;
18664 int _mark = p->mark;
18665 { // 'as' NAME
18666 if (p->error_indicator) {
18667 D(p->level--);
18668 return NULL;
18669 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018670 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018671 Token * _keyword;
18672 expr_ty z;
18673 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018674 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018675 &&
18676 (z = _PyPegen_name_token(p)) // NAME
18677 )
18678 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018679 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 +010018680 _res = z;
18681 if (_res == NULL && PyErr_Occurred()) {
18682 p->error_indicator = 1;
18683 D(p->level--);
18684 return NULL;
18685 }
18686 goto done;
18687 }
18688 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018689 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
18691 }
18692 _res = NULL;
18693 done:
18694 D(p->level--);
18695 return _res;
18696}
18697
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018698// _tmp_50: 'from' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018699static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018700_tmp_50_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018701{
18702 D(p->level++);
18703 if (p->error_indicator) {
18704 D(p->level--);
18705 return NULL;
18706 }
18707 void * _res = NULL;
18708 int _mark = p->mark;
18709 { // 'from' expression
18710 if (p->error_indicator) {
18711 D(p->level--);
18712 return NULL;
18713 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018714 D(fprintf(stderr, "%*c> _tmp_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018715 Token * _keyword;
18716 expr_ty z;
18717 if (
18718 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
18719 &&
18720 (z = expression_rule(p)) // expression
18721 )
18722 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018723 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 +010018724 _res = z;
18725 if (_res == NULL && PyErr_Occurred()) {
18726 p->error_indicator = 1;
18727 D(p->level--);
18728 return NULL;
18729 }
18730 goto done;
18731 }
18732 p->mark = _mark;
18733 D(fprintf(stderr, "%*c%s _tmp_50[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018734 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018735 }
18736 _res = NULL;
18737 done:
18738 D(p->level--);
18739 return _res;
18740}
18741
18742// _tmp_51: '->' expression
18743static void *
18744_tmp_51_rule(Parser *p)
18745{
18746 D(p->level++);
18747 if (p->error_indicator) {
18748 D(p->level--);
18749 return NULL;
18750 }
18751 void * _res = NULL;
18752 int _mark = p->mark;
18753 { // '->' expression
18754 if (p->error_indicator) {
18755 D(p->level--);
18756 return NULL;
18757 }
18758 D(fprintf(stderr, "%*c> _tmp_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18759 Token * _literal;
18760 expr_ty z;
18761 if (
18762 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
18763 &&
18764 (z = expression_rule(p)) // expression
18765 )
18766 {
18767 D(fprintf(stderr, "%*c+ _tmp_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18768 _res = z;
18769 if (_res == NULL && PyErr_Occurred()) {
18770 p->error_indicator = 1;
18771 D(p->level--);
18772 return NULL;
18773 }
18774 goto done;
18775 }
18776 p->mark = _mark;
18777 D(fprintf(stderr, "%*c%s _tmp_51[%d-%d]: %s failed!\n", p->level, ' ',
18778 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
18779 }
18780 _res = NULL;
18781 done:
18782 D(p->level--);
18783 return _res;
18784}
18785
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018786// _tmp_52: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018787static void *
18788_tmp_52_rule(Parser *p)
18789{
18790 D(p->level++);
18791 if (p->error_indicator) {
18792 D(p->level--);
18793 return NULL;
18794 }
18795 void * _res = NULL;
18796 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018797 { // '->' expression
18798 if (p->error_indicator) {
18799 D(p->level--);
18800 return NULL;
18801 }
18802 D(fprintf(stderr, "%*c> _tmp_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18803 Token * _literal;
18804 expr_ty z;
18805 if (
18806 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
18807 &&
18808 (z = expression_rule(p)) // expression
18809 )
18810 {
18811 D(fprintf(stderr, "%*c+ _tmp_52[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18812 _res = z;
18813 if (_res == NULL && PyErr_Occurred()) {
18814 p->error_indicator = 1;
18815 D(p->level--);
18816 return NULL;
18817 }
18818 goto done;
18819 }
18820 p->mark = _mark;
18821 D(fprintf(stderr, "%*c%s _tmp_52[%d-%d]: %s failed!\n", p->level, ' ',
18822 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
18823 }
18824 _res = NULL;
18825 done:
18826 D(p->level--);
18827 return _res;
18828}
18829
18830// _tmp_53: NEWLINE INDENT
18831static void *
18832_tmp_53_rule(Parser *p)
18833{
18834 D(p->level++);
18835 if (p->error_indicator) {
18836 D(p->level--);
18837 return NULL;
18838 }
18839 void * _res = NULL;
18840 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018841 { // NEWLINE INDENT
18842 if (p->error_indicator) {
18843 D(p->level--);
18844 return NULL;
18845 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018846 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018847 Token * indent_var;
18848 Token * newline_var;
18849 if (
18850 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18851 &&
18852 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
18853 )
18854 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018855 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 +010018856 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
18857 goto done;
18858 }
18859 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018860 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018861 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
18862 }
18863 _res = NULL;
18864 done:
18865 D(p->level--);
18866 return _res;
18867}
18868
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018869// _loop0_54: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018870static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018871_loop0_54_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018872{
18873 D(p->level++);
18874 if (p->error_indicator) {
18875 D(p->level--);
18876 return NULL;
18877 }
18878 void *_res = NULL;
18879 int _mark = p->mark;
18880 int _start_mark = p->mark;
18881 void **_children = PyMem_Malloc(sizeof(void *));
18882 if (!_children) {
18883 p->error_indicator = 1;
18884 PyErr_NoMemory();
18885 D(p->level--);
18886 return NULL;
18887 }
18888 ssize_t _children_capacity = 1;
18889 ssize_t _n = 0;
18890 { // param_no_default
18891 if (p->error_indicator) {
18892 D(p->level--);
18893 return NULL;
18894 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018895 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 +010018896 arg_ty param_no_default_var;
18897 while (
18898 (param_no_default_var = param_no_default_rule(p)) // param_no_default
18899 )
18900 {
18901 _res = param_no_default_var;
18902 if (_n == _children_capacity) {
18903 _children_capacity *= 2;
18904 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18905 if (!_new_children) {
18906 p->error_indicator = 1;
18907 PyErr_NoMemory();
18908 D(p->level--);
18909 return NULL;
18910 }
18911 _children = _new_children;
18912 }
18913 _children[_n++] = _res;
18914 _mark = p->mark;
18915 }
18916 p->mark = _mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018917 D(fprintf(stderr, "%*c%s _loop0_54[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018918 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018919 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018920 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018921 if (!_seq) {
18922 PyMem_Free(_children);
18923 p->error_indicator = 1;
18924 PyErr_NoMemory();
18925 D(p->level--);
18926 return NULL;
18927 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018928 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018929 PyMem_Free(_children);
18930 _PyPegen_insert_memo(p, _start_mark, _loop0_54_type, _seq);
18931 D(p->level--);
18932 return _seq;
18933}
18934
18935// _loop0_55: param_with_default
18936static asdl_seq *
18937_loop0_55_rule(Parser *p)
18938{
18939 D(p->level++);
18940 if (p->error_indicator) {
18941 D(p->level--);
18942 return NULL;
18943 }
18944 void *_res = NULL;
18945 int _mark = p->mark;
18946 int _start_mark = p->mark;
18947 void **_children = PyMem_Malloc(sizeof(void *));
18948 if (!_children) {
18949 p->error_indicator = 1;
18950 PyErr_NoMemory();
18951 D(p->level--);
18952 return NULL;
18953 }
18954 ssize_t _children_capacity = 1;
18955 ssize_t _n = 0;
18956 { // param_with_default
18957 if (p->error_indicator) {
18958 D(p->level--);
18959 return NULL;
18960 }
18961 D(fprintf(stderr, "%*c> _loop0_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
18962 NameDefaultPair* param_with_default_var;
18963 while (
18964 (param_with_default_var = param_with_default_rule(p)) // param_with_default
18965 )
18966 {
18967 _res = param_with_default_var;
18968 if (_n == _children_capacity) {
18969 _children_capacity *= 2;
18970 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18971 if (!_new_children) {
18972 p->error_indicator = 1;
18973 PyErr_NoMemory();
18974 D(p->level--);
18975 return NULL;
18976 }
18977 _children = _new_children;
18978 }
18979 _children[_n++] = _res;
18980 _mark = p->mark;
18981 }
18982 p->mark = _mark;
18983 D(fprintf(stderr, "%*c%s _loop0_55[%d-%d]: %s failed!\n", p->level, ' ',
18984 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
18985 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018986 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018987 if (!_seq) {
18988 PyMem_Free(_children);
18989 p->error_indicator = 1;
18990 PyErr_NoMemory();
18991 D(p->level--);
18992 return NULL;
18993 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018994 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018995 PyMem_Free(_children);
18996 _PyPegen_insert_memo(p, _start_mark, _loop0_55_type, _seq);
18997 D(p->level--);
18998 return _seq;
18999}
19000
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019001// _loop0_56: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019002static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019003_loop0_56_rule(Parser *p)
19004{
19005 D(p->level++);
19006 if (p->error_indicator) {
19007 D(p->level--);
19008 return NULL;
19009 }
19010 void *_res = NULL;
19011 int _mark = p->mark;
19012 int _start_mark = p->mark;
19013 void **_children = PyMem_Malloc(sizeof(void *));
19014 if (!_children) {
19015 p->error_indicator = 1;
19016 PyErr_NoMemory();
19017 D(p->level--);
19018 return NULL;
19019 }
19020 ssize_t _children_capacity = 1;
19021 ssize_t _n = 0;
19022 { // param_with_default
19023 if (p->error_indicator) {
19024 D(p->level--);
19025 return NULL;
19026 }
19027 D(fprintf(stderr, "%*c> _loop0_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
19028 NameDefaultPair* param_with_default_var;
19029 while (
19030 (param_with_default_var = param_with_default_rule(p)) // param_with_default
19031 )
19032 {
19033 _res = param_with_default_var;
19034 if (_n == _children_capacity) {
19035 _children_capacity *= 2;
19036 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19037 if (!_new_children) {
19038 p->error_indicator = 1;
19039 PyErr_NoMemory();
19040 D(p->level--);
19041 return NULL;
19042 }
19043 _children = _new_children;
19044 }
19045 _children[_n++] = _res;
19046 _mark = p->mark;
19047 }
19048 p->mark = _mark;
19049 D(fprintf(stderr, "%*c%s _loop0_56[%d-%d]: %s failed!\n", p->level, ' ',
19050 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
19051 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019052 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019053 if (!_seq) {
19054 PyMem_Free(_children);
19055 p->error_indicator = 1;
19056 PyErr_NoMemory();
19057 D(p->level--);
19058 return NULL;
19059 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019060 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019061 PyMem_Free(_children);
19062 _PyPegen_insert_memo(p, _start_mark, _loop0_56_type, _seq);
19063 D(p->level--);
19064 return _seq;
19065}
19066
19067// _loop1_57: param_no_default
19068static asdl_seq *
19069_loop1_57_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019070{
19071 D(p->level++);
19072 if (p->error_indicator) {
19073 D(p->level--);
19074 return NULL;
19075 }
19076 void *_res = NULL;
19077 int _mark = p->mark;
19078 int _start_mark = p->mark;
19079 void **_children = PyMem_Malloc(sizeof(void *));
19080 if (!_children) {
19081 p->error_indicator = 1;
19082 PyErr_NoMemory();
19083 D(p->level--);
19084 return NULL;
19085 }
19086 ssize_t _children_capacity = 1;
19087 ssize_t _n = 0;
19088 { // param_no_default
19089 if (p->error_indicator) {
19090 D(p->level--);
19091 return NULL;
19092 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019093 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 +010019094 arg_ty param_no_default_var;
19095 while (
19096 (param_no_default_var = param_no_default_rule(p)) // param_no_default
19097 )
19098 {
19099 _res = param_no_default_var;
19100 if (_n == _children_capacity) {
19101 _children_capacity *= 2;
19102 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19103 if (!_new_children) {
19104 p->error_indicator = 1;
19105 PyErr_NoMemory();
19106 D(p->level--);
19107 return NULL;
19108 }
19109 _children = _new_children;
19110 }
19111 _children[_n++] = _res;
19112 _mark = p->mark;
19113 }
19114 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019115 D(fprintf(stderr, "%*c%s _loop1_57[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019116 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
19117 }
19118 if (_n == 0 || p->error_indicator) {
19119 PyMem_Free(_children);
19120 D(p->level--);
19121 return NULL;
19122 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019123 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019124 if (!_seq) {
19125 PyMem_Free(_children);
19126 p->error_indicator = 1;
19127 PyErr_NoMemory();
19128 D(p->level--);
19129 return NULL;
19130 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019131 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019132 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019133 _PyPegen_insert_memo(p, _start_mark, _loop1_57_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019134 D(p->level--);
19135 return _seq;
19136}
19137
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019138// _loop0_58: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019139static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019140_loop0_58_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019141{
19142 D(p->level++);
19143 if (p->error_indicator) {
19144 D(p->level--);
19145 return NULL;
19146 }
19147 void *_res = NULL;
19148 int _mark = p->mark;
19149 int _start_mark = p->mark;
19150 void **_children = PyMem_Malloc(sizeof(void *));
19151 if (!_children) {
19152 p->error_indicator = 1;
19153 PyErr_NoMemory();
19154 D(p->level--);
19155 return NULL;
19156 }
19157 ssize_t _children_capacity = 1;
19158 ssize_t _n = 0;
19159 { // param_with_default
19160 if (p->error_indicator) {
19161 D(p->level--);
19162 return NULL;
19163 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019164 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 +010019165 NameDefaultPair* param_with_default_var;
19166 while (
19167 (param_with_default_var = param_with_default_rule(p)) // param_with_default
19168 )
19169 {
19170 _res = param_with_default_var;
19171 if (_n == _children_capacity) {
19172 _children_capacity *= 2;
19173 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19174 if (!_new_children) {
19175 p->error_indicator = 1;
19176 PyErr_NoMemory();
19177 D(p->level--);
19178 return NULL;
19179 }
19180 _children = _new_children;
19181 }
19182 _children[_n++] = _res;
19183 _mark = p->mark;
19184 }
19185 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019186 D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019187 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
19188 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019189 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019190 if (!_seq) {
19191 PyMem_Free(_children);
19192 p->error_indicator = 1;
19193 PyErr_NoMemory();
19194 D(p->level--);
19195 return NULL;
19196 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019197 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019198 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019199 _PyPegen_insert_memo(p, _start_mark, _loop0_58_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019200 D(p->level--);
19201 return _seq;
19202}
19203
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019204// _loop1_59: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019205static asdl_seq *
19206_loop1_59_rule(Parser *p)
19207{
19208 D(p->level++);
19209 if (p->error_indicator) {
19210 D(p->level--);
19211 return NULL;
19212 }
19213 void *_res = NULL;
19214 int _mark = p->mark;
19215 int _start_mark = p->mark;
19216 void **_children = PyMem_Malloc(sizeof(void *));
19217 if (!_children) {
19218 p->error_indicator = 1;
19219 PyErr_NoMemory();
19220 D(p->level--);
19221 return NULL;
19222 }
19223 ssize_t _children_capacity = 1;
19224 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019225 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019226 if (p->error_indicator) {
19227 D(p->level--);
19228 return NULL;
19229 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019230 D(fprintf(stderr, "%*c> _loop1_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
19231 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019232 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019233 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019234 )
19235 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019236 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019237 if (_n == _children_capacity) {
19238 _children_capacity *= 2;
19239 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19240 if (!_new_children) {
19241 p->error_indicator = 1;
19242 PyErr_NoMemory();
19243 D(p->level--);
19244 return NULL;
19245 }
19246 _children = _new_children;
19247 }
19248 _children[_n++] = _res;
19249 _mark = p->mark;
19250 }
19251 p->mark = _mark;
19252 D(fprintf(stderr, "%*c%s _loop1_59[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019253 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019254 }
19255 if (_n == 0 || p->error_indicator) {
19256 PyMem_Free(_children);
19257 D(p->level--);
19258 return NULL;
19259 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019260 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019261 if (!_seq) {
19262 PyMem_Free(_children);
19263 p->error_indicator = 1;
19264 PyErr_NoMemory();
19265 D(p->level--);
19266 return NULL;
19267 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019268 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019269 PyMem_Free(_children);
19270 _PyPegen_insert_memo(p, _start_mark, _loop1_59_type, _seq);
19271 D(p->level--);
19272 return _seq;
19273}
19274
19275// _loop1_60: param_no_default
19276static asdl_seq *
19277_loop1_60_rule(Parser *p)
19278{
19279 D(p->level++);
19280 if (p->error_indicator) {
19281 D(p->level--);
19282 return NULL;
19283 }
19284 void *_res = NULL;
19285 int _mark = p->mark;
19286 int _start_mark = p->mark;
19287 void **_children = PyMem_Malloc(sizeof(void *));
19288 if (!_children) {
19289 p->error_indicator = 1;
19290 PyErr_NoMemory();
19291 D(p->level--);
19292 return NULL;
19293 }
19294 ssize_t _children_capacity = 1;
19295 ssize_t _n = 0;
19296 { // param_no_default
19297 if (p->error_indicator) {
19298 D(p->level--);
19299 return NULL;
19300 }
19301 D(fprintf(stderr, "%*c> _loop1_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
19302 arg_ty param_no_default_var;
19303 while (
19304 (param_no_default_var = param_no_default_rule(p)) // param_no_default
19305 )
19306 {
19307 _res = param_no_default_var;
19308 if (_n == _children_capacity) {
19309 _children_capacity *= 2;
19310 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19311 if (!_new_children) {
19312 p->error_indicator = 1;
19313 PyErr_NoMemory();
19314 D(p->level--);
19315 return NULL;
19316 }
19317 _children = _new_children;
19318 }
19319 _children[_n++] = _res;
19320 _mark = p->mark;
19321 }
19322 p->mark = _mark;
19323 D(fprintf(stderr, "%*c%s _loop1_60[%d-%d]: %s failed!\n", p->level, ' ',
19324 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
19325 }
19326 if (_n == 0 || p->error_indicator) {
19327 PyMem_Free(_children);
19328 D(p->level--);
19329 return NULL;
19330 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019331 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019332 if (!_seq) {
19333 PyMem_Free(_children);
19334 p->error_indicator = 1;
19335 PyErr_NoMemory();
19336 D(p->level--);
19337 return NULL;
19338 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019339 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019340 PyMem_Free(_children);
19341 _PyPegen_insert_memo(p, _start_mark, _loop1_60_type, _seq);
19342 D(p->level--);
19343 return _seq;
19344}
19345
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019346// _loop1_61: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019347static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019348_loop1_61_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019349{
19350 D(p->level++);
19351 if (p->error_indicator) {
19352 D(p->level--);
19353 return NULL;
19354 }
19355 void *_res = NULL;
19356 int _mark = p->mark;
19357 int _start_mark = p->mark;
19358 void **_children = PyMem_Malloc(sizeof(void *));
19359 if (!_children) {
19360 p->error_indicator = 1;
19361 PyErr_NoMemory();
19362 D(p->level--);
19363 return NULL;
19364 }
19365 ssize_t _children_capacity = 1;
19366 ssize_t _n = 0;
19367 { // param_no_default
19368 if (p->error_indicator) {
19369 D(p->level--);
19370 return NULL;
19371 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019372 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 +010019373 arg_ty param_no_default_var;
19374 while (
19375 (param_no_default_var = param_no_default_rule(p)) // param_no_default
19376 )
19377 {
19378 _res = param_no_default_var;
19379 if (_n == _children_capacity) {
19380 _children_capacity *= 2;
19381 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19382 if (!_new_children) {
19383 p->error_indicator = 1;
19384 PyErr_NoMemory();
19385 D(p->level--);
19386 return NULL;
19387 }
19388 _children = _new_children;
19389 }
19390 _children[_n++] = _res;
19391 _mark = p->mark;
19392 }
19393 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019394 D(fprintf(stderr, "%*c%s _loop1_61[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019395 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
19396 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019397 if (_n == 0 || p->error_indicator) {
19398 PyMem_Free(_children);
19399 D(p->level--);
19400 return NULL;
19401 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019402 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019403 if (!_seq) {
19404 PyMem_Free(_children);
19405 p->error_indicator = 1;
19406 PyErr_NoMemory();
19407 D(p->level--);
19408 return NULL;
19409 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019410 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019411 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019412 _PyPegen_insert_memo(p, _start_mark, _loop1_61_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019413 D(p->level--);
19414 return _seq;
19415}
19416
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019417// _loop0_62: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019418static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019419_loop0_62_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019420{
19421 D(p->level++);
19422 if (p->error_indicator) {
19423 D(p->level--);
19424 return NULL;
19425 }
19426 void *_res = NULL;
19427 int _mark = p->mark;
19428 int _start_mark = p->mark;
19429 void **_children = PyMem_Malloc(sizeof(void *));
19430 if (!_children) {
19431 p->error_indicator = 1;
19432 PyErr_NoMemory();
19433 D(p->level--);
19434 return NULL;
19435 }
19436 ssize_t _children_capacity = 1;
19437 ssize_t _n = 0;
19438 { // param_no_default
19439 if (p->error_indicator) {
19440 D(p->level--);
19441 return NULL;
19442 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019443 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 +010019444 arg_ty param_no_default_var;
19445 while (
19446 (param_no_default_var = param_no_default_rule(p)) // param_no_default
19447 )
19448 {
19449 _res = param_no_default_var;
19450 if (_n == _children_capacity) {
19451 _children_capacity *= 2;
19452 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19453 if (!_new_children) {
19454 p->error_indicator = 1;
19455 PyErr_NoMemory();
19456 D(p->level--);
19457 return NULL;
19458 }
19459 _children = _new_children;
19460 }
19461 _children[_n++] = _res;
19462 _mark = p->mark;
19463 }
19464 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019465 D(fprintf(stderr, "%*c%s _loop0_62[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019466 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
19467 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019468 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019469 if (!_seq) {
19470 PyMem_Free(_children);
19471 p->error_indicator = 1;
19472 PyErr_NoMemory();
19473 D(p->level--);
19474 return NULL;
19475 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019476 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019477 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019478 _PyPegen_insert_memo(p, _start_mark, _loop0_62_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019479 D(p->level--);
19480 return _seq;
19481}
19482
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019483// _loop1_63: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019484static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019485_loop1_63_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019486{
19487 D(p->level++);
19488 if (p->error_indicator) {
19489 D(p->level--);
19490 return NULL;
19491 }
19492 void *_res = NULL;
19493 int _mark = p->mark;
19494 int _start_mark = p->mark;
19495 void **_children = PyMem_Malloc(sizeof(void *));
19496 if (!_children) {
19497 p->error_indicator = 1;
19498 PyErr_NoMemory();
19499 D(p->level--);
19500 return NULL;
19501 }
19502 ssize_t _children_capacity = 1;
19503 ssize_t _n = 0;
19504 { // param_with_default
19505 if (p->error_indicator) {
19506 D(p->level--);
19507 return NULL;
19508 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019509 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 +010019510 NameDefaultPair* param_with_default_var;
19511 while (
19512 (param_with_default_var = param_with_default_rule(p)) // param_with_default
19513 )
19514 {
19515 _res = param_with_default_var;
19516 if (_n == _children_capacity) {
19517 _children_capacity *= 2;
19518 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19519 if (!_new_children) {
19520 p->error_indicator = 1;
19521 PyErr_NoMemory();
19522 D(p->level--);
19523 return NULL;
19524 }
19525 _children = _new_children;
19526 }
19527 _children[_n++] = _res;
19528 _mark = p->mark;
19529 }
19530 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019531 D(fprintf(stderr, "%*c%s _loop1_63[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019532 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
19533 }
19534 if (_n == 0 || p->error_indicator) {
19535 PyMem_Free(_children);
19536 D(p->level--);
19537 return NULL;
19538 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019539 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019540 if (!_seq) {
19541 PyMem_Free(_children);
19542 p->error_indicator = 1;
19543 PyErr_NoMemory();
19544 D(p->level--);
19545 return NULL;
19546 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019547 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019548 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019549 _PyPegen_insert_memo(p, _start_mark, _loop1_63_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019550 D(p->level--);
19551 return _seq;
19552}
19553
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019554// _loop0_64: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019555static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019556_loop0_64_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019557{
19558 D(p->level++);
19559 if (p->error_indicator) {
19560 D(p->level--);
19561 return NULL;
19562 }
19563 void *_res = NULL;
19564 int _mark = p->mark;
19565 int _start_mark = p->mark;
19566 void **_children = PyMem_Malloc(sizeof(void *));
19567 if (!_children) {
19568 p->error_indicator = 1;
19569 PyErr_NoMemory();
19570 D(p->level--);
19571 return NULL;
19572 }
19573 ssize_t _children_capacity = 1;
19574 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019575 { // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019576 if (p->error_indicator) {
19577 D(p->level--);
19578 return NULL;
19579 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019580 D(fprintf(stderr, "%*c> _loop0_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
19581 arg_ty param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019582 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019583 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019584 )
19585 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019586 _res = param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019587 if (_n == _children_capacity) {
19588 _children_capacity *= 2;
19589 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19590 if (!_new_children) {
19591 p->error_indicator = 1;
19592 PyErr_NoMemory();
19593 D(p->level--);
19594 return NULL;
19595 }
19596 _children = _new_children;
19597 }
19598 _children[_n++] = _res;
19599 _mark = p->mark;
19600 }
19601 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019602 D(fprintf(stderr, "%*c%s _loop0_64[%d-%d]: %s failed!\n", p->level, ' ',
19603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019604 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019605 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019606 if (!_seq) {
19607 PyMem_Free(_children);
19608 p->error_indicator = 1;
19609 PyErr_NoMemory();
19610 D(p->level--);
19611 return NULL;
19612 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019613 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019614 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019615 _PyPegen_insert_memo(p, _start_mark, _loop0_64_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019616 D(p->level--);
19617 return _seq;
19618}
19619
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019620// _loop1_65: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019621static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019622_loop1_65_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019623{
19624 D(p->level++);
19625 if (p->error_indicator) {
19626 D(p->level--);
19627 return NULL;
19628 }
19629 void *_res = NULL;
19630 int _mark = p->mark;
19631 int _start_mark = p->mark;
19632 void **_children = PyMem_Malloc(sizeof(void *));
19633 if (!_children) {
19634 p->error_indicator = 1;
19635 PyErr_NoMemory();
19636 D(p->level--);
19637 return NULL;
19638 }
19639 ssize_t _children_capacity = 1;
19640 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019641 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019642 if (p->error_indicator) {
19643 D(p->level--);
19644 return NULL;
19645 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019646 D(fprintf(stderr, "%*c> _loop1_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
19647 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019648 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019649 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019650 )
19651 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019652 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019653 if (_n == _children_capacity) {
19654 _children_capacity *= 2;
19655 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19656 if (!_new_children) {
19657 p->error_indicator = 1;
19658 PyErr_NoMemory();
19659 D(p->level--);
19660 return NULL;
19661 }
19662 _children = _new_children;
19663 }
19664 _children[_n++] = _res;
19665 _mark = p->mark;
19666 }
19667 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019668 D(fprintf(stderr, "%*c%s _loop1_65[%d-%d]: %s failed!\n", p->level, ' ',
19669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019670 }
19671 if (_n == 0 || p->error_indicator) {
19672 PyMem_Free(_children);
19673 D(p->level--);
19674 return NULL;
19675 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019676 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019677 if (!_seq) {
19678 PyMem_Free(_children);
19679 p->error_indicator = 1;
19680 PyErr_NoMemory();
19681 D(p->level--);
19682 return NULL;
19683 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019684 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019685 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019686 _PyPegen_insert_memo(p, _start_mark, _loop1_65_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019687 D(p->level--);
19688 return _seq;
19689}
19690
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019691// _loop0_66: param_maybe_default
19692static asdl_seq *
19693_loop0_66_rule(Parser *p)
19694{
19695 D(p->level++);
19696 if (p->error_indicator) {
19697 D(p->level--);
19698 return NULL;
19699 }
19700 void *_res = NULL;
19701 int _mark = p->mark;
19702 int _start_mark = p->mark;
19703 void **_children = PyMem_Malloc(sizeof(void *));
19704 if (!_children) {
19705 p->error_indicator = 1;
19706 PyErr_NoMemory();
19707 D(p->level--);
19708 return NULL;
19709 }
19710 ssize_t _children_capacity = 1;
19711 ssize_t _n = 0;
19712 { // param_maybe_default
19713 if (p->error_indicator) {
19714 D(p->level--);
19715 return NULL;
19716 }
19717 D(fprintf(stderr, "%*c> _loop0_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
19718 NameDefaultPair* param_maybe_default_var;
19719 while (
19720 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
19721 )
19722 {
19723 _res = param_maybe_default_var;
19724 if (_n == _children_capacity) {
19725 _children_capacity *= 2;
19726 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19727 if (!_new_children) {
19728 p->error_indicator = 1;
19729 PyErr_NoMemory();
19730 D(p->level--);
19731 return NULL;
19732 }
19733 _children = _new_children;
19734 }
19735 _children[_n++] = _res;
19736 _mark = p->mark;
19737 }
19738 p->mark = _mark;
19739 D(fprintf(stderr, "%*c%s _loop0_66[%d-%d]: %s failed!\n", p->level, ' ',
19740 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
19741 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019742 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019743 if (!_seq) {
19744 PyMem_Free(_children);
19745 p->error_indicator = 1;
19746 PyErr_NoMemory();
19747 D(p->level--);
19748 return NULL;
19749 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019750 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019751 PyMem_Free(_children);
19752 _PyPegen_insert_memo(p, _start_mark, _loop0_66_type, _seq);
19753 D(p->level--);
19754 return _seq;
19755}
19756
19757// _loop1_67: param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019758static asdl_seq *
19759_loop1_67_rule(Parser *p)
19760{
19761 D(p->level++);
19762 if (p->error_indicator) {
19763 D(p->level--);
19764 return NULL;
19765 }
19766 void *_res = NULL;
19767 int _mark = p->mark;
19768 int _start_mark = p->mark;
19769 void **_children = PyMem_Malloc(sizeof(void *));
19770 if (!_children) {
19771 p->error_indicator = 1;
19772 PyErr_NoMemory();
19773 D(p->level--);
19774 return NULL;
19775 }
19776 ssize_t _children_capacity = 1;
19777 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019778 { // param_maybe_default
19779 if (p->error_indicator) {
19780 D(p->level--);
19781 return NULL;
19782 }
19783 D(fprintf(stderr, "%*c> _loop1_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
19784 NameDefaultPair* param_maybe_default_var;
19785 while (
19786 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
19787 )
19788 {
19789 _res = param_maybe_default_var;
19790 if (_n == _children_capacity) {
19791 _children_capacity *= 2;
19792 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19793 if (!_new_children) {
19794 p->error_indicator = 1;
19795 PyErr_NoMemory();
19796 D(p->level--);
19797 return NULL;
19798 }
19799 _children = _new_children;
19800 }
19801 _children[_n++] = _res;
19802 _mark = p->mark;
19803 }
19804 p->mark = _mark;
19805 D(fprintf(stderr, "%*c%s _loop1_67[%d-%d]: %s failed!\n", p->level, ' ',
19806 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
19807 }
19808 if (_n == 0 || p->error_indicator) {
19809 PyMem_Free(_children);
19810 D(p->level--);
19811 return NULL;
19812 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019813 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019814 if (!_seq) {
19815 PyMem_Free(_children);
19816 p->error_indicator = 1;
19817 PyErr_NoMemory();
19818 D(p->level--);
19819 return NULL;
19820 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019821 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019822 PyMem_Free(_children);
19823 _PyPegen_insert_memo(p, _start_mark, _loop1_67_type, _seq);
19824 D(p->level--);
19825 return _seq;
19826}
19827
19828// _loop1_68: ('@' named_expression NEWLINE)
19829static asdl_seq *
19830_loop1_68_rule(Parser *p)
19831{
19832 D(p->level++);
19833 if (p->error_indicator) {
19834 D(p->level--);
19835 return NULL;
19836 }
19837 void *_res = NULL;
19838 int _mark = p->mark;
19839 int _start_mark = p->mark;
19840 void **_children = PyMem_Malloc(sizeof(void *));
19841 if (!_children) {
19842 p->error_indicator = 1;
19843 PyErr_NoMemory();
19844 D(p->level--);
19845 return NULL;
19846 }
19847 ssize_t _children_capacity = 1;
19848 ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019849 { // ('@' named_expression NEWLINE)
19850 if (p->error_indicator) {
19851 D(p->level--);
19852 return NULL;
19853 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019854 D(fprintf(stderr, "%*c> _loop1_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020019855 void *_tmp_141_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019856 while (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020019857 (_tmp_141_var = _tmp_141_rule(p)) // '@' named_expression NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019858 )
19859 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020019860 _res = _tmp_141_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019861 if (_n == _children_capacity) {
19862 _children_capacity *= 2;
19863 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19864 if (!_new_children) {
19865 p->error_indicator = 1;
19866 PyErr_NoMemory();
19867 D(p->level--);
19868 return NULL;
19869 }
19870 _children = _new_children;
19871 }
19872 _children[_n++] = _res;
19873 _mark = p->mark;
19874 }
19875 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019876 D(fprintf(stderr, "%*c%s _loop1_68[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019877 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
19878 }
19879 if (_n == 0 || p->error_indicator) {
19880 PyMem_Free(_children);
19881 D(p->level--);
19882 return NULL;
19883 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019884 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019885 if (!_seq) {
19886 PyMem_Free(_children);
19887 p->error_indicator = 1;
19888 PyErr_NoMemory();
19889 D(p->level--);
19890 return NULL;
19891 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019892 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019893 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019894 _PyPegen_insert_memo(p, _start_mark, _loop1_68_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019895 D(p->level--);
19896 return _seq;
19897}
19898
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019899// _tmp_69: '(' arguments? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019900static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019901_tmp_69_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019902{
19903 D(p->level++);
19904 if (p->error_indicator) {
19905 D(p->level--);
19906 return NULL;
19907 }
19908 void * _res = NULL;
19909 int _mark = p->mark;
19910 { // '(' arguments? ')'
19911 if (p->error_indicator) {
19912 D(p->level--);
19913 return NULL;
19914 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019915 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019916 Token * _literal;
19917 Token * _literal_1;
19918 void *z;
19919 if (
19920 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19921 &&
19922 (z = arguments_rule(p), 1) // arguments?
19923 &&
19924 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19925 )
19926 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019927 D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019928 _res = z;
19929 if (_res == NULL && PyErr_Occurred()) {
19930 p->error_indicator = 1;
19931 D(p->level--);
19932 return NULL;
19933 }
19934 goto done;
19935 }
19936 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019937 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019938 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
19939 }
19940 _res = NULL;
19941 done:
19942 D(p->level--);
19943 return _res;
19944}
19945
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019946// _loop1_70: (',' star_expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019947static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019948_loop1_70_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019949{
19950 D(p->level++);
19951 if (p->error_indicator) {
19952 D(p->level--);
19953 return NULL;
19954 }
19955 void *_res = NULL;
19956 int _mark = p->mark;
19957 int _start_mark = p->mark;
19958 void **_children = PyMem_Malloc(sizeof(void *));
19959 if (!_children) {
19960 p->error_indicator = 1;
19961 PyErr_NoMemory();
19962 D(p->level--);
19963 return NULL;
19964 }
19965 ssize_t _children_capacity = 1;
19966 ssize_t _n = 0;
19967 { // (',' star_expression)
19968 if (p->error_indicator) {
19969 D(p->level--);
19970 return NULL;
19971 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019972 D(fprintf(stderr, "%*c> _loop1_70[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020019973 void *_tmp_142_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019974 while (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020019975 (_tmp_142_var = _tmp_142_rule(p)) // ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019976 )
19977 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020019978 _res = _tmp_142_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019979 if (_n == _children_capacity) {
19980 _children_capacity *= 2;
19981 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19982 if (!_new_children) {
19983 p->error_indicator = 1;
19984 PyErr_NoMemory();
19985 D(p->level--);
19986 return NULL;
19987 }
19988 _children = _new_children;
19989 }
19990 _children[_n++] = _res;
19991 _mark = p->mark;
19992 }
19993 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019994 D(fprintf(stderr, "%*c%s _loop1_70[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
19996 }
19997 if (_n == 0 || p->error_indicator) {
19998 PyMem_Free(_children);
19999 D(p->level--);
20000 return NULL;
20001 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020002 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020003 if (!_seq) {
20004 PyMem_Free(_children);
20005 p->error_indicator = 1;
20006 PyErr_NoMemory();
20007 D(p->level--);
20008 return NULL;
20009 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020010 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020011 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020012 _PyPegen_insert_memo(p, _start_mark, _loop1_70_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020013 D(p->level--);
20014 return _seq;
20015}
20016
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020017// _loop0_72: ',' star_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020018static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020019_loop0_72_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020020{
20021 D(p->level++);
20022 if (p->error_indicator) {
20023 D(p->level--);
20024 return NULL;
20025 }
20026 void *_res = NULL;
20027 int _mark = p->mark;
20028 int _start_mark = p->mark;
20029 void **_children = PyMem_Malloc(sizeof(void *));
20030 if (!_children) {
20031 p->error_indicator = 1;
20032 PyErr_NoMemory();
20033 D(p->level--);
20034 return NULL;
20035 }
20036 ssize_t _children_capacity = 1;
20037 ssize_t _n = 0;
20038 { // ',' star_named_expression
20039 if (p->error_indicator) {
20040 D(p->level--);
20041 return NULL;
20042 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020043 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 +010020044 Token * _literal;
20045 expr_ty elem;
20046 while (
20047 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20048 &&
20049 (elem = star_named_expression_rule(p)) // star_named_expression
20050 )
20051 {
20052 _res = elem;
20053 if (_res == NULL && PyErr_Occurred()) {
20054 p->error_indicator = 1;
20055 PyMem_Free(_children);
20056 D(p->level--);
20057 return NULL;
20058 }
20059 if (_n == _children_capacity) {
20060 _children_capacity *= 2;
20061 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20062 if (!_new_children) {
20063 p->error_indicator = 1;
20064 PyErr_NoMemory();
20065 D(p->level--);
20066 return NULL;
20067 }
20068 _children = _new_children;
20069 }
20070 _children[_n++] = _res;
20071 _mark = p->mark;
20072 }
20073 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020074 D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020075 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
20076 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020077 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020078 if (!_seq) {
20079 PyMem_Free(_children);
20080 p->error_indicator = 1;
20081 PyErr_NoMemory();
20082 D(p->level--);
20083 return NULL;
20084 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020085 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020086 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020087 _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020088 D(p->level--);
20089 return _seq;
20090}
20091
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020092// _gather_71: star_named_expression _loop0_72
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020093static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020094_gather_71_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020095{
20096 D(p->level++);
20097 if (p->error_indicator) {
20098 D(p->level--);
20099 return NULL;
20100 }
20101 asdl_seq * _res = NULL;
20102 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020103 { // star_named_expression _loop0_72
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020104 if (p->error_indicator) {
20105 D(p->level--);
20106 return NULL;
20107 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020108 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 +010020109 expr_ty elem;
20110 asdl_seq * seq;
20111 if (
20112 (elem = star_named_expression_rule(p)) // star_named_expression
20113 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020114 (seq = _loop0_72_rule(p)) // _loop0_72
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020115 )
20116 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020117 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 +010020118 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
20119 goto done;
20120 }
20121 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020122 D(fprintf(stderr, "%*c%s _gather_71[%d-%d]: %s failed!\n", p->level, ' ',
20123 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_72"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020124 }
20125 _res = NULL;
20126 done:
20127 D(p->level--);
20128 return _res;
20129}
20130
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020131// _loop1_73: (',' expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020132static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020133_loop1_73_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020134{
20135 D(p->level++);
20136 if (p->error_indicator) {
20137 D(p->level--);
20138 return NULL;
20139 }
20140 void *_res = NULL;
20141 int _mark = p->mark;
20142 int _start_mark = p->mark;
20143 void **_children = PyMem_Malloc(sizeof(void *));
20144 if (!_children) {
20145 p->error_indicator = 1;
20146 PyErr_NoMemory();
20147 D(p->level--);
20148 return NULL;
20149 }
20150 ssize_t _children_capacity = 1;
20151 ssize_t _n = 0;
20152 { // (',' expression)
20153 if (p->error_indicator) {
20154 D(p->level--);
20155 return NULL;
20156 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020157 D(fprintf(stderr, "%*c> _loop1_73[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020020158 void *_tmp_143_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020159 while (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020020160 (_tmp_143_var = _tmp_143_rule(p)) // ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020161 )
20162 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020020163 _res = _tmp_143_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020164 if (_n == _children_capacity) {
20165 _children_capacity *= 2;
20166 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20167 if (!_new_children) {
20168 p->error_indicator = 1;
20169 PyErr_NoMemory();
20170 D(p->level--);
20171 return NULL;
20172 }
20173 _children = _new_children;
20174 }
20175 _children[_n++] = _res;
20176 _mark = p->mark;
20177 }
20178 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020179 D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020180 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
20181 }
20182 if (_n == 0 || p->error_indicator) {
20183 PyMem_Free(_children);
20184 D(p->level--);
20185 return NULL;
20186 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020187 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020188 if (!_seq) {
20189 PyMem_Free(_children);
20190 p->error_indicator = 1;
20191 PyErr_NoMemory();
20192 D(p->level--);
20193 return NULL;
20194 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020195 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020196 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020197 _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020198 D(p->level--);
20199 return _seq;
20200}
20201
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020202// _loop0_74: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020203static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020204_loop0_74_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020205{
20206 D(p->level++);
20207 if (p->error_indicator) {
20208 D(p->level--);
20209 return NULL;
20210 }
20211 void *_res = NULL;
20212 int _mark = p->mark;
20213 int _start_mark = p->mark;
20214 void **_children = PyMem_Malloc(sizeof(void *));
20215 if (!_children) {
20216 p->error_indicator = 1;
20217 PyErr_NoMemory();
20218 D(p->level--);
20219 return NULL;
20220 }
20221 ssize_t _children_capacity = 1;
20222 ssize_t _n = 0;
20223 { // lambda_param_no_default
20224 if (p->error_indicator) {
20225 D(p->level--);
20226 return NULL;
20227 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020228 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 +010020229 arg_ty lambda_param_no_default_var;
20230 while (
20231 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
20232 )
20233 {
20234 _res = lambda_param_no_default_var;
20235 if (_n == _children_capacity) {
20236 _children_capacity *= 2;
20237 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20238 if (!_new_children) {
20239 p->error_indicator = 1;
20240 PyErr_NoMemory();
20241 D(p->level--);
20242 return NULL;
20243 }
20244 _children = _new_children;
20245 }
20246 _children[_n++] = _res;
20247 _mark = p->mark;
20248 }
20249 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020250 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020251 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020252 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020253 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020254 if (!_seq) {
20255 PyMem_Free(_children);
20256 p->error_indicator = 1;
20257 PyErr_NoMemory();
20258 D(p->level--);
20259 return NULL;
20260 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020261 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020262 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020263 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020264 D(p->level--);
20265 return _seq;
20266}
20267
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020268// _loop0_75: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020269static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020270_loop0_75_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020271{
20272 D(p->level++);
20273 if (p->error_indicator) {
20274 D(p->level--);
20275 return NULL;
20276 }
20277 void *_res = NULL;
20278 int _mark = p->mark;
20279 int _start_mark = p->mark;
20280 void **_children = PyMem_Malloc(sizeof(void *));
20281 if (!_children) {
20282 p->error_indicator = 1;
20283 PyErr_NoMemory();
20284 D(p->level--);
20285 return NULL;
20286 }
20287 ssize_t _children_capacity = 1;
20288 ssize_t _n = 0;
20289 { // lambda_param_with_default
20290 if (p->error_indicator) {
20291 D(p->level--);
20292 return NULL;
20293 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020294 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 +010020295 NameDefaultPair* lambda_param_with_default_var;
20296 while (
20297 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20298 )
20299 {
20300 _res = lambda_param_with_default_var;
20301 if (_n == _children_capacity) {
20302 _children_capacity *= 2;
20303 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20304 if (!_new_children) {
20305 p->error_indicator = 1;
20306 PyErr_NoMemory();
20307 D(p->level--);
20308 return NULL;
20309 }
20310 _children = _new_children;
20311 }
20312 _children[_n++] = _res;
20313 _mark = p->mark;
20314 }
20315 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020316 D(fprintf(stderr, "%*c%s _loop0_75[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020317 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
20318 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020319 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020320 if (!_seq) {
20321 PyMem_Free(_children);
20322 p->error_indicator = 1;
20323 PyErr_NoMemory();
20324 D(p->level--);
20325 return NULL;
20326 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020327 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020328 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020329 _PyPegen_insert_memo(p, _start_mark, _loop0_75_type, _seq);
20330 D(p->level--);
20331 return _seq;
20332}
20333
20334// _loop0_76: lambda_param_with_default
20335static asdl_seq *
20336_loop0_76_rule(Parser *p)
20337{
20338 D(p->level++);
20339 if (p->error_indicator) {
20340 D(p->level--);
20341 return NULL;
20342 }
20343 void *_res = NULL;
20344 int _mark = p->mark;
20345 int _start_mark = p->mark;
20346 void **_children = PyMem_Malloc(sizeof(void *));
20347 if (!_children) {
20348 p->error_indicator = 1;
20349 PyErr_NoMemory();
20350 D(p->level--);
20351 return NULL;
20352 }
20353 ssize_t _children_capacity = 1;
20354 ssize_t _n = 0;
20355 { // lambda_param_with_default
20356 if (p->error_indicator) {
20357 D(p->level--);
20358 return NULL;
20359 }
20360 D(fprintf(stderr, "%*c> _loop0_76[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20361 NameDefaultPair* lambda_param_with_default_var;
20362 while (
20363 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20364 )
20365 {
20366 _res = lambda_param_with_default_var;
20367 if (_n == _children_capacity) {
20368 _children_capacity *= 2;
20369 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20370 if (!_new_children) {
20371 p->error_indicator = 1;
20372 PyErr_NoMemory();
20373 D(p->level--);
20374 return NULL;
20375 }
20376 _children = _new_children;
20377 }
20378 _children[_n++] = _res;
20379 _mark = p->mark;
20380 }
20381 p->mark = _mark;
20382 D(fprintf(stderr, "%*c%s _loop0_76[%d-%d]: %s failed!\n", p->level, ' ',
20383 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
20384 }
20385 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
20386 if (!_seq) {
20387 PyMem_Free(_children);
20388 p->error_indicator = 1;
20389 PyErr_NoMemory();
20390 D(p->level--);
20391 return NULL;
20392 }
20393 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
20394 PyMem_Free(_children);
20395 _PyPegen_insert_memo(p, _start_mark, _loop0_76_type, _seq);
20396 D(p->level--);
20397 return _seq;
20398}
20399
20400// _loop1_77: lambda_param_no_default
20401static asdl_seq *
20402_loop1_77_rule(Parser *p)
20403{
20404 D(p->level++);
20405 if (p->error_indicator) {
20406 D(p->level--);
20407 return NULL;
20408 }
20409 void *_res = NULL;
20410 int _mark = p->mark;
20411 int _start_mark = p->mark;
20412 void **_children = PyMem_Malloc(sizeof(void *));
20413 if (!_children) {
20414 p->error_indicator = 1;
20415 PyErr_NoMemory();
20416 D(p->level--);
20417 return NULL;
20418 }
20419 ssize_t _children_capacity = 1;
20420 ssize_t _n = 0;
20421 { // lambda_param_no_default
20422 if (p->error_indicator) {
20423 D(p->level--);
20424 return NULL;
20425 }
20426 D(fprintf(stderr, "%*c> _loop1_77[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
20427 arg_ty lambda_param_no_default_var;
20428 while (
20429 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
20430 )
20431 {
20432 _res = lambda_param_no_default_var;
20433 if (_n == _children_capacity) {
20434 _children_capacity *= 2;
20435 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20436 if (!_new_children) {
20437 p->error_indicator = 1;
20438 PyErr_NoMemory();
20439 D(p->level--);
20440 return NULL;
20441 }
20442 _children = _new_children;
20443 }
20444 _children[_n++] = _res;
20445 _mark = p->mark;
20446 }
20447 p->mark = _mark;
20448 D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
20449 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
20450 }
20451 if (_n == 0 || p->error_indicator) {
20452 PyMem_Free(_children);
20453 D(p->level--);
20454 return NULL;
20455 }
20456 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
20457 if (!_seq) {
20458 PyMem_Free(_children);
20459 p->error_indicator = 1;
20460 PyErr_NoMemory();
20461 D(p->level--);
20462 return NULL;
20463 }
20464 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
20465 PyMem_Free(_children);
20466 _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020467 D(p->level--);
20468 return _seq;
20469}
20470
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020471// _loop0_78: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020472static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020473_loop0_78_rule(Parser *p)
20474{
20475 D(p->level++);
20476 if (p->error_indicator) {
20477 D(p->level--);
20478 return NULL;
20479 }
20480 void *_res = NULL;
20481 int _mark = p->mark;
20482 int _start_mark = p->mark;
20483 void **_children = PyMem_Malloc(sizeof(void *));
20484 if (!_children) {
20485 p->error_indicator = 1;
20486 PyErr_NoMemory();
20487 D(p->level--);
20488 return NULL;
20489 }
20490 ssize_t _children_capacity = 1;
20491 ssize_t _n = 0;
20492 { // lambda_param_with_default
20493 if (p->error_indicator) {
20494 D(p->level--);
20495 return NULL;
20496 }
20497 D(fprintf(stderr, "%*c> _loop0_78[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20498 NameDefaultPair* lambda_param_with_default_var;
20499 while (
20500 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20501 )
20502 {
20503 _res = lambda_param_with_default_var;
20504 if (_n == _children_capacity) {
20505 _children_capacity *= 2;
20506 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20507 if (!_new_children) {
20508 p->error_indicator = 1;
20509 PyErr_NoMemory();
20510 D(p->level--);
20511 return NULL;
20512 }
20513 _children = _new_children;
20514 }
20515 _children[_n++] = _res;
20516 _mark = p->mark;
20517 }
20518 p->mark = _mark;
20519 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
20520 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
20521 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020522 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020523 if (!_seq) {
20524 PyMem_Free(_children);
20525 p->error_indicator = 1;
20526 PyErr_NoMemory();
20527 D(p->level--);
20528 return NULL;
20529 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020530 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020531 PyMem_Free(_children);
20532 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
20533 D(p->level--);
20534 return _seq;
20535}
20536
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020537// _loop1_79: lambda_param_with_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020538static asdl_seq *
20539_loop1_79_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020540{
20541 D(p->level++);
20542 if (p->error_indicator) {
20543 D(p->level--);
20544 return NULL;
20545 }
20546 void *_res = NULL;
20547 int _mark = p->mark;
20548 int _start_mark = p->mark;
20549 void **_children = PyMem_Malloc(sizeof(void *));
20550 if (!_children) {
20551 p->error_indicator = 1;
20552 PyErr_NoMemory();
20553 D(p->level--);
20554 return NULL;
20555 }
20556 ssize_t _children_capacity = 1;
20557 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020558 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020559 if (p->error_indicator) {
20560 D(p->level--);
20561 return NULL;
20562 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020563 D(fprintf(stderr, "%*c> _loop1_79[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20564 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020565 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020566 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020567 )
20568 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020569 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020570 if (_n == _children_capacity) {
20571 _children_capacity *= 2;
20572 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20573 if (!_new_children) {
20574 p->error_indicator = 1;
20575 PyErr_NoMemory();
20576 D(p->level--);
20577 return NULL;
20578 }
20579 _children = _new_children;
20580 }
20581 _children[_n++] = _res;
20582 _mark = p->mark;
20583 }
20584 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020585 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020586 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020587 }
20588 if (_n == 0 || p->error_indicator) {
20589 PyMem_Free(_children);
20590 D(p->level--);
20591 return NULL;
20592 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020593 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020594 if (!_seq) {
20595 PyMem_Free(_children);
20596 p->error_indicator = 1;
20597 PyErr_NoMemory();
20598 D(p->level--);
20599 return NULL;
20600 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020601 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020602 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020603 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020604 D(p->level--);
20605 return _seq;
20606}
20607
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020608// _loop1_80: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020609static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020610_loop1_80_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020611{
20612 D(p->level++);
20613 if (p->error_indicator) {
20614 D(p->level--);
20615 return NULL;
20616 }
20617 void *_res = NULL;
20618 int _mark = p->mark;
20619 int _start_mark = p->mark;
20620 void **_children = PyMem_Malloc(sizeof(void *));
20621 if (!_children) {
20622 p->error_indicator = 1;
20623 PyErr_NoMemory();
20624 D(p->level--);
20625 return NULL;
20626 }
20627 ssize_t _children_capacity = 1;
20628 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020629 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020630 if (p->error_indicator) {
20631 D(p->level--);
20632 return NULL;
20633 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020634 D(fprintf(stderr, "%*c> _loop1_80[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
20635 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020636 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020637 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020638 )
20639 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020640 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020641 if (_n == _children_capacity) {
20642 _children_capacity *= 2;
20643 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20644 if (!_new_children) {
20645 p->error_indicator = 1;
20646 PyErr_NoMemory();
20647 D(p->level--);
20648 return NULL;
20649 }
20650 _children = _new_children;
20651 }
20652 _children[_n++] = _res;
20653 _mark = p->mark;
20654 }
20655 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020656 D(fprintf(stderr, "%*c%s _loop1_80[%d-%d]: %s failed!\n", p->level, ' ',
20657 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
20658 }
20659 if (_n == 0 || p->error_indicator) {
20660 PyMem_Free(_children);
20661 D(p->level--);
20662 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020663 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020664 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020665 if (!_seq) {
20666 PyMem_Free(_children);
20667 p->error_indicator = 1;
20668 PyErr_NoMemory();
20669 D(p->level--);
20670 return NULL;
20671 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020672 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020673 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020674 _PyPegen_insert_memo(p, _start_mark, _loop1_80_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020675 D(p->level--);
20676 return _seq;
20677}
20678
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020679// _loop1_81: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020680static asdl_seq *
20681_loop1_81_rule(Parser *p)
20682{
20683 D(p->level++);
20684 if (p->error_indicator) {
20685 D(p->level--);
20686 return NULL;
20687 }
20688 void *_res = NULL;
20689 int _mark = p->mark;
20690 int _start_mark = p->mark;
20691 void **_children = PyMem_Malloc(sizeof(void *));
20692 if (!_children) {
20693 p->error_indicator = 1;
20694 PyErr_NoMemory();
20695 D(p->level--);
20696 return NULL;
20697 }
20698 ssize_t _children_capacity = 1;
20699 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020700 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020701 if (p->error_indicator) {
20702 D(p->level--);
20703 return NULL;
20704 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020705 D(fprintf(stderr, "%*c> _loop1_81[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
20706 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020707 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020708 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020709 )
20710 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020711 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020712 if (_n == _children_capacity) {
20713 _children_capacity *= 2;
20714 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20715 if (!_new_children) {
20716 p->error_indicator = 1;
20717 PyErr_NoMemory();
20718 D(p->level--);
20719 return NULL;
20720 }
20721 _children = _new_children;
20722 }
20723 _children[_n++] = _res;
20724 _mark = p->mark;
20725 }
20726 p->mark = _mark;
20727 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020728 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020729 }
20730 if (_n == 0 || p->error_indicator) {
20731 PyMem_Free(_children);
20732 D(p->level--);
20733 return NULL;
20734 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020735 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020736 if (!_seq) {
20737 PyMem_Free(_children);
20738 p->error_indicator = 1;
20739 PyErr_NoMemory();
20740 D(p->level--);
20741 return NULL;
20742 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020743 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020744 PyMem_Free(_children);
20745 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
20746 D(p->level--);
20747 return _seq;
20748}
20749
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020750// _loop0_82: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020751static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020752_loop0_82_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020753{
20754 D(p->level++);
20755 if (p->error_indicator) {
20756 D(p->level--);
20757 return NULL;
20758 }
20759 void *_res = NULL;
20760 int _mark = p->mark;
20761 int _start_mark = p->mark;
20762 void **_children = PyMem_Malloc(sizeof(void *));
20763 if (!_children) {
20764 p->error_indicator = 1;
20765 PyErr_NoMemory();
20766 D(p->level--);
20767 return NULL;
20768 }
20769 ssize_t _children_capacity = 1;
20770 ssize_t _n = 0;
20771 { // lambda_param_no_default
20772 if (p->error_indicator) {
20773 D(p->level--);
20774 return NULL;
20775 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020776 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 +010020777 arg_ty lambda_param_no_default_var;
20778 while (
20779 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
20780 )
20781 {
20782 _res = lambda_param_no_default_var;
20783 if (_n == _children_capacity) {
20784 _children_capacity *= 2;
20785 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20786 if (!_new_children) {
20787 p->error_indicator = 1;
20788 PyErr_NoMemory();
20789 D(p->level--);
20790 return NULL;
20791 }
20792 _children = _new_children;
20793 }
20794 _children[_n++] = _res;
20795 _mark = p->mark;
20796 }
20797 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020798 D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
20800 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020801 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020802 if (!_seq) {
20803 PyMem_Free(_children);
20804 p->error_indicator = 1;
20805 PyErr_NoMemory();
20806 D(p->level--);
20807 return NULL;
20808 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020809 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020810 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020811 _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020812 D(p->level--);
20813 return _seq;
20814}
20815
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020816// _loop1_83: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020817static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020818_loop1_83_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020819{
20820 D(p->level++);
20821 if (p->error_indicator) {
20822 D(p->level--);
20823 return NULL;
20824 }
20825 void *_res = NULL;
20826 int _mark = p->mark;
20827 int _start_mark = p->mark;
20828 void **_children = PyMem_Malloc(sizeof(void *));
20829 if (!_children) {
20830 p->error_indicator = 1;
20831 PyErr_NoMemory();
20832 D(p->level--);
20833 return NULL;
20834 }
20835 ssize_t _children_capacity = 1;
20836 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020837 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020838 if (p->error_indicator) {
20839 D(p->level--);
20840 return NULL;
20841 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020842 D(fprintf(stderr, "%*c> _loop1_83[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20843 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020844 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020845 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020846 )
20847 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020848 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020849 if (_n == _children_capacity) {
20850 _children_capacity *= 2;
20851 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20852 if (!_new_children) {
20853 p->error_indicator = 1;
20854 PyErr_NoMemory();
20855 D(p->level--);
20856 return NULL;
20857 }
20858 _children = _new_children;
20859 }
20860 _children[_n++] = _res;
20861 _mark = p->mark;
20862 }
20863 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020864 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020866 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020867 if (_n == 0 || p->error_indicator) {
20868 PyMem_Free(_children);
20869 D(p->level--);
20870 return NULL;
20871 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020872 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020873 if (!_seq) {
20874 PyMem_Free(_children);
20875 p->error_indicator = 1;
20876 PyErr_NoMemory();
20877 D(p->level--);
20878 return NULL;
20879 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020880 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020881 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020882 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020883 D(p->level--);
20884 return _seq;
20885}
20886
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020887// _loop0_84: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020888static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020889_loop0_84_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020890{
20891 D(p->level++);
20892 if (p->error_indicator) {
20893 D(p->level--);
20894 return NULL;
20895 }
20896 void *_res = NULL;
20897 int _mark = p->mark;
20898 int _start_mark = p->mark;
20899 void **_children = PyMem_Malloc(sizeof(void *));
20900 if (!_children) {
20901 p->error_indicator = 1;
20902 PyErr_NoMemory();
20903 D(p->level--);
20904 return NULL;
20905 }
20906 ssize_t _children_capacity = 1;
20907 ssize_t _n = 0;
20908 { // lambda_param_no_default
20909 if (p->error_indicator) {
20910 D(p->level--);
20911 return NULL;
20912 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020913 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 +010020914 arg_ty lambda_param_no_default_var;
20915 while (
20916 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
20917 )
20918 {
20919 _res = lambda_param_no_default_var;
20920 if (_n == _children_capacity) {
20921 _children_capacity *= 2;
20922 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20923 if (!_new_children) {
20924 p->error_indicator = 1;
20925 PyErr_NoMemory();
20926 D(p->level--);
20927 return NULL;
20928 }
20929 _children = _new_children;
20930 }
20931 _children[_n++] = _res;
20932 _mark = p->mark;
20933 }
20934 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020935 D(fprintf(stderr, "%*c%s _loop0_84[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020936 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
20937 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020938 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020939 if (!_seq) {
20940 PyMem_Free(_children);
20941 p->error_indicator = 1;
20942 PyErr_NoMemory();
20943 D(p->level--);
20944 return NULL;
20945 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020946 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020947 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020948 _PyPegen_insert_memo(p, _start_mark, _loop0_84_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020949 D(p->level--);
20950 return _seq;
20951}
20952
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020953// _loop1_85: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020954static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020955_loop1_85_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020956{
20957 D(p->level++);
20958 if (p->error_indicator) {
20959 D(p->level--);
20960 return NULL;
20961 }
20962 void *_res = NULL;
20963 int _mark = p->mark;
20964 int _start_mark = p->mark;
20965 void **_children = PyMem_Malloc(sizeof(void *));
20966 if (!_children) {
20967 p->error_indicator = 1;
20968 PyErr_NoMemory();
20969 D(p->level--);
20970 return NULL;
20971 }
20972 ssize_t _children_capacity = 1;
20973 ssize_t _n = 0;
20974 { // lambda_param_with_default
20975 if (p->error_indicator) {
20976 D(p->level--);
20977 return NULL;
20978 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020979 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 +010020980 NameDefaultPair* lambda_param_with_default_var;
20981 while (
20982 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20983 )
20984 {
20985 _res = lambda_param_with_default_var;
20986 if (_n == _children_capacity) {
20987 _children_capacity *= 2;
20988 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20989 if (!_new_children) {
20990 p->error_indicator = 1;
20991 PyErr_NoMemory();
20992 D(p->level--);
20993 return NULL;
20994 }
20995 _children = _new_children;
20996 }
20997 _children[_n++] = _res;
20998 _mark = p->mark;
20999 }
21000 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021001 D(fprintf(stderr, "%*c%s _loop1_85[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021002 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
21003 }
21004 if (_n == 0 || p->error_indicator) {
21005 PyMem_Free(_children);
21006 D(p->level--);
21007 return NULL;
21008 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021009 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021010 if (!_seq) {
21011 PyMem_Free(_children);
21012 p->error_indicator = 1;
21013 PyErr_NoMemory();
21014 D(p->level--);
21015 return NULL;
21016 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021017 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021018 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021019 _PyPegen_insert_memo(p, _start_mark, _loop1_85_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021020 D(p->level--);
21021 return _seq;
21022}
21023
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021024// _loop0_86: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021025static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021026_loop0_86_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021027{
21028 D(p->level++);
21029 if (p->error_indicator) {
21030 D(p->level--);
21031 return NULL;
21032 }
21033 void *_res = NULL;
21034 int _mark = p->mark;
21035 int _start_mark = p->mark;
21036 void **_children = PyMem_Malloc(sizeof(void *));
21037 if (!_children) {
21038 p->error_indicator = 1;
21039 PyErr_NoMemory();
21040 D(p->level--);
21041 return NULL;
21042 }
21043 ssize_t _children_capacity = 1;
21044 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021045 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021046 if (p->error_indicator) {
21047 D(p->level--);
21048 return NULL;
21049 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021050 D(fprintf(stderr, "%*c> _loop0_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
21051 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021052 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021053 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021054 )
21055 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021056 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021057 if (_n == _children_capacity) {
21058 _children_capacity *= 2;
21059 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21060 if (!_new_children) {
21061 p->error_indicator = 1;
21062 PyErr_NoMemory();
21063 D(p->level--);
21064 return NULL;
21065 }
21066 _children = _new_children;
21067 }
21068 _children[_n++] = _res;
21069 _mark = p->mark;
21070 }
21071 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021072 D(fprintf(stderr, "%*c%s _loop0_86[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021073 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021074 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021075 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021076 if (!_seq) {
21077 PyMem_Free(_children);
21078 p->error_indicator = 1;
21079 PyErr_NoMemory();
21080 D(p->level--);
21081 return NULL;
21082 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021083 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021084 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021085 _PyPegen_insert_memo(p, _start_mark, _loop0_86_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021086 D(p->level--);
21087 return _seq;
21088}
21089
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021090// _loop1_87: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021091static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021092_loop1_87_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021093{
21094 D(p->level++);
21095 if (p->error_indicator) {
21096 D(p->level--);
21097 return NULL;
21098 }
21099 void *_res = NULL;
21100 int _mark = p->mark;
21101 int _start_mark = p->mark;
21102 void **_children = PyMem_Malloc(sizeof(void *));
21103 if (!_children) {
21104 p->error_indicator = 1;
21105 PyErr_NoMemory();
21106 D(p->level--);
21107 return NULL;
21108 }
21109 ssize_t _children_capacity = 1;
21110 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021111 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021112 if (p->error_indicator) {
21113 D(p->level--);
21114 return NULL;
21115 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021116 D(fprintf(stderr, "%*c> _loop1_87[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
21117 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021118 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021119 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021120 )
21121 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021122 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021123 if (_n == _children_capacity) {
21124 _children_capacity *= 2;
21125 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21126 if (!_new_children) {
21127 p->error_indicator = 1;
21128 PyErr_NoMemory();
21129 D(p->level--);
21130 return NULL;
21131 }
21132 _children = _new_children;
21133 }
21134 _children[_n++] = _res;
21135 _mark = p->mark;
21136 }
21137 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021138 D(fprintf(stderr, "%*c%s _loop1_87[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021140 }
21141 if (_n == 0 || p->error_indicator) {
21142 PyMem_Free(_children);
21143 D(p->level--);
21144 return NULL;
21145 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021146 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021147 if (!_seq) {
21148 PyMem_Free(_children);
21149 p->error_indicator = 1;
21150 PyErr_NoMemory();
21151 D(p->level--);
21152 return NULL;
21153 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021154 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021155 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021156 _PyPegen_insert_memo(p, _start_mark, _loop1_87_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021157 D(p->level--);
21158 return _seq;
21159}
21160
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021161// _loop1_88: ('or' conjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021162static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021163_loop1_88_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021164{
21165 D(p->level++);
21166 if (p->error_indicator) {
21167 D(p->level--);
21168 return NULL;
21169 }
21170 void *_res = NULL;
21171 int _mark = p->mark;
21172 int _start_mark = p->mark;
21173 void **_children = PyMem_Malloc(sizeof(void *));
21174 if (!_children) {
21175 p->error_indicator = 1;
21176 PyErr_NoMemory();
21177 D(p->level--);
21178 return NULL;
21179 }
21180 ssize_t _children_capacity = 1;
21181 ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021182 { // ('or' conjunction)
21183 if (p->error_indicator) {
21184 D(p->level--);
21185 return NULL;
21186 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021187 D(fprintf(stderr, "%*c> _loop1_88[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020021188 void *_tmp_144_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021189 while (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020021190 (_tmp_144_var = _tmp_144_rule(p)) // 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021191 )
21192 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020021193 _res = _tmp_144_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021194 if (_n == _children_capacity) {
21195 _children_capacity *= 2;
21196 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21197 if (!_new_children) {
21198 p->error_indicator = 1;
21199 PyErr_NoMemory();
21200 D(p->level--);
21201 return NULL;
21202 }
21203 _children = _new_children;
21204 }
21205 _children[_n++] = _res;
21206 _mark = p->mark;
21207 }
21208 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021209 D(fprintf(stderr, "%*c%s _loop1_88[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021210 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
21211 }
21212 if (_n == 0 || p->error_indicator) {
21213 PyMem_Free(_children);
21214 D(p->level--);
21215 return NULL;
21216 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021217 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021218 if (!_seq) {
21219 PyMem_Free(_children);
21220 p->error_indicator = 1;
21221 PyErr_NoMemory();
21222 D(p->level--);
21223 return NULL;
21224 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021225 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021226 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021227 _PyPegen_insert_memo(p, _start_mark, _loop1_88_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021228 D(p->level--);
21229 return _seq;
21230}
21231
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021232// _loop1_89: ('and' inversion)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021233static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021234_loop1_89_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021235{
21236 D(p->level++);
21237 if (p->error_indicator) {
21238 D(p->level--);
21239 return NULL;
21240 }
21241 void *_res = NULL;
21242 int _mark = p->mark;
21243 int _start_mark = p->mark;
21244 void **_children = PyMem_Malloc(sizeof(void *));
21245 if (!_children) {
21246 p->error_indicator = 1;
21247 PyErr_NoMemory();
21248 D(p->level--);
21249 return NULL;
21250 }
21251 ssize_t _children_capacity = 1;
21252 ssize_t _n = 0;
21253 { // ('and' inversion)
21254 if (p->error_indicator) {
21255 D(p->level--);
21256 return NULL;
21257 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021258 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020021259 void *_tmp_145_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021260 while (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020021261 (_tmp_145_var = _tmp_145_rule(p)) // 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021262 )
21263 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020021264 _res = _tmp_145_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021265 if (_n == _children_capacity) {
21266 _children_capacity *= 2;
21267 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21268 if (!_new_children) {
21269 p->error_indicator = 1;
21270 PyErr_NoMemory();
21271 D(p->level--);
21272 return NULL;
21273 }
21274 _children = _new_children;
21275 }
21276 _children[_n++] = _res;
21277 _mark = p->mark;
21278 }
21279 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021280 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021281 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
21282 }
21283 if (_n == 0 || p->error_indicator) {
21284 PyMem_Free(_children);
21285 D(p->level--);
21286 return NULL;
21287 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021288 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021289 if (!_seq) {
21290 PyMem_Free(_children);
21291 p->error_indicator = 1;
21292 PyErr_NoMemory();
21293 D(p->level--);
21294 return NULL;
21295 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021296 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021297 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021298 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021299 D(p->level--);
21300 return _seq;
21301}
21302
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021303// _loop1_90: compare_op_bitwise_or_pair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021304static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021305_loop1_90_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021306{
21307 D(p->level++);
21308 if (p->error_indicator) {
21309 D(p->level--);
21310 return NULL;
21311 }
21312 void *_res = NULL;
21313 int _mark = p->mark;
21314 int _start_mark = p->mark;
21315 void **_children = PyMem_Malloc(sizeof(void *));
21316 if (!_children) {
21317 p->error_indicator = 1;
21318 PyErr_NoMemory();
21319 D(p->level--);
21320 return NULL;
21321 }
21322 ssize_t _children_capacity = 1;
21323 ssize_t _n = 0;
21324 { // compare_op_bitwise_or_pair
21325 if (p->error_indicator) {
21326 D(p->level--);
21327 return NULL;
21328 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021329 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 +010021330 CmpopExprPair* compare_op_bitwise_or_pair_var;
21331 while (
21332 (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
21333 )
21334 {
21335 _res = compare_op_bitwise_or_pair_var;
21336 if (_n == _children_capacity) {
21337 _children_capacity *= 2;
21338 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21339 if (!_new_children) {
21340 p->error_indicator = 1;
21341 PyErr_NoMemory();
21342 D(p->level--);
21343 return NULL;
21344 }
21345 _children = _new_children;
21346 }
21347 _children[_n++] = _res;
21348 _mark = p->mark;
21349 }
21350 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021351 D(fprintf(stderr, "%*c%s _loop1_90[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021352 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
21353 }
21354 if (_n == 0 || p->error_indicator) {
21355 PyMem_Free(_children);
21356 D(p->level--);
21357 return NULL;
21358 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021359 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021360 if (!_seq) {
21361 PyMem_Free(_children);
21362 p->error_indicator = 1;
21363 PyErr_NoMemory();
21364 D(p->level--);
21365 return NULL;
21366 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021367 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021368 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021369 _PyPegen_insert_memo(p, _start_mark, _loop1_90_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021370 D(p->level--);
21371 return _seq;
21372}
21373
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021374// _tmp_91: '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021375static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021376_tmp_91_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021377{
21378 D(p->level++);
21379 if (p->error_indicator) {
21380 D(p->level--);
21381 return NULL;
21382 }
21383 void * _res = NULL;
21384 int _mark = p->mark;
21385 { // '!='
21386 if (p->error_indicator) {
21387 D(p->level--);
21388 return NULL;
21389 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021390 D(fprintf(stderr, "%*c> _tmp_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021391 Token * tok;
21392 if (
21393 (tok = _PyPegen_expect_token(p, 28)) // token='!='
21394 )
21395 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021396 D(fprintf(stderr, "%*c+ _tmp_91[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo06f8c332020-10-30 23:48:42 +000021397 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021398 if (_res == NULL && PyErr_Occurred()) {
21399 p->error_indicator = 1;
21400 D(p->level--);
21401 return NULL;
21402 }
21403 goto done;
21404 }
21405 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021406 D(fprintf(stderr, "%*c%s _tmp_91[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021407 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
21408 }
21409 _res = NULL;
21410 done:
21411 D(p->level--);
21412 return _res;
21413}
21414
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021415// _loop0_93: ',' slice
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021416static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021417_loop0_93_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021418{
21419 D(p->level++);
21420 if (p->error_indicator) {
21421 D(p->level--);
21422 return NULL;
21423 }
21424 void *_res = NULL;
21425 int _mark = p->mark;
21426 int _start_mark = p->mark;
21427 void **_children = PyMem_Malloc(sizeof(void *));
21428 if (!_children) {
21429 p->error_indicator = 1;
21430 PyErr_NoMemory();
21431 D(p->level--);
21432 return NULL;
21433 }
21434 ssize_t _children_capacity = 1;
21435 ssize_t _n = 0;
21436 { // ',' slice
21437 if (p->error_indicator) {
21438 D(p->level--);
21439 return NULL;
21440 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021441 D(fprintf(stderr, "%*c> _loop0_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021442 Token * _literal;
21443 expr_ty elem;
21444 while (
21445 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21446 &&
21447 (elem = slice_rule(p)) // slice
21448 )
21449 {
21450 _res = elem;
21451 if (_res == NULL && PyErr_Occurred()) {
21452 p->error_indicator = 1;
21453 PyMem_Free(_children);
21454 D(p->level--);
21455 return NULL;
21456 }
21457 if (_n == _children_capacity) {
21458 _children_capacity *= 2;
21459 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21460 if (!_new_children) {
21461 p->error_indicator = 1;
21462 PyErr_NoMemory();
21463 D(p->level--);
21464 return NULL;
21465 }
21466 _children = _new_children;
21467 }
21468 _children[_n++] = _res;
21469 _mark = p->mark;
21470 }
21471 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021472 D(fprintf(stderr, "%*c%s _loop0_93[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021473 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
21474 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021475 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021476 if (!_seq) {
21477 PyMem_Free(_children);
21478 p->error_indicator = 1;
21479 PyErr_NoMemory();
21480 D(p->level--);
21481 return NULL;
21482 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021483 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021484 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021485 _PyPegen_insert_memo(p, _start_mark, _loop0_93_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021486 D(p->level--);
21487 return _seq;
21488}
21489
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021490// _gather_92: slice _loop0_93
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021491static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021492_gather_92_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021493{
21494 D(p->level++);
21495 if (p->error_indicator) {
21496 D(p->level--);
21497 return NULL;
21498 }
21499 asdl_seq * _res = NULL;
21500 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021501 { // slice _loop0_93
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021502 if (p->error_indicator) {
21503 D(p->level--);
21504 return NULL;
21505 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021506 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 +010021507 expr_ty elem;
21508 asdl_seq * seq;
21509 if (
21510 (elem = slice_rule(p)) // slice
21511 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021512 (seq = _loop0_93_rule(p)) // _loop0_93
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021513 )
21514 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021515 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 +010021516 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21517 goto done;
21518 }
21519 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021520 D(fprintf(stderr, "%*c%s _gather_92[%d-%d]: %s failed!\n", p->level, ' ',
21521 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_93"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021522 }
21523 _res = NULL;
21524 done:
21525 D(p->level--);
21526 return _res;
21527}
21528
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021529// _tmp_94: ':' expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021530static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021531_tmp_94_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021532{
21533 D(p->level++);
21534 if (p->error_indicator) {
21535 D(p->level--);
21536 return NULL;
21537 }
21538 void * _res = NULL;
21539 int _mark = p->mark;
21540 { // ':' expression?
21541 if (p->error_indicator) {
21542 D(p->level--);
21543 return NULL;
21544 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021545 D(fprintf(stderr, "%*c> _tmp_94[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021546 Token * _literal;
21547 void *d;
21548 if (
21549 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21550 &&
21551 (d = expression_rule(p), 1) // expression?
21552 )
21553 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021554 D(fprintf(stderr, "%*c+ _tmp_94[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021555 _res = d;
21556 if (_res == NULL && PyErr_Occurred()) {
21557 p->error_indicator = 1;
21558 D(p->level--);
21559 return NULL;
21560 }
21561 goto done;
21562 }
21563 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021564 D(fprintf(stderr, "%*c%s _tmp_94[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021565 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
21566 }
21567 _res = NULL;
21568 done:
21569 D(p->level--);
21570 return _res;
21571}
21572
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021573// _tmp_95: tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021574static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021575_tmp_95_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021576{
21577 D(p->level++);
21578 if (p->error_indicator) {
21579 D(p->level--);
21580 return NULL;
21581 }
21582 void * _res = NULL;
21583 int _mark = p->mark;
21584 { // tuple
21585 if (p->error_indicator) {
21586 D(p->level--);
21587 return NULL;
21588 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021589 D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021590 expr_ty tuple_var;
21591 if (
21592 (tuple_var = tuple_rule(p)) // tuple
21593 )
21594 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021595 D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021596 _res = tuple_var;
21597 goto done;
21598 }
21599 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021600 D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021601 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
21602 }
21603 { // group
21604 if (p->error_indicator) {
21605 D(p->level--);
21606 return NULL;
21607 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021608 D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021609 expr_ty group_var;
21610 if (
21611 (group_var = group_rule(p)) // group
21612 )
21613 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021614 D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021615 _res = group_var;
21616 goto done;
21617 }
21618 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021619 D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021620 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
21621 }
21622 { // genexp
21623 if (p->error_indicator) {
21624 D(p->level--);
21625 return NULL;
21626 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021627 D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021628 expr_ty genexp_var;
21629 if (
21630 (genexp_var = genexp_rule(p)) // genexp
21631 )
21632 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021633 D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021634 _res = genexp_var;
21635 goto done;
21636 }
21637 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021638 D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021639 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
21640 }
21641 _res = NULL;
21642 done:
21643 D(p->level--);
21644 return _res;
21645}
21646
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021647// _tmp_96: list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021648static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021649_tmp_96_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021650{
21651 D(p->level++);
21652 if (p->error_indicator) {
21653 D(p->level--);
21654 return NULL;
21655 }
21656 void * _res = NULL;
21657 int _mark = p->mark;
21658 { // list
21659 if (p->error_indicator) {
21660 D(p->level--);
21661 return NULL;
21662 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021663 D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021664 expr_ty list_var;
21665 if (
21666 (list_var = list_rule(p)) // list
21667 )
21668 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021669 D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021670 _res = list_var;
21671 goto done;
21672 }
21673 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021674 D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021675 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
21676 }
21677 { // listcomp
21678 if (p->error_indicator) {
21679 D(p->level--);
21680 return NULL;
21681 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021682 D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021683 expr_ty listcomp_var;
21684 if (
21685 (listcomp_var = listcomp_rule(p)) // listcomp
21686 )
21687 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021688 D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021689 _res = listcomp_var;
21690 goto done;
21691 }
21692 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021693 D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
21695 }
21696 _res = NULL;
21697 done:
21698 D(p->level--);
21699 return _res;
21700}
21701
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021702// _tmp_97: dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021703static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021704_tmp_97_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021705{
21706 D(p->level++);
21707 if (p->error_indicator) {
21708 D(p->level--);
21709 return NULL;
21710 }
21711 void * _res = NULL;
21712 int _mark = p->mark;
21713 { // dict
21714 if (p->error_indicator) {
21715 D(p->level--);
21716 return NULL;
21717 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021718 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021719 expr_ty dict_var;
21720 if (
21721 (dict_var = dict_rule(p)) // dict
21722 )
21723 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021724 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021725 _res = dict_var;
21726 goto done;
21727 }
21728 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021729 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021730 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
21731 }
21732 { // set
21733 if (p->error_indicator) {
21734 D(p->level--);
21735 return NULL;
21736 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021737 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021738 expr_ty set_var;
21739 if (
21740 (set_var = set_rule(p)) // set
21741 )
21742 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021743 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021744 _res = set_var;
21745 goto done;
21746 }
21747 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021748 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021749 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
21750 }
21751 { // dictcomp
21752 if (p->error_indicator) {
21753 D(p->level--);
21754 return NULL;
21755 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021756 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021757 expr_ty dictcomp_var;
21758 if (
21759 (dictcomp_var = dictcomp_rule(p)) // dictcomp
21760 )
21761 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021762 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021763 _res = dictcomp_var;
21764 goto done;
21765 }
21766 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021767 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021768 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
21769 }
21770 { // setcomp
21771 if (p->error_indicator) {
21772 D(p->level--);
21773 return NULL;
21774 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021775 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021776 expr_ty setcomp_var;
21777 if (
21778 (setcomp_var = setcomp_rule(p)) // setcomp
21779 )
21780 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021781 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021782 _res = setcomp_var;
21783 goto done;
21784 }
21785 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021786 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021787 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
21788 }
21789 _res = NULL;
21790 done:
21791 D(p->level--);
21792 return _res;
21793}
21794
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021795// _loop1_98: STRING
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021796static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021797_loop1_98_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021798{
21799 D(p->level++);
21800 if (p->error_indicator) {
21801 D(p->level--);
21802 return NULL;
21803 }
21804 void *_res = NULL;
21805 int _mark = p->mark;
21806 int _start_mark = p->mark;
21807 void **_children = PyMem_Malloc(sizeof(void *));
21808 if (!_children) {
21809 p->error_indicator = 1;
21810 PyErr_NoMemory();
21811 D(p->level--);
21812 return NULL;
21813 }
21814 ssize_t _children_capacity = 1;
21815 ssize_t _n = 0;
21816 { // STRING
21817 if (p->error_indicator) {
21818 D(p->level--);
21819 return NULL;
21820 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021821 D(fprintf(stderr, "%*c> _loop1_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021822 expr_ty string_var;
21823 while (
21824 (string_var = _PyPegen_string_token(p)) // STRING
21825 )
21826 {
21827 _res = string_var;
21828 if (_n == _children_capacity) {
21829 _children_capacity *= 2;
21830 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21831 if (!_new_children) {
21832 p->error_indicator = 1;
21833 PyErr_NoMemory();
21834 D(p->level--);
21835 return NULL;
21836 }
21837 _children = _new_children;
21838 }
21839 _children[_n++] = _res;
21840 _mark = p->mark;
21841 }
21842 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021843 D(fprintf(stderr, "%*c%s _loop1_98[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021844 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
21845 }
21846 if (_n == 0 || p->error_indicator) {
21847 PyMem_Free(_children);
21848 D(p->level--);
21849 return NULL;
21850 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021851 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021852 if (!_seq) {
21853 PyMem_Free(_children);
21854 p->error_indicator = 1;
21855 PyErr_NoMemory();
21856 D(p->level--);
21857 return NULL;
21858 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021859 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021860 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021861 _PyPegen_insert_memo(p, _start_mark, _loop1_98_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021862 D(p->level--);
21863 return _seq;
21864}
21865
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021866// _tmp_99: star_named_expression ',' star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021867static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021868_tmp_99_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021869{
21870 D(p->level++);
21871 if (p->error_indicator) {
21872 D(p->level--);
21873 return NULL;
21874 }
21875 void * _res = NULL;
21876 int _mark = p->mark;
21877 { // star_named_expression ',' star_named_expressions?
21878 if (p->error_indicator) {
21879 D(p->level--);
21880 return NULL;
21881 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021882 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 +010021883 Token * _literal;
21884 expr_ty y;
21885 void *z;
21886 if (
21887 (y = star_named_expression_rule(p)) // star_named_expression
21888 &&
21889 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21890 &&
21891 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
21892 )
21893 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021894 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 +010021895 _res = _PyPegen_seq_insert_in_front ( p , y , z );
21896 if (_res == NULL && PyErr_Occurred()) {
21897 p->error_indicator = 1;
21898 D(p->level--);
21899 return NULL;
21900 }
21901 goto done;
21902 }
21903 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021904 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021905 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
21906 }
21907 _res = NULL;
21908 done:
21909 D(p->level--);
21910 return _res;
21911}
21912
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021913// _tmp_100: yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021914static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021915_tmp_100_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021916{
21917 D(p->level++);
21918 if (p->error_indicator) {
21919 D(p->level--);
21920 return NULL;
21921 }
21922 void * _res = NULL;
21923 int _mark = p->mark;
21924 { // yield_expr
21925 if (p->error_indicator) {
21926 D(p->level--);
21927 return NULL;
21928 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021929 D(fprintf(stderr, "%*c> _tmp_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021930 expr_ty yield_expr_var;
21931 if (
21932 (yield_expr_var = yield_expr_rule(p)) // yield_expr
21933 )
21934 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021935 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 +010021936 _res = yield_expr_var;
21937 goto done;
21938 }
21939 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021940 D(fprintf(stderr, "%*c%s _tmp_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021941 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
21942 }
21943 { // named_expression
21944 if (p->error_indicator) {
21945 D(p->level--);
21946 return NULL;
21947 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021948 D(fprintf(stderr, "%*c> _tmp_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021949 expr_ty named_expression_var;
21950 if (
21951 (named_expression_var = named_expression_rule(p)) // named_expression
21952 )
21953 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021954 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 +010021955 _res = named_expression_var;
21956 goto done;
21957 }
21958 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021959 D(fprintf(stderr, "%*c%s _tmp_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021960 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
21961 }
21962 _res = NULL;
21963 done:
21964 D(p->level--);
21965 return _res;
21966}
21967
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021968// _loop0_102: ',' double_starred_kvpair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021969static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021970_loop0_102_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021971{
21972 D(p->level++);
21973 if (p->error_indicator) {
21974 D(p->level--);
21975 return NULL;
21976 }
21977 void *_res = NULL;
21978 int _mark = p->mark;
21979 int _start_mark = p->mark;
21980 void **_children = PyMem_Malloc(sizeof(void *));
21981 if (!_children) {
21982 p->error_indicator = 1;
21983 PyErr_NoMemory();
21984 D(p->level--);
21985 return NULL;
21986 }
21987 ssize_t _children_capacity = 1;
21988 ssize_t _n = 0;
21989 { // ',' double_starred_kvpair
21990 if (p->error_indicator) {
21991 D(p->level--);
21992 return NULL;
21993 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021994 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 +010021995 Token * _literal;
21996 KeyValuePair* elem;
21997 while (
21998 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21999 &&
22000 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
22001 )
22002 {
22003 _res = elem;
22004 if (_res == NULL && PyErr_Occurred()) {
22005 p->error_indicator = 1;
22006 PyMem_Free(_children);
22007 D(p->level--);
22008 return NULL;
22009 }
22010 if (_n == _children_capacity) {
22011 _children_capacity *= 2;
22012 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22013 if (!_new_children) {
22014 p->error_indicator = 1;
22015 PyErr_NoMemory();
22016 D(p->level--);
22017 return NULL;
22018 }
22019 _children = _new_children;
22020 }
22021 _children[_n++] = _res;
22022 _mark = p->mark;
22023 }
22024 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022025 D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022026 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
22027 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022028 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022029 if (!_seq) {
22030 PyMem_Free(_children);
22031 p->error_indicator = 1;
22032 PyErr_NoMemory();
22033 D(p->level--);
22034 return NULL;
22035 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022036 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022037 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022038 _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022039 D(p->level--);
22040 return _seq;
22041}
22042
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022043// _gather_101: double_starred_kvpair _loop0_102
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022044static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022045_gather_101_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022046{
22047 D(p->level++);
22048 if (p->error_indicator) {
22049 D(p->level--);
22050 return NULL;
22051 }
22052 asdl_seq * _res = NULL;
22053 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022054 { // double_starred_kvpair _loop0_102
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022055 if (p->error_indicator) {
22056 D(p->level--);
22057 return NULL;
22058 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022059 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 +010022060 KeyValuePair* elem;
22061 asdl_seq * seq;
22062 if (
22063 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
22064 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022065 (seq = _loop0_102_rule(p)) // _loop0_102
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022066 )
22067 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022068 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 +010022069 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22070 goto done;
22071 }
22072 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022073 D(fprintf(stderr, "%*c%s _gather_101[%d-%d]: %s failed!\n", p->level, ' ',
22074 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_102"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022075 }
22076 _res = NULL;
22077 done:
22078 D(p->level--);
22079 return _res;
22080}
22081
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022082// _loop1_103: for_if_clause
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022083static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022084_loop1_103_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022085{
22086 D(p->level++);
22087 if (p->error_indicator) {
22088 D(p->level--);
22089 return NULL;
22090 }
22091 void *_res = NULL;
22092 int _mark = p->mark;
22093 int _start_mark = p->mark;
22094 void **_children = PyMem_Malloc(sizeof(void *));
22095 if (!_children) {
22096 p->error_indicator = 1;
22097 PyErr_NoMemory();
22098 D(p->level--);
22099 return NULL;
22100 }
22101 ssize_t _children_capacity = 1;
22102 ssize_t _n = 0;
22103 { // for_if_clause
22104 if (p->error_indicator) {
22105 D(p->level--);
22106 return NULL;
22107 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022108 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 +010022109 comprehension_ty for_if_clause_var;
22110 while (
22111 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
22112 )
22113 {
22114 _res = for_if_clause_var;
22115 if (_n == _children_capacity) {
22116 _children_capacity *= 2;
22117 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22118 if (!_new_children) {
22119 p->error_indicator = 1;
22120 PyErr_NoMemory();
22121 D(p->level--);
22122 return NULL;
22123 }
22124 _children = _new_children;
22125 }
22126 _children[_n++] = _res;
22127 _mark = p->mark;
22128 }
22129 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022130 D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022131 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
22132 }
22133 if (_n == 0 || p->error_indicator) {
22134 PyMem_Free(_children);
22135 D(p->level--);
22136 return NULL;
22137 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022138 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022139 if (!_seq) {
22140 PyMem_Free(_children);
22141 p->error_indicator = 1;
22142 PyErr_NoMemory();
22143 D(p->level--);
22144 return NULL;
22145 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022146 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022147 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022148 _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022149 D(p->level--);
22150 return _seq;
22151}
22152
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022153// _loop0_104: ('if' disjunction)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022154static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022155_loop0_104_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022156{
22157 D(p->level++);
22158 if (p->error_indicator) {
22159 D(p->level--);
22160 return NULL;
22161 }
22162 void *_res = NULL;
22163 int _mark = p->mark;
22164 int _start_mark = p->mark;
22165 void **_children = PyMem_Malloc(sizeof(void *));
22166 if (!_children) {
22167 p->error_indicator = 1;
22168 PyErr_NoMemory();
22169 D(p->level--);
22170 return NULL;
22171 }
22172 ssize_t _children_capacity = 1;
22173 ssize_t _n = 0;
22174 { // ('if' disjunction)
22175 if (p->error_indicator) {
22176 D(p->level--);
22177 return NULL;
22178 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022179 D(fprintf(stderr, "%*c> _loop0_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020022180 void *_tmp_146_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022181 while (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020022182 (_tmp_146_var = _tmp_146_rule(p)) // 'if' disjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022183 )
22184 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020022185 _res = _tmp_146_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022186 if (_n == _children_capacity) {
22187 _children_capacity *= 2;
22188 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22189 if (!_new_children) {
22190 p->error_indicator = 1;
22191 PyErr_NoMemory();
22192 D(p->level--);
22193 return NULL;
22194 }
22195 _children = _new_children;
22196 }
22197 _children[_n++] = _res;
22198 _mark = p->mark;
22199 }
22200 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022201 D(fprintf(stderr, "%*c%s _loop0_104[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022202 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
22203 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022204 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022205 if (!_seq) {
22206 PyMem_Free(_children);
22207 p->error_indicator = 1;
22208 PyErr_NoMemory();
22209 D(p->level--);
22210 return NULL;
22211 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022212 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022213 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022214 _PyPegen_insert_memo(p, _start_mark, _loop0_104_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022215 D(p->level--);
22216 return _seq;
22217}
22218
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022219// _loop0_105: ('if' disjunction)
22220static asdl_seq *
22221_loop0_105_rule(Parser *p)
22222{
22223 D(p->level++);
22224 if (p->error_indicator) {
22225 D(p->level--);
22226 return NULL;
22227 }
22228 void *_res = NULL;
22229 int _mark = p->mark;
22230 int _start_mark = p->mark;
22231 void **_children = PyMem_Malloc(sizeof(void *));
22232 if (!_children) {
22233 p->error_indicator = 1;
22234 PyErr_NoMemory();
22235 D(p->level--);
22236 return NULL;
22237 }
22238 ssize_t _children_capacity = 1;
22239 ssize_t _n = 0;
22240 { // ('if' disjunction)
22241 if (p->error_indicator) {
22242 D(p->level--);
22243 return NULL;
22244 }
22245 D(fprintf(stderr, "%*c> _loop0_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020022246 void *_tmp_147_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022247 while (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020022248 (_tmp_147_var = _tmp_147_rule(p)) // 'if' disjunction
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022249 )
22250 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020022251 _res = _tmp_147_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022252 if (_n == _children_capacity) {
22253 _children_capacity *= 2;
22254 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22255 if (!_new_children) {
22256 p->error_indicator = 1;
22257 PyErr_NoMemory();
22258 D(p->level--);
22259 return NULL;
22260 }
22261 _children = _new_children;
22262 }
22263 _children[_n++] = _res;
22264 _mark = p->mark;
22265 }
22266 p->mark = _mark;
22267 D(fprintf(stderr, "%*c%s _loop0_105[%d-%d]: %s failed!\n", p->level, ' ',
22268 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
22269 }
22270 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22271 if (!_seq) {
22272 PyMem_Free(_children);
22273 p->error_indicator = 1;
22274 PyErr_NoMemory();
22275 D(p->level--);
22276 return NULL;
22277 }
22278 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22279 PyMem_Free(_children);
22280 _PyPegen_insert_memo(p, _start_mark, _loop0_105_type, _seq);
22281 D(p->level--);
22282 return _seq;
22283}
22284
22285// _loop0_107: ',' (starred_expression | named_expression !'=')
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022286static asdl_seq *
22287_loop0_107_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022288{
22289 D(p->level++);
22290 if (p->error_indicator) {
22291 D(p->level--);
22292 return NULL;
22293 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022294 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022295 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022296 int _start_mark = p->mark;
22297 void **_children = PyMem_Malloc(sizeof(void *));
22298 if (!_children) {
22299 p->error_indicator = 1;
22300 PyErr_NoMemory();
22301 D(p->level--);
22302 return NULL;
22303 }
22304 ssize_t _children_capacity = 1;
22305 ssize_t _n = 0;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022306 { // ',' (starred_expression | named_expression !'=')
22307 if (p->error_indicator) {
22308 D(p->level--);
22309 return NULL;
22310 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022311 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 +010022312 Token * _literal;
22313 void *elem;
22314 while (
22315 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22316 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020022317 (elem = _tmp_148_rule(p)) // starred_expression | named_expression !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010022318 )
22319 {
22320 _res = elem;
22321 if (_res == NULL && PyErr_Occurred()) {
22322 p->error_indicator = 1;
22323 PyMem_Free(_children);
22324 D(p->level--);
22325 return NULL;
22326 }
22327 if (_n == _children_capacity) {
22328 _children_capacity *= 2;
22329 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22330 if (!_new_children) {
22331 p->error_indicator = 1;
22332 PyErr_NoMemory();
22333 D(p->level--);
22334 return NULL;
22335 }
22336 _children = _new_children;
22337 }
22338 _children[_n++] = _res;
22339 _mark = p->mark;
22340 }
22341 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022342 D(fprintf(stderr, "%*c%s _loop0_107[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010022343 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | named_expression !'=')"));
22344 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022345 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022346 if (!_seq) {
22347 PyMem_Free(_children);
22348 p->error_indicator = 1;
22349 PyErr_NoMemory();
22350 D(p->level--);
22351 return NULL;
22352 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022353 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022354 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022355 _PyPegen_insert_memo(p, _start_mark, _loop0_107_type, _seq);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022356 D(p->level--);
22357 return _seq;
22358}
22359
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022360// _gather_106: (starred_expression | named_expression !'=') _loop0_107
Pablo Galindo4a97b152020-09-02 17:44:19 +010022361static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022362_gather_106_rule(Parser *p)
Pablo Galindo4a97b152020-09-02 17:44:19 +010022363{
22364 D(p->level++);
22365 if (p->error_indicator) {
22366 D(p->level--);
22367 return NULL;
22368 }
22369 asdl_seq * _res = NULL;
22370 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022371 { // (starred_expression | named_expression !'=') _loop0_107
Pablo Galindo4a97b152020-09-02 17:44:19 +010022372 if (p->error_indicator) {
22373 D(p->level--);
22374 return NULL;
22375 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022376 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 +010022377 void *elem;
22378 asdl_seq * seq;
22379 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020022380 (elem = _tmp_148_rule(p)) // starred_expression | named_expression !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010022381 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022382 (seq = _loop0_107_rule(p)) // _loop0_107
Pablo Galindo4a97b152020-09-02 17:44:19 +010022383 )
22384 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022385 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 +010022386 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22387 goto done;
22388 }
22389 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022390 D(fprintf(stderr, "%*c%s _gather_106[%d-%d]: %s failed!\n", p->level, ' ',
22391 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_107"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010022392 }
22393 _res = NULL;
22394 done:
22395 D(p->level--);
22396 return _res;
22397}
22398
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022399// _tmp_108: ',' kwargs
Pablo Galindo4a97b152020-09-02 17:44:19 +010022400static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022401_tmp_108_rule(Parser *p)
Pablo Galindo4a97b152020-09-02 17:44:19 +010022402{
22403 D(p->level++);
22404 if (p->error_indicator) {
22405 D(p->level--);
22406 return NULL;
22407 }
22408 void * _res = NULL;
22409 int _mark = p->mark;
22410 { // ',' kwargs
22411 if (p->error_indicator) {
22412 D(p->level--);
22413 return NULL;
22414 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022415 D(fprintf(stderr, "%*c> _tmp_108[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010022416 Token * _literal;
22417 asdl_seq* k;
22418 if (
22419 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22420 &&
22421 (k = kwargs_rule(p)) // kwargs
22422 )
22423 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022424 D(fprintf(stderr, "%*c+ _tmp_108[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010022425 _res = k;
22426 if (_res == NULL && PyErr_Occurred()) {
22427 p->error_indicator = 1;
22428 D(p->level--);
22429 return NULL;
22430 }
22431 goto done;
22432 }
22433 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022434 D(fprintf(stderr, "%*c%s _tmp_108[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010022435 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
22436 }
22437 _res = NULL;
22438 done:
22439 D(p->level--);
22440 return _res;
22441}
22442
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022443// _loop0_110: ',' kwarg_or_starred
Pablo Galindo4a97b152020-09-02 17:44:19 +010022444static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022445_loop0_110_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022446{
22447 D(p->level++);
22448 if (p->error_indicator) {
22449 D(p->level--);
22450 return NULL;
22451 }
22452 void *_res = NULL;
22453 int _mark = p->mark;
22454 int _start_mark = p->mark;
22455 void **_children = PyMem_Malloc(sizeof(void *));
22456 if (!_children) {
22457 p->error_indicator = 1;
22458 PyErr_NoMemory();
22459 D(p->level--);
22460 return NULL;
22461 }
22462 ssize_t _children_capacity = 1;
22463 ssize_t _n = 0;
22464 { // ',' kwarg_or_starred
22465 if (p->error_indicator) {
22466 D(p->level--);
22467 return NULL;
22468 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022469 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 +010022470 Token * _literal;
22471 KeywordOrStarred* elem;
22472 while (
22473 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22474 &&
22475 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
22476 )
22477 {
22478 _res = elem;
22479 if (_res == NULL && PyErr_Occurred()) {
22480 p->error_indicator = 1;
22481 PyMem_Free(_children);
22482 D(p->level--);
22483 return NULL;
22484 }
22485 if (_n == _children_capacity) {
22486 _children_capacity *= 2;
22487 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22488 if (!_new_children) {
22489 p->error_indicator = 1;
22490 PyErr_NoMemory();
22491 D(p->level--);
22492 return NULL;
22493 }
22494 _children = _new_children;
22495 }
22496 _children[_n++] = _res;
22497 _mark = p->mark;
22498 }
22499 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022500 D(fprintf(stderr, "%*c%s _loop0_110[%d-%d]: %s failed!\n", p->level, ' ',
22501 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
22502 }
22503 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22504 if (!_seq) {
22505 PyMem_Free(_children);
22506 p->error_indicator = 1;
22507 PyErr_NoMemory();
22508 D(p->level--);
22509 return NULL;
22510 }
22511 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22512 PyMem_Free(_children);
22513 _PyPegen_insert_memo(p, _start_mark, _loop0_110_type, _seq);
22514 D(p->level--);
22515 return _seq;
22516}
22517
22518// _gather_109: kwarg_or_starred _loop0_110
22519static asdl_seq *
22520_gather_109_rule(Parser *p)
22521{
22522 D(p->level++);
22523 if (p->error_indicator) {
22524 D(p->level--);
22525 return NULL;
22526 }
22527 asdl_seq * _res = NULL;
22528 int _mark = p->mark;
22529 { // kwarg_or_starred _loop0_110
22530 if (p->error_indicator) {
22531 D(p->level--);
22532 return NULL;
22533 }
22534 D(fprintf(stderr, "%*c> _gather_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_110"));
22535 KeywordOrStarred* elem;
22536 asdl_seq * seq;
22537 if (
22538 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
22539 &&
22540 (seq = _loop0_110_rule(p)) // _loop0_110
22541 )
22542 {
22543 D(fprintf(stderr, "%*c+ _gather_109[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_110"));
22544 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22545 goto done;
22546 }
22547 p->mark = _mark;
22548 D(fprintf(stderr, "%*c%s _gather_109[%d-%d]: %s failed!\n", p->level, ' ',
22549 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_110"));
22550 }
22551 _res = NULL;
22552 done:
22553 D(p->level--);
22554 return _res;
22555}
22556
22557// _loop0_112: ',' kwarg_or_double_starred
22558static asdl_seq *
22559_loop0_112_rule(Parser *p)
22560{
22561 D(p->level++);
22562 if (p->error_indicator) {
22563 D(p->level--);
22564 return NULL;
22565 }
22566 void *_res = NULL;
22567 int _mark = p->mark;
22568 int _start_mark = p->mark;
22569 void **_children = PyMem_Malloc(sizeof(void *));
22570 if (!_children) {
22571 p->error_indicator = 1;
22572 PyErr_NoMemory();
22573 D(p->level--);
22574 return NULL;
22575 }
22576 ssize_t _children_capacity = 1;
22577 ssize_t _n = 0;
22578 { // ',' kwarg_or_double_starred
22579 if (p->error_indicator) {
22580 D(p->level--);
22581 return NULL;
22582 }
22583 D(fprintf(stderr, "%*c> _loop0_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
22584 Token * _literal;
22585 KeywordOrStarred* elem;
22586 while (
22587 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22588 &&
22589 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
22590 )
22591 {
22592 _res = elem;
22593 if (_res == NULL && PyErr_Occurred()) {
22594 p->error_indicator = 1;
22595 PyMem_Free(_children);
22596 D(p->level--);
22597 return NULL;
22598 }
22599 if (_n == _children_capacity) {
22600 _children_capacity *= 2;
22601 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22602 if (!_new_children) {
22603 p->error_indicator = 1;
22604 PyErr_NoMemory();
22605 D(p->level--);
22606 return NULL;
22607 }
22608 _children = _new_children;
22609 }
22610 _children[_n++] = _res;
22611 _mark = p->mark;
22612 }
22613 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022614 D(fprintf(stderr, "%*c%s _loop0_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022615 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022616 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022617 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022618 if (!_seq) {
22619 PyMem_Free(_children);
22620 p->error_indicator = 1;
22621 PyErr_NoMemory();
22622 D(p->level--);
22623 return NULL;
22624 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022625 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022626 PyMem_Free(_children);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022627 _PyPegen_insert_memo(p, _start_mark, _loop0_112_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022628 D(p->level--);
22629 return _seq;
22630}
22631
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022632// _gather_111: kwarg_or_double_starred _loop0_112
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022633static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010022634_gather_111_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022635{
22636 D(p->level++);
22637 if (p->error_indicator) {
22638 D(p->level--);
22639 return NULL;
22640 }
22641 asdl_seq * _res = NULL;
22642 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022643 { // kwarg_or_double_starred _loop0_112
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022644 if (p->error_indicator) {
22645 D(p->level--);
22646 return NULL;
22647 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022648 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 +010022649 KeywordOrStarred* elem;
22650 asdl_seq * seq;
22651 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022652 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022653 &&
Pablo Galindo4a97b152020-09-02 17:44:19 +010022654 (seq = _loop0_112_rule(p)) // _loop0_112
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022655 )
22656 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022657 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 +010022658 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22659 goto done;
22660 }
22661 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022662 D(fprintf(stderr, "%*c%s _gather_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022663 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_112"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022664 }
22665 _res = NULL;
22666 done:
22667 D(p->level--);
22668 return _res;
22669}
22670
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022671// _loop0_114: ',' kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022672static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010022673_loop0_114_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022674{
22675 D(p->level++);
22676 if (p->error_indicator) {
22677 D(p->level--);
22678 return NULL;
22679 }
22680 void *_res = NULL;
22681 int _mark = p->mark;
22682 int _start_mark = p->mark;
22683 void **_children = PyMem_Malloc(sizeof(void *));
22684 if (!_children) {
22685 p->error_indicator = 1;
22686 PyErr_NoMemory();
22687 D(p->level--);
22688 return NULL;
22689 }
22690 ssize_t _children_capacity = 1;
22691 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022692 { // ',' kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022693 if (p->error_indicator) {
22694 D(p->level--);
22695 return NULL;
22696 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022697 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 +010022698 Token * _literal;
22699 KeywordOrStarred* elem;
22700 while (
22701 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22702 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022703 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022704 )
22705 {
22706 _res = elem;
22707 if (_res == NULL && PyErr_Occurred()) {
22708 p->error_indicator = 1;
22709 PyMem_Free(_children);
22710 D(p->level--);
22711 return NULL;
22712 }
22713 if (_n == _children_capacity) {
22714 _children_capacity *= 2;
22715 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22716 if (!_new_children) {
22717 p->error_indicator = 1;
22718 PyErr_NoMemory();
22719 D(p->level--);
22720 return NULL;
22721 }
22722 _children = _new_children;
22723 }
22724 _children[_n++] = _res;
22725 _mark = p->mark;
22726 }
22727 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022728 D(fprintf(stderr, "%*c%s _loop0_114[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022730 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022731 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022732 if (!_seq) {
22733 PyMem_Free(_children);
22734 p->error_indicator = 1;
22735 PyErr_NoMemory();
22736 D(p->level--);
22737 return NULL;
22738 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022739 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022740 PyMem_Free(_children);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022741 _PyPegen_insert_memo(p, _start_mark, _loop0_114_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022742 D(p->level--);
22743 return _seq;
22744}
22745
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022746// _gather_113: kwarg_or_starred _loop0_114
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022747static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010022748_gather_113_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022749{
22750 D(p->level++);
22751 if (p->error_indicator) {
22752 D(p->level--);
22753 return NULL;
22754 }
22755 asdl_seq * _res = NULL;
22756 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022757 { // kwarg_or_starred _loop0_114
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022758 if (p->error_indicator) {
22759 D(p->level--);
22760 return NULL;
22761 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022762 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 +010022763 KeywordOrStarred* elem;
22764 asdl_seq * seq;
22765 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022766 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022767 &&
Pablo Galindo4a97b152020-09-02 17:44:19 +010022768 (seq = _loop0_114_rule(p)) // _loop0_114
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022769 )
22770 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022771 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 +010022772 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22773 goto done;
22774 }
22775 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022776 D(fprintf(stderr, "%*c%s _gather_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022777 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_114"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022778 }
22779 _res = NULL;
22780 done:
22781 D(p->level--);
22782 return _res;
22783}
22784
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022785// _loop0_116: ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022786static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010022787_loop0_116_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022788{
22789 D(p->level++);
22790 if (p->error_indicator) {
22791 D(p->level--);
22792 return NULL;
22793 }
22794 void *_res = NULL;
22795 int _mark = p->mark;
22796 int _start_mark = p->mark;
22797 void **_children = PyMem_Malloc(sizeof(void *));
22798 if (!_children) {
22799 p->error_indicator = 1;
22800 PyErr_NoMemory();
22801 D(p->level--);
22802 return NULL;
22803 }
22804 ssize_t _children_capacity = 1;
22805 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022806 { // ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022807 if (p->error_indicator) {
22808 D(p->level--);
22809 return NULL;
22810 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022811 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 +010022812 Token * _literal;
22813 KeywordOrStarred* elem;
22814 while (
22815 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22816 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022817 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022818 )
22819 {
22820 _res = elem;
22821 if (_res == NULL && PyErr_Occurred()) {
22822 p->error_indicator = 1;
22823 PyMem_Free(_children);
22824 D(p->level--);
22825 return NULL;
22826 }
22827 if (_n == _children_capacity) {
22828 _children_capacity *= 2;
22829 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22830 if (!_new_children) {
22831 p->error_indicator = 1;
22832 PyErr_NoMemory();
22833 D(p->level--);
22834 return NULL;
22835 }
22836 _children = _new_children;
22837 }
22838 _children[_n++] = _res;
22839 _mark = p->mark;
22840 }
22841 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022842 D(fprintf(stderr, "%*c%s _loop0_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022844 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022845 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022846 if (!_seq) {
22847 PyMem_Free(_children);
22848 p->error_indicator = 1;
22849 PyErr_NoMemory();
22850 D(p->level--);
22851 return NULL;
22852 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022853 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022854 PyMem_Free(_children);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022855 _PyPegen_insert_memo(p, _start_mark, _loop0_116_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022856 D(p->level--);
22857 return _seq;
22858}
22859
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022860// _gather_115: kwarg_or_double_starred _loop0_116
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022861static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010022862_gather_115_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022863{
22864 D(p->level++);
22865 if (p->error_indicator) {
22866 D(p->level--);
22867 return NULL;
22868 }
22869 asdl_seq * _res = NULL;
22870 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022871 { // kwarg_or_double_starred _loop0_116
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022872 if (p->error_indicator) {
22873 D(p->level--);
22874 return NULL;
22875 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022876 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 +010022877 KeywordOrStarred* elem;
22878 asdl_seq * seq;
22879 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022880 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022881 &&
Pablo Galindo4a97b152020-09-02 17:44:19 +010022882 (seq = _loop0_116_rule(p)) // _loop0_116
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022883 )
22884 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022885 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 +010022886 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22887 goto done;
22888 }
22889 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022890 D(fprintf(stderr, "%*c%s _gather_115[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022891 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_116"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022892 }
22893 _res = NULL;
22894 done:
22895 D(p->level--);
22896 return _res;
22897}
22898
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022899// _loop0_117: (',' star_target)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022900static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022901_loop0_117_rule(Parser *p)
Pablo Galindo4a97b152020-09-02 17:44:19 +010022902{
22903 D(p->level++);
22904 if (p->error_indicator) {
22905 D(p->level--);
22906 return NULL;
22907 }
22908 void *_res = NULL;
22909 int _mark = p->mark;
22910 int _start_mark = p->mark;
22911 void **_children = PyMem_Malloc(sizeof(void *));
22912 if (!_children) {
22913 p->error_indicator = 1;
22914 PyErr_NoMemory();
22915 D(p->level--);
22916 return NULL;
22917 }
22918 ssize_t _children_capacity = 1;
22919 ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022920 { // (',' star_target)
22921 if (p->error_indicator) {
22922 D(p->level--);
22923 return NULL;
22924 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022925 D(fprintf(stderr, "%*c> _loop0_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020022926 void *_tmp_149_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022927 while (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020022928 (_tmp_149_var = _tmp_149_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022929 )
22930 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020022931 _res = _tmp_149_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022932 if (_n == _children_capacity) {
22933 _children_capacity *= 2;
22934 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22935 if (!_new_children) {
22936 p->error_indicator = 1;
22937 PyErr_NoMemory();
22938 D(p->level--);
22939 return NULL;
22940 }
22941 _children = _new_children;
22942 }
22943 _children[_n++] = _res;
22944 _mark = p->mark;
22945 }
22946 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022947 D(fprintf(stderr, "%*c%s _loop0_117[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022948 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
22949 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022950 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022951 if (!_seq) {
22952 PyMem_Free(_children);
22953 p->error_indicator = 1;
22954 PyErr_NoMemory();
22955 D(p->level--);
22956 return NULL;
22957 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022958 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022959 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022960 _PyPegen_insert_memo(p, _start_mark, _loop0_117_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022961 D(p->level--);
22962 return _seq;
22963}
22964
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022965// _loop0_119: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022966static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022967_loop0_119_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022968{
22969 D(p->level++);
22970 if (p->error_indicator) {
22971 D(p->level--);
22972 return NULL;
22973 }
22974 void *_res = NULL;
22975 int _mark = p->mark;
22976 int _start_mark = p->mark;
22977 void **_children = PyMem_Malloc(sizeof(void *));
22978 if (!_children) {
22979 p->error_indicator = 1;
22980 PyErr_NoMemory();
22981 D(p->level--);
22982 return NULL;
22983 }
22984 ssize_t _children_capacity = 1;
22985 ssize_t _n = 0;
22986 { // ',' star_target
22987 if (p->error_indicator) {
22988 D(p->level--);
22989 return NULL;
22990 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022991 D(fprintf(stderr, "%*c> _loop0_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022992 Token * _literal;
22993 expr_ty elem;
22994 while (
22995 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22996 &&
22997 (elem = star_target_rule(p)) // star_target
22998 )
22999 {
23000 _res = elem;
23001 if (_res == NULL && PyErr_Occurred()) {
23002 p->error_indicator = 1;
23003 PyMem_Free(_children);
23004 D(p->level--);
23005 return NULL;
23006 }
23007 if (_n == _children_capacity) {
23008 _children_capacity *= 2;
23009 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23010 if (!_new_children) {
23011 p->error_indicator = 1;
23012 PyErr_NoMemory();
23013 D(p->level--);
23014 return NULL;
23015 }
23016 _children = _new_children;
23017 }
23018 _children[_n++] = _res;
23019 _mark = p->mark;
23020 }
23021 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023022 D(fprintf(stderr, "%*c%s _loop0_119[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023023 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
23024 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023025 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023026 if (!_seq) {
23027 PyMem_Free(_children);
23028 p->error_indicator = 1;
23029 PyErr_NoMemory();
23030 D(p->level--);
23031 return NULL;
23032 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023033 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023034 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023035 _PyPegen_insert_memo(p, _start_mark, _loop0_119_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023036 D(p->level--);
23037 return _seq;
23038}
23039
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023040// _gather_118: star_target _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023041static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023042_gather_118_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023043{
23044 D(p->level++);
23045 if (p->error_indicator) {
23046 D(p->level--);
23047 return NULL;
23048 }
23049 asdl_seq * _res = NULL;
23050 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023051 { // star_target _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023052 if (p->error_indicator) {
23053 D(p->level--);
23054 return NULL;
23055 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023056 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 +010023057 expr_ty elem;
23058 asdl_seq * seq;
23059 if (
23060 (elem = star_target_rule(p)) // star_target
23061 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023062 (seq = _loop0_119_rule(p)) // _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023063 )
23064 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023065 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 +010023066 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23067 goto done;
23068 }
23069 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023070 D(fprintf(stderr, "%*c%s _gather_118[%d-%d]: %s failed!\n", p->level, ' ',
23071 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_119"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023072 }
23073 _res = NULL;
23074 done:
23075 D(p->level--);
23076 return _res;
23077}
23078
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023079// _loop1_120: (',' star_target)
23080static asdl_seq *
23081_loop1_120_rule(Parser *p)
23082{
23083 D(p->level++);
23084 if (p->error_indicator) {
23085 D(p->level--);
23086 return NULL;
23087 }
23088 void *_res = NULL;
23089 int _mark = p->mark;
23090 int _start_mark = p->mark;
23091 void **_children = PyMem_Malloc(sizeof(void *));
23092 if (!_children) {
23093 p->error_indicator = 1;
23094 PyErr_NoMemory();
23095 D(p->level--);
23096 return NULL;
23097 }
23098 ssize_t _children_capacity = 1;
23099 ssize_t _n = 0;
23100 { // (',' star_target)
23101 if (p->error_indicator) {
23102 D(p->level--);
23103 return NULL;
23104 }
23105 D(fprintf(stderr, "%*c> _loop1_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
23106 void *_tmp_150_var;
23107 while (
23108 (_tmp_150_var = _tmp_150_rule(p)) // ',' star_target
23109 )
23110 {
23111 _res = _tmp_150_var;
23112 if (_n == _children_capacity) {
23113 _children_capacity *= 2;
23114 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23115 if (!_new_children) {
23116 p->error_indicator = 1;
23117 PyErr_NoMemory();
23118 D(p->level--);
23119 return NULL;
23120 }
23121 _children = _new_children;
23122 }
23123 _children[_n++] = _res;
23124 _mark = p->mark;
23125 }
23126 p->mark = _mark;
23127 D(fprintf(stderr, "%*c%s _loop1_120[%d-%d]: %s failed!\n", p->level, ' ',
23128 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
23129 }
23130 if (_n == 0 || p->error_indicator) {
23131 PyMem_Free(_children);
23132 D(p->level--);
23133 return NULL;
23134 }
23135 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23136 if (!_seq) {
23137 PyMem_Free(_children);
23138 p->error_indicator = 1;
23139 PyErr_NoMemory();
23140 D(p->level--);
23141 return NULL;
23142 }
23143 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23144 PyMem_Free(_children);
23145 _PyPegen_insert_memo(p, _start_mark, _loop1_120_type, _seq);
23146 D(p->level--);
23147 return _seq;
23148}
23149
23150// _tmp_121: !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023151static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023152_tmp_121_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023153{
23154 D(p->level++);
23155 if (p->error_indicator) {
23156 D(p->level--);
23157 return NULL;
23158 }
23159 void * _res = NULL;
23160 int _mark = p->mark;
23161 { // !'*' star_target
23162 if (p->error_indicator) {
23163 D(p->level--);
23164 return NULL;
23165 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023166 D(fprintf(stderr, "%*c> _tmp_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023167 expr_ty star_target_var;
23168 if (
23169 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
23170 &&
23171 (star_target_var = star_target_rule(p)) // star_target
23172 )
23173 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023174 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 +010023175 _res = star_target_var;
23176 goto done;
23177 }
23178 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023179 D(fprintf(stderr, "%*c%s _tmp_121[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023180 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
23181 }
23182 _res = NULL;
23183 done:
23184 D(p->level--);
23185 return _res;
23186}
23187
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023188// _loop0_123: ',' del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023189static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023190_loop0_123_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023191{
23192 D(p->level++);
23193 if (p->error_indicator) {
23194 D(p->level--);
23195 return NULL;
23196 }
23197 void *_res = NULL;
23198 int _mark = p->mark;
23199 int _start_mark = p->mark;
23200 void **_children = PyMem_Malloc(sizeof(void *));
23201 if (!_children) {
23202 p->error_indicator = 1;
23203 PyErr_NoMemory();
23204 D(p->level--);
23205 return NULL;
23206 }
23207 ssize_t _children_capacity = 1;
23208 ssize_t _n = 0;
23209 { // ',' del_target
23210 if (p->error_indicator) {
23211 D(p->level--);
23212 return NULL;
23213 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023214 D(fprintf(stderr, "%*c> _loop0_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023215 Token * _literal;
23216 expr_ty elem;
23217 while (
23218 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23219 &&
23220 (elem = del_target_rule(p)) // del_target
23221 )
23222 {
23223 _res = elem;
23224 if (_res == NULL && PyErr_Occurred()) {
23225 p->error_indicator = 1;
23226 PyMem_Free(_children);
23227 D(p->level--);
23228 return NULL;
23229 }
23230 if (_n == _children_capacity) {
23231 _children_capacity *= 2;
23232 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23233 if (!_new_children) {
23234 p->error_indicator = 1;
23235 PyErr_NoMemory();
23236 D(p->level--);
23237 return NULL;
23238 }
23239 _children = _new_children;
23240 }
23241 _children[_n++] = _res;
23242 _mark = p->mark;
23243 }
23244 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023245 D(fprintf(stderr, "%*c%s _loop0_123[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023246 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
23247 }
23248 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23249 if (!_seq) {
23250 PyMem_Free(_children);
23251 p->error_indicator = 1;
23252 PyErr_NoMemory();
23253 D(p->level--);
23254 return NULL;
23255 }
23256 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23257 PyMem_Free(_children);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023258 _PyPegen_insert_memo(p, _start_mark, _loop0_123_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023259 D(p->level--);
23260 return _seq;
23261}
23262
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023263// _gather_122: del_target _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023264static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023265_gather_122_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023266{
23267 D(p->level++);
23268 if (p->error_indicator) {
23269 D(p->level--);
23270 return NULL;
23271 }
23272 asdl_seq * _res = NULL;
23273 int _mark = p->mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023274 { // del_target _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023275 if (p->error_indicator) {
23276 D(p->level--);
23277 return NULL;
23278 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023279 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 +000023280 expr_ty elem;
23281 asdl_seq * seq;
23282 if (
23283 (elem = del_target_rule(p)) // del_target
23284 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023285 (seq = _loop0_123_rule(p)) // _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023286 )
23287 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023288 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 +000023289 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23290 goto done;
23291 }
23292 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023293 D(fprintf(stderr, "%*c%s _gather_122[%d-%d]: %s failed!\n", p->level, ' ',
23294 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_123"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023295 }
23296 _res = NULL;
23297 done:
23298 D(p->level--);
23299 return _res;
23300}
23301
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023302// _loop0_125: ',' target
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023303static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023304_loop0_125_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023305{
23306 D(p->level++);
23307 if (p->error_indicator) {
23308 D(p->level--);
23309 return NULL;
23310 }
23311 void *_res = NULL;
23312 int _mark = p->mark;
23313 int _start_mark = p->mark;
23314 void **_children = PyMem_Malloc(sizeof(void *));
23315 if (!_children) {
23316 p->error_indicator = 1;
23317 PyErr_NoMemory();
23318 D(p->level--);
23319 return NULL;
23320 }
23321 ssize_t _children_capacity = 1;
23322 ssize_t _n = 0;
23323 { // ',' target
23324 if (p->error_indicator) {
23325 D(p->level--);
23326 return NULL;
23327 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023328 D(fprintf(stderr, "%*c> _loop0_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' target"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023329 Token * _literal;
23330 expr_ty elem;
23331 while (
23332 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23333 &&
23334 (elem = target_rule(p)) // target
23335 )
23336 {
23337 _res = elem;
23338 if (_res == NULL && PyErr_Occurred()) {
23339 p->error_indicator = 1;
23340 PyMem_Free(_children);
23341 D(p->level--);
23342 return NULL;
23343 }
23344 if (_n == _children_capacity) {
23345 _children_capacity *= 2;
23346 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23347 if (!_new_children) {
23348 p->error_indicator = 1;
23349 PyErr_NoMemory();
23350 D(p->level--);
23351 return NULL;
23352 }
23353 _children = _new_children;
23354 }
23355 _children[_n++] = _res;
23356 _mark = p->mark;
23357 }
23358 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023359 D(fprintf(stderr, "%*c%s _loop0_125[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023360 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023361 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023362 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023363 if (!_seq) {
23364 PyMem_Free(_children);
23365 p->error_indicator = 1;
23366 PyErr_NoMemory();
23367 D(p->level--);
23368 return NULL;
23369 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023370 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023371 PyMem_Free(_children);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023372 _PyPegen_insert_memo(p, _start_mark, _loop0_125_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023373 D(p->level--);
23374 return _seq;
23375}
23376
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023377// _gather_124: target _loop0_125
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023378static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023379_gather_124_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023380{
23381 D(p->level++);
23382 if (p->error_indicator) {
23383 D(p->level--);
23384 return NULL;
23385 }
23386 asdl_seq * _res = NULL;
23387 int _mark = p->mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023388 { // target _loop0_125
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023389 if (p->error_indicator) {
23390 D(p->level--);
23391 return NULL;
23392 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023393 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 +010023394 expr_ty elem;
23395 asdl_seq * seq;
23396 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023397 (elem = target_rule(p)) // target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023398 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023399 (seq = _loop0_125_rule(p)) // _loop0_125
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023400 )
23401 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023402 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 +010023403 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23404 goto done;
23405 }
23406 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023407 D(fprintf(stderr, "%*c%s _gather_124[%d-%d]: %s failed!\n", p->level, ' ',
23408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target _loop0_125"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023409 }
23410 _res = NULL;
23411 done:
23412 D(p->level--);
23413 return _res;
23414}
23415
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023416// _tmp_126: args | expression for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023417static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023418_tmp_126_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023419{
23420 D(p->level++);
23421 if (p->error_indicator) {
23422 D(p->level--);
23423 return NULL;
23424 }
23425 void * _res = NULL;
23426 int _mark = p->mark;
23427 { // args
23428 if (p->error_indicator) {
23429 D(p->level--);
23430 return NULL;
23431 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023432 D(fprintf(stderr, "%*c> _tmp_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023433 expr_ty args_var;
23434 if (
23435 (args_var = args_rule(p)) // args
23436 )
23437 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023438 D(fprintf(stderr, "%*c+ _tmp_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023439 _res = args_var;
23440 goto done;
23441 }
23442 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023443 D(fprintf(stderr, "%*c%s _tmp_126[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023444 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
23445 }
23446 { // expression for_if_clauses
23447 if (p->error_indicator) {
23448 D(p->level--);
23449 return NULL;
23450 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023451 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 +010023452 expr_ty expression_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010023453 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023454 if (
23455 (expression_var = expression_rule(p)) // expression
23456 &&
23457 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
23458 )
23459 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023460 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 +010023461 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
23462 goto done;
23463 }
23464 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023465 D(fprintf(stderr, "%*c%s _tmp_126[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023466 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
23467 }
23468 _res = NULL;
23469 done:
23470 D(p->level--);
23471 return _res;
23472}
23473
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023474// _loop0_127: star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023475static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023476_loop0_127_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023477{
23478 D(p->level++);
23479 if (p->error_indicator) {
23480 D(p->level--);
23481 return NULL;
23482 }
23483 void *_res = NULL;
23484 int _mark = p->mark;
23485 int _start_mark = p->mark;
23486 void **_children = PyMem_Malloc(sizeof(void *));
23487 if (!_children) {
23488 p->error_indicator = 1;
23489 PyErr_NoMemory();
23490 D(p->level--);
23491 return NULL;
23492 }
23493 ssize_t _children_capacity = 1;
23494 ssize_t _n = 0;
23495 { // star_named_expressions
23496 if (p->error_indicator) {
23497 D(p->level--);
23498 return NULL;
23499 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023500 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 +010023501 asdl_expr_seq* star_named_expressions_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023502 while (
23503 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
23504 )
23505 {
23506 _res = star_named_expressions_var;
23507 if (_n == _children_capacity) {
23508 _children_capacity *= 2;
23509 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23510 if (!_new_children) {
23511 p->error_indicator = 1;
23512 PyErr_NoMemory();
23513 D(p->level--);
23514 return NULL;
23515 }
23516 _children = _new_children;
23517 }
23518 _children[_n++] = _res;
23519 _mark = p->mark;
23520 }
23521 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023522 D(fprintf(stderr, "%*c%s _loop0_127[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023523 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023524 }
23525 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23526 if (!_seq) {
23527 PyMem_Free(_children);
23528 p->error_indicator = 1;
23529 PyErr_NoMemory();
23530 D(p->level--);
23531 return NULL;
23532 }
23533 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23534 PyMem_Free(_children);
23535 _PyPegen_insert_memo(p, _start_mark, _loop0_127_type, _seq);
23536 D(p->level--);
23537 return _seq;
23538}
23539
23540// _loop0_128: (star_targets '=')
23541static asdl_seq *
23542_loop0_128_rule(Parser *p)
23543{
23544 D(p->level++);
23545 if (p->error_indicator) {
23546 D(p->level--);
23547 return NULL;
23548 }
23549 void *_res = NULL;
23550 int _mark = p->mark;
23551 int _start_mark = p->mark;
23552 void **_children = PyMem_Malloc(sizeof(void *));
23553 if (!_children) {
23554 p->error_indicator = 1;
23555 PyErr_NoMemory();
23556 D(p->level--);
23557 return NULL;
23558 }
23559 ssize_t _children_capacity = 1;
23560 ssize_t _n = 0;
23561 { // (star_targets '=')
23562 if (p->error_indicator) {
23563 D(p->level--);
23564 return NULL;
23565 }
23566 D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023567 void *_tmp_151_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023568 while (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023569 (_tmp_151_var = _tmp_151_rule(p)) // star_targets '='
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023570 )
23571 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023572 _res = _tmp_151_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023573 if (_n == _children_capacity) {
23574 _children_capacity *= 2;
23575 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23576 if (!_new_children) {
23577 p->error_indicator = 1;
23578 PyErr_NoMemory();
23579 D(p->level--);
23580 return NULL;
23581 }
23582 _children = _new_children;
23583 }
23584 _children[_n++] = _res;
23585 _mark = p->mark;
23586 }
23587 p->mark = _mark;
23588 D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ',
23589 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
23590 }
23591 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23592 if (!_seq) {
23593 PyMem_Free(_children);
23594 p->error_indicator = 1;
23595 PyErr_NoMemory();
23596 D(p->level--);
23597 return NULL;
23598 }
23599 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23600 PyMem_Free(_children);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030023601 _PyPegen_insert_memo(p, _start_mark, _loop0_128_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023602 D(p->level--);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030023603 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023604}
23605
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023606// _loop0_129: (star_targets '=')
23607static asdl_seq *
23608_loop0_129_rule(Parser *p)
23609{
23610 D(p->level++);
23611 if (p->error_indicator) {
23612 D(p->level--);
23613 return NULL;
23614 }
23615 void *_res = NULL;
23616 int _mark = p->mark;
23617 int _start_mark = p->mark;
23618 void **_children = PyMem_Malloc(sizeof(void *));
23619 if (!_children) {
23620 p->error_indicator = 1;
23621 PyErr_NoMemory();
23622 D(p->level--);
23623 return NULL;
23624 }
23625 ssize_t _children_capacity = 1;
23626 ssize_t _n = 0;
23627 { // (star_targets '=')
23628 if (p->error_indicator) {
23629 D(p->level--);
23630 return NULL;
23631 }
23632 D(fprintf(stderr, "%*c> _loop0_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
23633 void *_tmp_152_var;
23634 while (
23635 (_tmp_152_var = _tmp_152_rule(p)) // star_targets '='
23636 )
23637 {
23638 _res = _tmp_152_var;
23639 if (_n == _children_capacity) {
23640 _children_capacity *= 2;
23641 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23642 if (!_new_children) {
23643 p->error_indicator = 1;
23644 PyErr_NoMemory();
23645 D(p->level--);
23646 return NULL;
23647 }
23648 _children = _new_children;
23649 }
23650 _children[_n++] = _res;
23651 _mark = p->mark;
23652 }
23653 p->mark = _mark;
23654 D(fprintf(stderr, "%*c%s _loop0_129[%d-%d]: %s failed!\n", p->level, ' ',
23655 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
23656 }
23657 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23658 if (!_seq) {
23659 PyMem_Free(_children);
23660 p->error_indicator = 1;
23661 PyErr_NoMemory();
23662 D(p->level--);
23663 return NULL;
23664 }
23665 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23666 PyMem_Free(_children);
23667 _PyPegen_insert_memo(p, _start_mark, _loop0_129_type, _seq);
23668 D(p->level--);
23669 return _seq;
23670}
23671
23672// _tmp_130: yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023673static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023674_tmp_130_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023675{
23676 D(p->level++);
23677 if (p->error_indicator) {
23678 D(p->level--);
23679 return NULL;
23680 }
23681 void * _res = NULL;
23682 int _mark = p->mark;
23683 { // yield_expr
23684 if (p->error_indicator) {
23685 D(p->level--);
23686 return NULL;
23687 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023688 D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023689 expr_ty yield_expr_var;
23690 if (
23691 (yield_expr_var = yield_expr_rule(p)) // yield_expr
23692 )
23693 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023694 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 +010023695 _res = yield_expr_var;
23696 goto done;
23697 }
23698 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023699 D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023700 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
23701 }
23702 { // star_expressions
23703 if (p->error_indicator) {
23704 D(p->level--);
23705 return NULL;
23706 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023707 D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023708 expr_ty star_expressions_var;
23709 if (
23710 (star_expressions_var = star_expressions_rule(p)) // star_expressions
23711 )
23712 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023713 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 +010023714 _res = star_expressions_var;
23715 goto done;
23716 }
23717 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023718 D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023719 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
23720 }
23721 _res = NULL;
23722 done:
23723 D(p->level--);
23724 return _res;
23725}
23726
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023727// _tmp_131: '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023728static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023729_tmp_131_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023730{
23731 D(p->level++);
23732 if (p->error_indicator) {
23733 D(p->level--);
23734 return NULL;
23735 }
23736 void * _res = NULL;
23737 int _mark = p->mark;
23738 { // '['
23739 if (p->error_indicator) {
23740 D(p->level--);
23741 return NULL;
23742 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023743 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023744 Token * _literal;
23745 if (
23746 (_literal = _PyPegen_expect_token(p, 9)) // token='['
23747 )
23748 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023749 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023750 _res = _literal;
23751 goto done;
23752 }
23753 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023754 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023755 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
23756 }
23757 { // '('
23758 if (p->error_indicator) {
23759 D(p->level--);
23760 return NULL;
23761 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023762 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023763 Token * _literal;
23764 if (
23765 (_literal = _PyPegen_expect_token(p, 7)) // token='('
23766 )
23767 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023768 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023769 _res = _literal;
23770 goto done;
23771 }
23772 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023773 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023774 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
23775 }
23776 { // '{'
23777 if (p->error_indicator) {
23778 D(p->level--);
23779 return NULL;
23780 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023781 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023782 Token * _literal;
23783 if (
23784 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
23785 )
23786 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023787 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023788 _res = _literal;
23789 goto done;
23790 }
23791 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023792 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023793 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
23794 }
23795 _res = NULL;
23796 done:
23797 D(p->level--);
23798 return _res;
23799}
23800
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023801// _loop0_132: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023802static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023803_loop0_132_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023804{
23805 D(p->level++);
23806 if (p->error_indicator) {
23807 D(p->level--);
23808 return NULL;
23809 }
23810 void *_res = NULL;
23811 int _mark = p->mark;
23812 int _start_mark = p->mark;
23813 void **_children = PyMem_Malloc(sizeof(void *));
23814 if (!_children) {
23815 p->error_indicator = 1;
23816 PyErr_NoMemory();
23817 D(p->level--);
23818 return NULL;
23819 }
23820 ssize_t _children_capacity = 1;
23821 ssize_t _n = 0;
23822 { // param_no_default
23823 if (p->error_indicator) {
23824 D(p->level--);
23825 return NULL;
23826 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023827 D(fprintf(stderr, "%*c> _loop0_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023828 arg_ty param_no_default_var;
23829 while (
23830 (param_no_default_var = param_no_default_rule(p)) // param_no_default
23831 )
23832 {
23833 _res = param_no_default_var;
23834 if (_n == _children_capacity) {
23835 _children_capacity *= 2;
23836 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23837 if (!_new_children) {
23838 p->error_indicator = 1;
23839 PyErr_NoMemory();
23840 D(p->level--);
23841 return NULL;
23842 }
23843 _children = _new_children;
23844 }
23845 _children[_n++] = _res;
23846 _mark = p->mark;
23847 }
23848 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023849 D(fprintf(stderr, "%*c%s _loop0_132[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023850 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
23851 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023852 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023853 if (!_seq) {
23854 PyMem_Free(_children);
23855 p->error_indicator = 1;
23856 PyErr_NoMemory();
23857 D(p->level--);
23858 return NULL;
23859 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023860 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023861 PyMem_Free(_children);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023862 _PyPegen_insert_memo(p, _start_mark, _loop0_132_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023863 D(p->level--);
23864 return _seq;
23865}
23866
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020023867// _loop1_133: param_with_default
23868static asdl_seq *
23869_loop1_133_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023870{
23871 D(p->level++);
23872 if (p->error_indicator) {
23873 D(p->level--);
23874 return NULL;
23875 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020023876 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023877 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020023878 int _start_mark = p->mark;
23879 void **_children = PyMem_Malloc(sizeof(void *));
23880 if (!_children) {
23881 p->error_indicator = 1;
23882 PyErr_NoMemory();
23883 D(p->level--);
23884 return NULL;
23885 }
23886 ssize_t _children_capacity = 1;
23887 ssize_t _n = 0;
23888 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023889 if (p->error_indicator) {
23890 D(p->level--);
23891 return NULL;
23892 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020023893 D(fprintf(stderr, "%*c> _loop1_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
23894 NameDefaultPair* param_with_default_var;
23895 while (
23896 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023897 )
23898 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020023899 _res = param_with_default_var;
23900 if (_n == _children_capacity) {
23901 _children_capacity *= 2;
23902 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23903 if (!_new_children) {
23904 p->error_indicator = 1;
23905 PyErr_NoMemory();
23906 D(p->level--);
23907 return NULL;
23908 }
23909 _children = _new_children;
23910 }
23911 _children[_n++] = _res;
23912 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023913 }
23914 p->mark = _mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020023915 D(fprintf(stderr, "%*c%s _loop1_133[%d-%d]: %s failed!\n", p->level, ' ',
23916 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023917 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020023918 if (_n == 0 || p->error_indicator) {
23919 PyMem_Free(_children);
23920 D(p->level--);
23921 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023922 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020023923 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23924 if (!_seq) {
23925 PyMem_Free(_children);
23926 p->error_indicator = 1;
23927 PyErr_NoMemory();
23928 D(p->level--);
23929 return NULL;
23930 }
23931 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23932 PyMem_Free(_children);
23933 _PyPegen_insert_memo(p, _start_mark, _loop1_133_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023934 D(p->level--);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020023935 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023936}
23937
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023938// _loop0_134: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023939static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023940_loop0_134_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023941{
23942 D(p->level++);
23943 if (p->error_indicator) {
23944 D(p->level--);
23945 return NULL;
23946 }
23947 void *_res = NULL;
23948 int _mark = p->mark;
23949 int _start_mark = p->mark;
23950 void **_children = PyMem_Malloc(sizeof(void *));
23951 if (!_children) {
23952 p->error_indicator = 1;
23953 PyErr_NoMemory();
23954 D(p->level--);
23955 return NULL;
23956 }
23957 ssize_t _children_capacity = 1;
23958 ssize_t _n = 0;
23959 { // lambda_param_no_default
23960 if (p->error_indicator) {
23961 D(p->level--);
23962 return NULL;
23963 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023964 D(fprintf(stderr, "%*c> _loop0_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023965 arg_ty lambda_param_no_default_var;
23966 while (
23967 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
23968 )
23969 {
23970 _res = lambda_param_no_default_var;
23971 if (_n == _children_capacity) {
23972 _children_capacity *= 2;
23973 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23974 if (!_new_children) {
23975 p->error_indicator = 1;
23976 PyErr_NoMemory();
23977 D(p->level--);
23978 return NULL;
23979 }
23980 _children = _new_children;
23981 }
23982 _children[_n++] = _res;
23983 _mark = p->mark;
23984 }
23985 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023986 D(fprintf(stderr, "%*c%s _loop0_134[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023987 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
23988 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023989 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023990 if (!_seq) {
23991 PyMem_Free(_children);
23992 p->error_indicator = 1;
23993 PyErr_NoMemory();
23994 D(p->level--);
23995 return NULL;
23996 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023997 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023998 PyMem_Free(_children);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023999 _PyPegen_insert_memo(p, _start_mark, _loop0_134_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024000 D(p->level--);
24001 return _seq;
24002}
24003
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024004// _loop1_135: lambda_param_with_default
24005static asdl_seq *
24006_loop1_135_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024007{
24008 D(p->level++);
24009 if (p->error_indicator) {
24010 D(p->level--);
24011 return NULL;
24012 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024013 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024014 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024015 int _start_mark = p->mark;
24016 void **_children = PyMem_Malloc(sizeof(void *));
24017 if (!_children) {
24018 p->error_indicator = 1;
24019 PyErr_NoMemory();
24020 D(p->level--);
24021 return NULL;
24022 }
24023 ssize_t _children_capacity = 1;
24024 ssize_t _n = 0;
24025 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024026 if (p->error_indicator) {
24027 D(p->level--);
24028 return NULL;
24029 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024030 D(fprintf(stderr, "%*c> _loop1_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
24031 NameDefaultPair* lambda_param_with_default_var;
24032 while (
24033 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024034 )
24035 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024036 _res = lambda_param_with_default_var;
24037 if (_n == _children_capacity) {
24038 _children_capacity *= 2;
24039 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24040 if (!_new_children) {
24041 p->error_indicator = 1;
24042 PyErr_NoMemory();
24043 D(p->level--);
24044 return NULL;
24045 }
24046 _children = _new_children;
24047 }
24048 _children[_n++] = _res;
24049 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024050 }
24051 p->mark = _mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024052 D(fprintf(stderr, "%*c%s _loop1_135[%d-%d]: %s failed!\n", p->level, ' ',
24053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024054 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024055 if (_n == 0 || p->error_indicator) {
24056 PyMem_Free(_children);
24057 D(p->level--);
24058 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024059 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024060 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24061 if (!_seq) {
24062 PyMem_Free(_children);
24063 p->error_indicator = 1;
24064 PyErr_NoMemory();
24065 D(p->level--);
24066 return NULL;
24067 }
24068 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24069 PyMem_Free(_children);
24070 _PyPegen_insert_memo(p, _start_mark, _loop1_135_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024071 D(p->level--);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024072 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024073}
24074
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024075// _tmp_136: ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024076static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024077_tmp_136_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024078{
24079 D(p->level++);
24080 if (p->error_indicator) {
24081 D(p->level--);
24082 return NULL;
24083 }
24084 void * _res = NULL;
24085 int _mark = p->mark;
24086 { // ')'
24087 if (p->error_indicator) {
24088 D(p->level--);
24089 return NULL;
24090 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024091 D(fprintf(stderr, "%*c> _tmp_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024092 Token * _literal;
24093 if (
24094 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
24095 )
24096 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024097 D(fprintf(stderr, "%*c+ _tmp_136[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024098 _res = _literal;
24099 goto done;
24100 }
24101 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024102 D(fprintf(stderr, "%*c%s _tmp_136[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
24104 }
24105 { // ',' (')' | '**')
24106 if (p->error_indicator) {
24107 D(p->level--);
24108 return NULL;
24109 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024110 D(fprintf(stderr, "%*c> _tmp_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024111 Token * _literal;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024112 void *_tmp_153_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024113 if (
24114 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24115 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024116 (_tmp_153_var = _tmp_153_rule(p)) // ')' | '**'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024117 )
24118 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024119 D(fprintf(stderr, "%*c+ _tmp_136[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024120 _res = _PyPegen_dummy_name(p, _literal, _tmp_153_var);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024121 goto done;
24122 }
24123 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024124 D(fprintf(stderr, "%*c%s _tmp_136[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024125 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
24126 }
24127 _res = NULL;
24128 done:
24129 D(p->level--);
24130 return _res;
24131}
24132
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024133// _tmp_137: ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024134static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024135_tmp_137_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024136{
24137 D(p->level++);
24138 if (p->error_indicator) {
24139 D(p->level--);
24140 return NULL;
24141 }
24142 void * _res = NULL;
24143 int _mark = p->mark;
24144 { // ':'
24145 if (p->error_indicator) {
24146 D(p->level--);
24147 return NULL;
24148 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024149 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024150 Token * _literal;
24151 if (
24152 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
24153 )
24154 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024155 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024156 _res = _literal;
24157 goto done;
24158 }
24159 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024160 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024161 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
24162 }
24163 { // ',' (':' | '**')
24164 if (p->error_indicator) {
24165 D(p->level--);
24166 return NULL;
24167 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024168 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024169 Token * _literal;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024170 void *_tmp_154_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024171 if (
24172 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24173 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024174 (_tmp_154_var = _tmp_154_rule(p)) // ':' | '**'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024175 )
24176 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024177 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024178 _res = _PyPegen_dummy_name(p, _literal, _tmp_154_var);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024179 goto done;
24180 }
24181 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024182 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024183 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
24184 }
24185 _res = NULL;
24186 done:
24187 D(p->level--);
24188 return _res;
24189}
24190
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024191// _tmp_138: star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024192static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024193_tmp_138_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024194{
24195 D(p->level++);
24196 if (p->error_indicator) {
24197 D(p->level--);
24198 return NULL;
24199 }
24200 void * _res = NULL;
24201 int _mark = p->mark;
24202 { // star_targets '='
24203 if (p->error_indicator) {
24204 D(p->level--);
24205 return NULL;
24206 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024207 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024208 Token * _literal;
24209 expr_ty z;
24210 if (
24211 (z = star_targets_rule(p)) // star_targets
24212 &&
24213 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24214 )
24215 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024216 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024217 _res = z;
24218 if (_res == NULL && PyErr_Occurred()) {
24219 p->error_indicator = 1;
24220 D(p->level--);
24221 return NULL;
24222 }
24223 goto done;
24224 }
24225 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024226 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024227 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
24228 }
24229 _res = NULL;
24230 done:
24231 D(p->level--);
24232 return _res;
24233}
24234
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024235// _tmp_139: '.' | '...'
24236static void *
24237_tmp_139_rule(Parser *p)
24238{
24239 D(p->level++);
24240 if (p->error_indicator) {
24241 D(p->level--);
24242 return NULL;
24243 }
24244 void * _res = NULL;
24245 int _mark = p->mark;
24246 { // '.'
24247 if (p->error_indicator) {
24248 D(p->level--);
24249 return NULL;
24250 }
24251 D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24252 Token * _literal;
24253 if (
24254 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24255 )
24256 {
24257 D(fprintf(stderr, "%*c+ _tmp_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24258 _res = _literal;
24259 goto done;
24260 }
24261 p->mark = _mark;
24262 D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
24263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24264 }
24265 { // '...'
24266 if (p->error_indicator) {
24267 D(p->level--);
24268 return NULL;
24269 }
24270 D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
24271 Token * _literal;
24272 if (
24273 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
24274 )
24275 {
24276 D(fprintf(stderr, "%*c+ _tmp_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
24277 _res = _literal;
24278 goto done;
24279 }
24280 p->mark = _mark;
24281 D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
24282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
24283 }
24284 _res = NULL;
24285 done:
24286 D(p->level--);
24287 return _res;
24288}
24289
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024290// _tmp_140: '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024291static void *
24292_tmp_140_rule(Parser *p)
24293{
24294 D(p->level++);
24295 if (p->error_indicator) {
24296 D(p->level--);
24297 return NULL;
24298 }
24299 void * _res = NULL;
24300 int _mark = p->mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024301 { // '.'
24302 if (p->error_indicator) {
24303 D(p->level--);
24304 return NULL;
24305 }
24306 D(fprintf(stderr, "%*c> _tmp_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24307 Token * _literal;
24308 if (
24309 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24310 )
24311 {
24312 D(fprintf(stderr, "%*c+ _tmp_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24313 _res = _literal;
24314 goto done;
24315 }
24316 p->mark = _mark;
24317 D(fprintf(stderr, "%*c%s _tmp_140[%d-%d]: %s failed!\n", p->level, ' ',
24318 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24319 }
24320 { // '...'
24321 if (p->error_indicator) {
24322 D(p->level--);
24323 return NULL;
24324 }
24325 D(fprintf(stderr, "%*c> _tmp_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
24326 Token * _literal;
24327 if (
24328 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
24329 )
24330 {
24331 D(fprintf(stderr, "%*c+ _tmp_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
24332 _res = _literal;
24333 goto done;
24334 }
24335 p->mark = _mark;
24336 D(fprintf(stderr, "%*c%s _tmp_140[%d-%d]: %s failed!\n", p->level, ' ',
24337 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
24338 }
24339 _res = NULL;
24340 done:
24341 D(p->level--);
24342 return _res;
24343}
24344
24345// _tmp_141: '@' named_expression NEWLINE
24346static void *
24347_tmp_141_rule(Parser *p)
24348{
24349 D(p->level++);
24350 if (p->error_indicator) {
24351 D(p->level--);
24352 return NULL;
24353 }
24354 void * _res = NULL;
24355 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024356 { // '@' named_expression NEWLINE
24357 if (p->error_indicator) {
24358 D(p->level--);
24359 return NULL;
24360 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024361 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024362 Token * _literal;
24363 expr_ty f;
24364 Token * newline_var;
24365 if (
24366 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
24367 &&
24368 (f = named_expression_rule(p)) // named_expression
24369 &&
24370 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
24371 )
24372 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024373 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024374 _res = f;
24375 if (_res == NULL && PyErr_Occurred()) {
24376 p->error_indicator = 1;
24377 D(p->level--);
24378 return NULL;
24379 }
24380 goto done;
24381 }
24382 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024383 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024384 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
24385 }
24386 _res = NULL;
24387 done:
24388 D(p->level--);
24389 return _res;
24390}
24391
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024392// _tmp_142: ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024393static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024394_tmp_142_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024395{
24396 D(p->level++);
24397 if (p->error_indicator) {
24398 D(p->level--);
24399 return NULL;
24400 }
24401 void * _res = NULL;
24402 int _mark = p->mark;
24403 { // ',' star_expression
24404 if (p->error_indicator) {
24405 D(p->level--);
24406 return NULL;
24407 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024408 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024409 Token * _literal;
24410 expr_ty c;
24411 if (
24412 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24413 &&
24414 (c = star_expression_rule(p)) // star_expression
24415 )
24416 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024417 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024418 _res = c;
24419 if (_res == NULL && PyErr_Occurred()) {
24420 p->error_indicator = 1;
24421 D(p->level--);
24422 return NULL;
24423 }
24424 goto done;
24425 }
24426 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024427 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024428 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
24429 }
24430 _res = NULL;
24431 done:
24432 D(p->level--);
24433 return _res;
24434}
24435
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024436// _tmp_143: ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024437static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024438_tmp_143_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024439{
24440 D(p->level++);
24441 if (p->error_indicator) {
24442 D(p->level--);
24443 return NULL;
24444 }
24445 void * _res = NULL;
24446 int _mark = p->mark;
24447 { // ',' expression
24448 if (p->error_indicator) {
24449 D(p->level--);
24450 return NULL;
24451 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024452 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024453 Token * _literal;
24454 expr_ty c;
24455 if (
24456 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24457 &&
24458 (c = expression_rule(p)) // expression
24459 )
24460 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024461 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024462 _res = c;
24463 if (_res == NULL && PyErr_Occurred()) {
24464 p->error_indicator = 1;
24465 D(p->level--);
24466 return NULL;
24467 }
24468 goto done;
24469 }
24470 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024471 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024472 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
24473 }
24474 _res = NULL;
24475 done:
24476 D(p->level--);
24477 return _res;
24478}
24479
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024480// _tmp_144: 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024481static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024482_tmp_144_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024483{
24484 D(p->level++);
24485 if (p->error_indicator) {
24486 D(p->level--);
24487 return NULL;
24488 }
24489 void * _res = NULL;
24490 int _mark = p->mark;
24491 { // 'or' conjunction
24492 if (p->error_indicator) {
24493 D(p->level--);
24494 return NULL;
24495 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024496 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024497 Token * _keyword;
24498 expr_ty c;
24499 if (
24500 (_keyword = _PyPegen_expect_token(p, 531)) // token='or'
24501 &&
24502 (c = conjunction_rule(p)) // conjunction
24503 )
24504 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024505 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024506 _res = c;
24507 if (_res == NULL && PyErr_Occurred()) {
24508 p->error_indicator = 1;
24509 D(p->level--);
24510 return NULL;
24511 }
24512 goto done;
24513 }
24514 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024515 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024516 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
24517 }
24518 _res = NULL;
24519 done:
24520 D(p->level--);
24521 return _res;
24522}
24523
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024524// _tmp_145: 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024525static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024526_tmp_145_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024527{
24528 D(p->level++);
24529 if (p->error_indicator) {
24530 D(p->level--);
24531 return NULL;
24532 }
24533 void * _res = NULL;
24534 int _mark = p->mark;
24535 { // 'and' inversion
24536 if (p->error_indicator) {
24537 D(p->level--);
24538 return NULL;
24539 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024540 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024541 Token * _keyword;
24542 expr_ty c;
24543 if (
24544 (_keyword = _PyPegen_expect_token(p, 532)) // token='and'
24545 &&
24546 (c = inversion_rule(p)) // inversion
24547 )
24548 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024549 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024550 _res = c;
24551 if (_res == NULL && PyErr_Occurred()) {
24552 p->error_indicator = 1;
24553 D(p->level--);
24554 return NULL;
24555 }
24556 goto done;
24557 }
24558 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024559 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024560 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024561 }
24562 _res = NULL;
24563 done:
24564 D(p->level--);
24565 return _res;
24566}
24567
24568// _tmp_146: 'if' disjunction
24569static void *
24570_tmp_146_rule(Parser *p)
24571{
24572 D(p->level++);
24573 if (p->error_indicator) {
24574 D(p->level--);
24575 return NULL;
24576 }
24577 void * _res = NULL;
24578 int _mark = p->mark;
24579 { // 'if' disjunction
24580 if (p->error_indicator) {
24581 D(p->level--);
24582 return NULL;
24583 }
24584 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24585 Token * _keyword;
24586 expr_ty z;
24587 if (
24588 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
24589 &&
24590 (z = disjunction_rule(p)) // disjunction
24591 )
24592 {
24593 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24594 _res = z;
24595 if (_res == NULL && PyErr_Occurred()) {
24596 p->error_indicator = 1;
24597 D(p->level--);
24598 return NULL;
24599 }
24600 goto done;
24601 }
24602 p->mark = _mark;
24603 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
24604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
24605 }
24606 _res = NULL;
24607 done:
24608 D(p->level--);
24609 return _res;
24610}
24611
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024612// _tmp_147: 'if' disjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024613static void *
24614_tmp_147_rule(Parser *p)
24615{
24616 D(p->level++);
24617 if (p->error_indicator) {
24618 D(p->level--);
24619 return NULL;
24620 }
24621 void * _res = NULL;
24622 int _mark = p->mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024623 { // 'if' disjunction
24624 if (p->error_indicator) {
24625 D(p->level--);
24626 return NULL;
24627 }
24628 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24629 Token * _keyword;
24630 expr_ty z;
24631 if (
24632 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
24633 &&
24634 (z = disjunction_rule(p)) // disjunction
24635 )
24636 {
24637 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24638 _res = z;
24639 if (_res == NULL && PyErr_Occurred()) {
24640 p->error_indicator = 1;
24641 D(p->level--);
24642 return NULL;
24643 }
24644 goto done;
24645 }
24646 p->mark = _mark;
24647 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
24648 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
24649 }
24650 _res = NULL;
24651 done:
24652 D(p->level--);
24653 return _res;
24654}
24655
24656// _tmp_148: starred_expression | named_expression !'='
24657static void *
24658_tmp_148_rule(Parser *p)
24659{
24660 D(p->level++);
24661 if (p->error_indicator) {
24662 D(p->level--);
24663 return NULL;
24664 }
24665 void * _res = NULL;
24666 int _mark = p->mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010024667 { // starred_expression
24668 if (p->error_indicator) {
24669 D(p->level--);
24670 return NULL;
24671 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024672 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010024673 expr_ty starred_expression_var;
24674 if (
24675 (starred_expression_var = starred_expression_rule(p)) // starred_expression
24676 )
24677 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024678 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010024679 _res = starred_expression_var;
24680 goto done;
24681 }
24682 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024683 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010024684 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
24685 }
24686 { // named_expression !'='
24687 if (p->error_indicator) {
24688 D(p->level--);
24689 return NULL;
24690 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024691 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010024692 expr_ty named_expression_var;
24693 if (
24694 (named_expression_var = named_expression_rule(p)) // named_expression
24695 &&
24696 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
24697 )
24698 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024699 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010024700 _res = named_expression_var;
24701 goto done;
24702 }
24703 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024704 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010024705 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression !'='"));
24706 }
24707 _res = NULL;
24708 done:
24709 D(p->level--);
24710 return _res;
24711}
24712
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024713// _tmp_149: ',' star_target
Pablo Galindo4a97b152020-09-02 17:44:19 +010024714static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024715_tmp_149_rule(Parser *p)
Pablo Galindo4a97b152020-09-02 17:44:19 +010024716{
24717 D(p->level++);
24718 if (p->error_indicator) {
24719 D(p->level--);
24720 return NULL;
24721 }
24722 void * _res = NULL;
24723 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024724 { // ',' star_target
24725 if (p->error_indicator) {
24726 D(p->level--);
24727 return NULL;
24728 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024729 D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024730 Token * _literal;
24731 expr_ty c;
24732 if (
24733 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24734 &&
24735 (c = star_target_rule(p)) // star_target
24736 )
24737 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024738 D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024739 _res = c;
24740 if (_res == NULL && PyErr_Occurred()) {
24741 p->error_indicator = 1;
24742 D(p->level--);
24743 return NULL;
24744 }
24745 goto done;
24746 }
24747 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024748 D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024749 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024750 }
24751 _res = NULL;
24752 done:
24753 D(p->level--);
24754 return _res;
24755}
24756
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024757// _tmp_150: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024758static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024759_tmp_150_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024760{
24761 D(p->level++);
24762 if (p->error_indicator) {
24763 D(p->level--);
24764 return NULL;
24765 }
24766 void * _res = NULL;
24767 int _mark = p->mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024768 { // ',' star_target
24769 if (p->error_indicator) {
24770 D(p->level--);
24771 return NULL;
24772 }
24773 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
24774 Token * _literal;
24775 expr_ty c;
24776 if (
24777 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24778 &&
24779 (c = star_target_rule(p)) // star_target
24780 )
24781 {
24782 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
24783 _res = c;
24784 if (_res == NULL && PyErr_Occurred()) {
24785 p->error_indicator = 1;
24786 D(p->level--);
24787 return NULL;
24788 }
24789 goto done;
24790 }
24791 p->mark = _mark;
24792 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
24793 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
24794 }
24795 _res = NULL;
24796 done:
24797 D(p->level--);
24798 return _res;
24799}
24800
24801// _tmp_151: star_targets '='
24802static void *
24803_tmp_151_rule(Parser *p)
24804{
24805 D(p->level++);
24806 if (p->error_indicator) {
24807 D(p->level--);
24808 return NULL;
24809 }
24810 void * _res = NULL;
24811 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024812 { // star_targets '='
24813 if (p->error_indicator) {
24814 D(p->level--);
24815 return NULL;
24816 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024817 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024818 Token * _literal;
24819 expr_ty star_targets_var;
24820 if (
24821 (star_targets_var = star_targets_rule(p)) // star_targets
24822 &&
24823 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24824 )
24825 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024826 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024827 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
24828 goto done;
24829 }
24830 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024831 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024832 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
24833 }
24834 _res = NULL;
24835 done:
24836 D(p->level--);
24837 return _res;
24838}
24839
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024840// _tmp_152: star_targets '='
24841static void *
24842_tmp_152_rule(Parser *p)
24843{
24844 D(p->level++);
24845 if (p->error_indicator) {
24846 D(p->level--);
24847 return NULL;
24848 }
24849 void * _res = NULL;
24850 int _mark = p->mark;
24851 { // star_targets '='
24852 if (p->error_indicator) {
24853 D(p->level--);
24854 return NULL;
24855 }
24856 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
24857 Token * _literal;
24858 expr_ty star_targets_var;
24859 if (
24860 (star_targets_var = star_targets_rule(p)) // star_targets
24861 &&
24862 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24863 )
24864 {
24865 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
24866 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
24867 goto done;
24868 }
24869 p->mark = _mark;
24870 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
24871 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
24872 }
24873 _res = NULL;
24874 done:
24875 D(p->level--);
24876 return _res;
24877}
24878
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024879// _tmp_153: ')' | '**'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024880static void *
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024881_tmp_153_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024882{
24883 D(p->level++);
24884 if (p->error_indicator) {
24885 D(p->level--);
24886 return NULL;
24887 }
24888 void * _res = NULL;
24889 int _mark = p->mark;
24890 { // ')'
24891 if (p->error_indicator) {
24892 D(p->level--);
24893 return NULL;
24894 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024895 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024896 Token * _literal;
24897 if (
24898 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
24899 )
24900 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024901 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024902 _res = _literal;
24903 goto done;
24904 }
24905 p->mark = _mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024906 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
24908 }
24909 { // '**'
24910 if (p->error_indicator) {
24911 D(p->level--);
24912 return NULL;
24913 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024914 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024915 Token * _literal;
24916 if (
24917 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
24918 )
24919 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024920 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024921 _res = _literal;
24922 goto done;
24923 }
24924 p->mark = _mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024925 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
24927 }
24928 _res = NULL;
24929 done:
24930 D(p->level--);
24931 return _res;
24932}
24933
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024934// _tmp_154: ':' | '**'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024935static void *
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024936_tmp_154_rule(Parser *p)
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024937{
24938 D(p->level++);
24939 if (p->error_indicator) {
24940 D(p->level--);
24941 return NULL;
24942 }
24943 void * _res = NULL;
24944 int _mark = p->mark;
24945 { // ':'
24946 if (p->error_indicator) {
24947 D(p->level--);
24948 return NULL;
24949 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024950 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024951 Token * _literal;
24952 if (
24953 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
24954 )
24955 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024956 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024957 _res = _literal;
24958 goto done;
24959 }
24960 p->mark = _mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024961 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024962 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024963 }
24964 { // '**'
24965 if (p->error_indicator) {
24966 D(p->level--);
24967 return NULL;
24968 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024969 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024970 Token * _literal;
24971 if (
24972 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
24973 )
24974 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024975 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024976 _res = _literal;
24977 goto done;
24978 }
24979 p->mark = _mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020024980 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024981 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
24982 }
24983 _res = NULL;
24984 done:
24985 D(p->level--);
24986 return _res;
24987}
24988
24989void *
24990_PyPegen_parse(Parser *p)
24991{
24992 // Initialize keywords
24993 p->keywords = reserved_keywords;
24994 p->n_keyword_lists = n_keyword_lists;
24995
24996 // Run parser
24997 void *result = NULL;
24998 if (p->start_rule == Py_file_input) {
24999 result = file_rule(p);
25000 } else if (p->start_rule == Py_single_input) {
25001 result = interactive_rule(p);
25002 } else if (p->start_rule == Py_eval_input) {
25003 result = eval_rule(p);
25004 } else if (p->start_rule == Py_func_type_input) {
25005 result = func_type_rule(p);
25006 } else if (p->start_rule == Py_fstring_input) {
25007 result = fstring_rule(p);
25008 }
25009
25010 return result;
25011}
25012
25013// The end