blob: 66c6c45b35898cd0a02a1ca1cd029fb253b5ae25 [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
224#define invalid_lambda_parameters_type 1155
225#define invalid_star_etc_type 1156
226#define invalid_lambda_star_etc_type 1157
227#define invalid_double_type_comments_type 1158
228#define invalid_with_item_type 1159
229#define invalid_for_target_type 1160
230#define invalid_group_type 1161
231#define invalid_import_from_targets_type 1162
232#define _loop0_1_type 1163
233#define _loop0_2_type 1164
234#define _loop0_4_type 1165
235#define _gather_3_type 1166
236#define _loop0_6_type 1167
237#define _gather_5_type 1168
238#define _loop0_8_type 1169
239#define _gather_7_type 1170
240#define _loop0_10_type 1171
241#define _gather_9_type 1172
242#define _loop1_11_type 1173
243#define _loop0_13_type 1174
244#define _gather_12_type 1175
245#define _tmp_14_type 1176
246#define _tmp_15_type 1177
247#define _tmp_16_type 1178
248#define _tmp_17_type 1179
249#define _tmp_18_type 1180
250#define _tmp_19_type 1181
251#define _tmp_20_type 1182
252#define _tmp_21_type 1183
253#define _loop1_22_type 1184
254#define _tmp_23_type 1185
255#define _tmp_24_type 1186
256#define _loop0_26_type 1187
257#define _gather_25_type 1188
258#define _loop0_28_type 1189
259#define _gather_27_type 1190
260#define _tmp_29_type 1191
261#define _tmp_30_type 1192
262#define _loop0_31_type 1193
263#define _loop1_32_type 1194
264#define _loop0_34_type 1195
265#define _gather_33_type 1196
266#define _tmp_35_type 1197
267#define _loop0_37_type 1198
268#define _gather_36_type 1199
269#define _tmp_38_type 1200
270#define _loop0_40_type 1201
271#define _gather_39_type 1202
272#define _loop0_42_type 1203
273#define _gather_41_type 1204
274#define _loop0_44_type 1205
275#define _gather_43_type 1206
276#define _loop0_46_type 1207
277#define _gather_45_type 1208
278#define _tmp_47_type 1209
279#define _loop1_48_type 1210
280#define _tmp_49_type 1211
281#define _tmp_50_type 1212
282#define _tmp_51_type 1213
283#define _tmp_52_type 1214
284#define _tmp_53_type 1215
285#define _loop0_54_type 1216
286#define _loop0_55_type 1217
287#define _loop0_56_type 1218
288#define _loop1_57_type 1219
289#define _loop0_58_type 1220
290#define _loop1_59_type 1221
291#define _loop1_60_type 1222
292#define _loop1_61_type 1223
293#define _loop0_62_type 1224
294#define _loop1_63_type 1225
295#define _loop0_64_type 1226
296#define _loop1_65_type 1227
297#define _loop0_66_type 1228
298#define _loop1_67_type 1229
299#define _loop1_68_type 1230
300#define _tmp_69_type 1231
301#define _loop1_70_type 1232
302#define _loop0_72_type 1233
303#define _gather_71_type 1234
304#define _loop1_73_type 1235
305#define _loop0_74_type 1236
306#define _loop0_75_type 1237
307#define _loop0_76_type 1238
308#define _loop1_77_type 1239
309#define _loop0_78_type 1240
310#define _loop1_79_type 1241
311#define _loop1_80_type 1242
312#define _loop1_81_type 1243
313#define _loop0_82_type 1244
314#define _loop1_83_type 1245
315#define _loop0_84_type 1246
316#define _loop1_85_type 1247
317#define _loop0_86_type 1248
318#define _loop1_87_type 1249
319#define _loop1_88_type 1250
320#define _loop1_89_type 1251
321#define _loop1_90_type 1252
322#define _tmp_91_type 1253
323#define _loop0_93_type 1254
324#define _gather_92_type 1255
325#define _tmp_94_type 1256
326#define _tmp_95_type 1257
327#define _tmp_96_type 1258
328#define _tmp_97_type 1259
329#define _loop1_98_type 1260
330#define _tmp_99_type 1261
331#define _tmp_100_type 1262
332#define _loop0_102_type 1263
333#define _gather_101_type 1264
334#define _loop1_103_type 1265
335#define _loop0_104_type 1266
336#define _loop0_105_type 1267
337#define _loop0_107_type 1268
338#define _gather_106_type 1269
339#define _tmp_108_type 1270
340#define _loop0_110_type 1271
341#define _gather_109_type 1272
342#define _loop0_112_type 1273
343#define _gather_111_type 1274
344#define _loop0_114_type 1275
345#define _gather_113_type 1276
346#define _loop0_116_type 1277
347#define _gather_115_type 1278
348#define _loop0_117_type 1279
349#define _loop0_119_type 1280
350#define _gather_118_type 1281
351#define _loop1_120_type 1282
352#define _tmp_121_type 1283
353#define _loop0_123_type 1284
354#define _gather_122_type 1285
355#define _loop0_125_type 1286
356#define _gather_124_type 1287
357#define _tmp_126_type 1288
358#define _loop0_127_type 1289
359#define _loop0_128_type 1290
360#define _loop0_129_type 1291
361#define _tmp_130_type 1292
362#define _tmp_131_type 1293
363#define _loop0_132_type 1294
364#define _tmp_133_type 1295
365#define _loop0_134_type 1296
366#define _tmp_135_type 1297
367#define _tmp_136_type 1298
368#define _tmp_137_type 1299
369#define _tmp_138_type 1300
370#define _tmp_139_type 1301
371#define _tmp_140_type 1302
372#define _tmp_141_type 1303
373#define _tmp_142_type 1304
374#define _tmp_143_type 1305
375#define _tmp_144_type 1306
376#define _tmp_145_type 1307
377#define _tmp_146_type 1308
378#define _tmp_147_type 1309
379#define _tmp_148_type 1310
380#define _tmp_149_type 1311
381#define _tmp_150_type 1312
382#define _tmp_151_type 1313
383#define _tmp_152_type 1314
384#define _loop1_153_type 1315
385#define _loop1_154_type 1316
386#define _tmp_155_type 1317
387#define _tmp_156_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);
544static void *invalid_lambda_parameters_rule(Parser *p);
545static void *invalid_star_etc_rule(Parser *p);
546static void *invalid_lambda_star_etc_rule(Parser *p);
547static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300548static void *invalid_with_item_rule(Parser *p);
549static void *invalid_for_target_rule(Parser *p);
550static void *invalid_group_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100551static void *invalid_import_from_targets_rule(Parser *p);
552static asdl_seq *_loop0_1_rule(Parser *p);
553static asdl_seq *_loop0_2_rule(Parser *p);
554static asdl_seq *_loop0_4_rule(Parser *p);
555static asdl_seq *_gather_3_rule(Parser *p);
556static asdl_seq *_loop0_6_rule(Parser *p);
557static asdl_seq *_gather_5_rule(Parser *p);
558static asdl_seq *_loop0_8_rule(Parser *p);
559static asdl_seq *_gather_7_rule(Parser *p);
560static asdl_seq *_loop0_10_rule(Parser *p);
561static asdl_seq *_gather_9_rule(Parser *p);
562static asdl_seq *_loop1_11_rule(Parser *p);
563static asdl_seq *_loop0_13_rule(Parser *p);
564static asdl_seq *_gather_12_rule(Parser *p);
565static void *_tmp_14_rule(Parser *p);
566static void *_tmp_15_rule(Parser *p);
567static void *_tmp_16_rule(Parser *p);
568static void *_tmp_17_rule(Parser *p);
569static void *_tmp_18_rule(Parser *p);
570static void *_tmp_19_rule(Parser *p);
571static void *_tmp_20_rule(Parser *p);
572static void *_tmp_21_rule(Parser *p);
573static asdl_seq *_loop1_22_rule(Parser *p);
574static void *_tmp_23_rule(Parser *p);
575static void *_tmp_24_rule(Parser *p);
576static asdl_seq *_loop0_26_rule(Parser *p);
577static asdl_seq *_gather_25_rule(Parser *p);
578static asdl_seq *_loop0_28_rule(Parser *p);
579static asdl_seq *_gather_27_rule(Parser *p);
580static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300581static void *_tmp_30_rule(Parser *p);
582static asdl_seq *_loop0_31_rule(Parser *p);
583static asdl_seq *_loop1_32_rule(Parser *p);
584static asdl_seq *_loop0_34_rule(Parser *p);
585static asdl_seq *_gather_33_rule(Parser *p);
586static void *_tmp_35_rule(Parser *p);
587static asdl_seq *_loop0_37_rule(Parser *p);
588static asdl_seq *_gather_36_rule(Parser *p);
589static void *_tmp_38_rule(Parser *p);
590static asdl_seq *_loop0_40_rule(Parser *p);
591static asdl_seq *_gather_39_rule(Parser *p);
592static asdl_seq *_loop0_42_rule(Parser *p);
593static asdl_seq *_gather_41_rule(Parser *p);
594static asdl_seq *_loop0_44_rule(Parser *p);
595static asdl_seq *_gather_43_rule(Parser *p);
596static asdl_seq *_loop0_46_rule(Parser *p);
597static asdl_seq *_gather_45_rule(Parser *p);
598static void *_tmp_47_rule(Parser *p);
599static asdl_seq *_loop1_48_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100600static void *_tmp_49_rule(Parser *p);
601static void *_tmp_50_rule(Parser *p);
602static void *_tmp_51_rule(Parser *p);
603static void *_tmp_52_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300604static void *_tmp_53_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100605static asdl_seq *_loop0_54_rule(Parser *p);
606static asdl_seq *_loop0_55_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300607static asdl_seq *_loop0_56_rule(Parser *p);
608static asdl_seq *_loop1_57_rule(Parser *p);
609static asdl_seq *_loop0_58_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100610static asdl_seq *_loop1_59_rule(Parser *p);
611static asdl_seq *_loop1_60_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300612static asdl_seq *_loop1_61_rule(Parser *p);
613static asdl_seq *_loop0_62_rule(Parser *p);
614static asdl_seq *_loop1_63_rule(Parser *p);
615static asdl_seq *_loop0_64_rule(Parser *p);
616static asdl_seq *_loop1_65_rule(Parser *p);
617static asdl_seq *_loop0_66_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100618static asdl_seq *_loop1_67_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300619static asdl_seq *_loop1_68_rule(Parser *p);
620static void *_tmp_69_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000621static asdl_seq *_loop1_70_rule(Parser *p);
622static asdl_seq *_loop0_72_rule(Parser *p);
623static asdl_seq *_gather_71_rule(Parser *p);
624static asdl_seq *_loop1_73_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300625static asdl_seq *_loop0_74_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000626static asdl_seq *_loop0_75_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100627static asdl_seq *_loop0_76_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000628static asdl_seq *_loop1_77_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300629static asdl_seq *_loop0_78_rule(Parser *p);
630static asdl_seq *_loop1_79_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000631static asdl_seq *_loop1_80_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100632static asdl_seq *_loop1_81_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000633static asdl_seq *_loop0_82_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300634static asdl_seq *_loop1_83_rule(Parser *p);
635static asdl_seq *_loop0_84_rule(Parser *p);
636static asdl_seq *_loop1_85_rule(Parser *p);
637static asdl_seq *_loop0_86_rule(Parser *p);
638static asdl_seq *_loop1_87_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000639static asdl_seq *_loop1_88_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100640static asdl_seq *_loop1_89_rule(Parser *p);
641static asdl_seq *_loop1_90_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000642static void *_tmp_91_rule(Parser *p);
643static asdl_seq *_loop0_93_rule(Parser *p);
644static asdl_seq *_gather_92_rule(Parser *p);
645static void *_tmp_94_rule(Parser *p);
646static void *_tmp_95_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100647static void *_tmp_96_rule(Parser *p);
648static void *_tmp_97_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000649static asdl_seq *_loop1_98_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300650static void *_tmp_99_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000651static void *_tmp_100_rule(Parser *p);
652static asdl_seq *_loop0_102_rule(Parser *p);
653static asdl_seq *_gather_101_rule(Parser *p);
654static asdl_seq *_loop1_103_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300655static asdl_seq *_loop0_104_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000656static asdl_seq *_loop0_105_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300657static asdl_seq *_loop0_107_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000658static asdl_seq *_gather_106_rule(Parser *p);
659static void *_tmp_108_rule(Parser *p);
660static asdl_seq *_loop0_110_rule(Parser *p);
661static asdl_seq *_gather_109_rule(Parser *p);
Pablo Galindo4a97b152020-09-02 17:44:19 +0100662static asdl_seq *_loop0_112_rule(Parser *p);
663static asdl_seq *_gather_111_rule(Parser *p);
664static asdl_seq *_loop0_114_rule(Parser *p);
665static asdl_seq *_gather_113_rule(Parser *p);
666static asdl_seq *_loop0_116_rule(Parser *p);
667static asdl_seq *_gather_115_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000668static asdl_seq *_loop0_117_rule(Parser *p);
Pablo Galindo4a97b152020-09-02 17:44:19 +0100669static asdl_seq *_loop0_119_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000670static asdl_seq *_gather_118_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200671static asdl_seq *_loop1_120_rule(Parser *p);
672static void *_tmp_121_rule(Parser *p);
673static asdl_seq *_loop0_123_rule(Parser *p);
674static asdl_seq *_gather_122_rule(Parser *p);
675static asdl_seq *_loop0_125_rule(Parser *p);
676static asdl_seq *_gather_124_rule(Parser *p);
677static void *_tmp_126_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000678static asdl_seq *_loop0_127_rule(Parser *p);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +0300679static asdl_seq *_loop0_128_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200680static asdl_seq *_loop0_129_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000681static void *_tmp_130_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200682static void *_tmp_131_rule(Parser *p);
683static asdl_seq *_loop0_132_rule(Parser *p);
684static void *_tmp_133_rule(Parser *p);
685static asdl_seq *_loop0_134_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000686static void *_tmp_135_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100687static void *_tmp_136_rule(Parser *p);
688static void *_tmp_137_rule(Parser *p);
689static void *_tmp_138_rule(Parser *p);
690static void *_tmp_139_rule(Parser *p);
691static void *_tmp_140_rule(Parser *p);
692static void *_tmp_141_rule(Parser *p);
693static void *_tmp_142_rule(Parser *p);
694static void *_tmp_143_rule(Parser *p);
695static void *_tmp_144_rule(Parser *p);
696static void *_tmp_145_rule(Parser *p);
697static void *_tmp_146_rule(Parser *p);
698static void *_tmp_147_rule(Parser *p);
699static void *_tmp_148_rule(Parser *p);
700static void *_tmp_149_rule(Parser *p);
701static void *_tmp_150_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200702static void *_tmp_151_rule(Parser *p);
703static void *_tmp_152_rule(Parser *p);
704static asdl_seq *_loop1_153_rule(Parser *p);
705static asdl_seq *_loop1_154_rule(Parser *p);
706static void *_tmp_155_rule(Parser *p);
707static void *_tmp_156_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
15297// invalid_parameters:
15298// | param_no_default* (slash_with_default | param_with_default+) param_no_default
15299static void *
15300invalid_parameters_rule(Parser *p)
15301{
15302 D(p->level++);
15303 if (p->error_indicator) {
15304 D(p->level--);
15305 return NULL;
15306 }
15307 void * _res = NULL;
15308 int _mark = p->mark;
15309 { // param_no_default* (slash_with_default | param_with_default+) param_no_default
15310 if (p->error_indicator) {
15311 D(p->level--);
15312 return NULL;
15313 }
15314 D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* (slash_with_default | param_with_default+) param_no_default"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015315 asdl_seq * _loop0_132_var;
15316 void *_tmp_133_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015317 arg_ty param_no_default_var;
15318 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015319 (_loop0_132_var = _loop0_132_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015320 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015321 (_tmp_133_var = _tmp_133_rule(p)) // slash_with_default | param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015322 &&
15323 (param_no_default_var = param_no_default_rule(p)) // param_no_default
15324 )
15325 {
15326 D(fprintf(stderr, "%*c+ invalid_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default* (slash_with_default | param_with_default+) param_no_default"));
15327 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
15328 if (_res == NULL && PyErr_Occurred()) {
15329 p->error_indicator = 1;
15330 D(p->level--);
15331 return NULL;
15332 }
15333 goto done;
15334 }
15335 p->mark = _mark;
15336 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
15337 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* (slash_with_default | param_with_default+) param_no_default"));
15338 }
15339 _res = NULL;
15340 done:
15341 D(p->level--);
15342 return _res;
15343}
15344
15345// invalid_lambda_parameters:
15346// | lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default
15347static void *
15348invalid_lambda_parameters_rule(Parser *p)
15349{
15350 D(p->level++);
15351 if (p->error_indicator) {
15352 D(p->level--);
15353 return NULL;
15354 }
15355 void * _res = NULL;
15356 int _mark = p->mark;
15357 { // lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default
15358 if (p->error_indicator) {
15359 D(p->level--);
15360 return NULL;
15361 }
15362 D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015363 asdl_seq * _loop0_134_var;
15364 void *_tmp_135_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015365 arg_ty lambda_param_no_default_var;
15366 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015367 (_loop0_134_var = _loop0_134_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015368 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015369 (_tmp_135_var = _tmp_135_rule(p)) // lambda_slash_with_default | lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015370 &&
15371 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
15372 )
15373 {
15374 D(fprintf(stderr, "%*c+ invalid_lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default"));
15375 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
15376 if (_res == NULL && PyErr_Occurred()) {
15377 p->error_indicator = 1;
15378 D(p->level--);
15379 return NULL;
15380 }
15381 goto done;
15382 }
15383 p->mark = _mark;
15384 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
15385 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default"));
15386 }
15387 _res = NULL;
15388 done:
15389 D(p->level--);
15390 return _res;
15391}
15392
15393// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
15394static void *
15395invalid_star_etc_rule(Parser *p)
15396{
15397 D(p->level++);
15398 if (p->error_indicator) {
15399 D(p->level--);
15400 return NULL;
15401 }
15402 void * _res = NULL;
15403 int _mark = p->mark;
15404 { // '*' (')' | ',' (')' | '**'))
15405 if (p->error_indicator) {
15406 D(p->level--);
15407 return NULL;
15408 }
15409 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
15410 Token * _literal;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015411 void *_tmp_136_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015412 if (
15413 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15414 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015415 (_tmp_136_var = _tmp_136_rule(p)) // ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015416 )
15417 {
15418 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
15419 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15420 if (_res == NULL && PyErr_Occurred()) {
15421 p->error_indicator = 1;
15422 D(p->level--);
15423 return NULL;
15424 }
15425 goto done;
15426 }
15427 p->mark = _mark;
15428 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15429 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
15430 }
15431 { // '*' ',' TYPE_COMMENT
15432 if (p->error_indicator) {
15433 D(p->level--);
15434 return NULL;
15435 }
15436 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
15437 Token * _literal;
15438 Token * _literal_1;
15439 Token * type_comment_var;
15440 if (
15441 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15442 &&
15443 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
15444 &&
15445 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
15446 )
15447 {
15448 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
15449 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
15450 if (_res == NULL && PyErr_Occurred()) {
15451 p->error_indicator = 1;
15452 D(p->level--);
15453 return NULL;
15454 }
15455 goto done;
15456 }
15457 p->mark = _mark;
15458 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15459 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
15460 }
15461 _res = NULL;
15462 done:
15463 D(p->level--);
15464 return _res;
15465}
15466
15467// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
15468static void *
15469invalid_lambda_star_etc_rule(Parser *p)
15470{
15471 D(p->level++);
15472 if (p->error_indicator) {
15473 D(p->level--);
15474 return NULL;
15475 }
15476 void * _res = NULL;
15477 int _mark = p->mark;
15478 { // '*' (':' | ',' (':' | '**'))
15479 if (p->error_indicator) {
15480 D(p->level--);
15481 return NULL;
15482 }
15483 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
15484 Token * _literal;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015485 void *_tmp_137_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015486 if (
15487 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15488 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020015489 (_tmp_137_var = _tmp_137_rule(p)) // ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015490 )
15491 {
15492 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
15493 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15494 if (_res == NULL && PyErr_Occurred()) {
15495 p->error_indicator = 1;
15496 D(p->level--);
15497 return NULL;
15498 }
15499 goto done;
15500 }
15501 p->mark = _mark;
15502 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15503 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
15504 }
15505 _res = NULL;
15506 done:
15507 D(p->level--);
15508 return _res;
15509}
15510
15511// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
15512static void *
15513invalid_double_type_comments_rule(Parser *p)
15514{
15515 D(p->level++);
15516 if (p->error_indicator) {
15517 D(p->level--);
15518 return NULL;
15519 }
15520 void * _res = NULL;
15521 int _mark = p->mark;
15522 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
15523 if (p->error_indicator) {
15524 D(p->level--);
15525 return NULL;
15526 }
15527 D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
15528 Token * indent_var;
15529 Token * newline_var;
15530 Token * newline_var_1;
15531 Token * type_comment_var;
15532 Token * type_comment_var_1;
15533 if (
15534 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
15535 &&
15536 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
15537 &&
15538 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
15539 &&
15540 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
15541 &&
15542 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
15543 )
15544 {
15545 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"));
15546 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
15547 if (_res == NULL && PyErr_Occurred()) {
15548 p->error_indicator = 1;
15549 D(p->level--);
15550 return NULL;
15551 }
15552 goto done;
15553 }
15554 p->mark = _mark;
15555 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
15556 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
15557 }
15558 _res = NULL;
15559 done:
15560 D(p->level--);
15561 return _res;
15562}
15563
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015564// invalid_with_item: expression 'as' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015565static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015566invalid_with_item_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015567{
15568 D(p->level++);
15569 if (p->error_indicator) {
15570 D(p->level--);
15571 return NULL;
15572 }
15573 void * _res = NULL;
15574 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015575 { // expression 'as' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015576 if (p->error_indicator) {
15577 D(p->level--);
15578 return NULL;
15579 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015580 D(fprintf(stderr, "%*c> invalid_with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression 'as' expression"));
15581 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015582 expr_ty a;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015583 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015584 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015585 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015586 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015587 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
15588 &&
15589 (a = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015590 )
15591 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015592 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 +030015593 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015594 if (_res == NULL && PyErr_Occurred()) {
15595 p->error_indicator = 1;
15596 D(p->level--);
15597 return NULL;
15598 }
15599 goto done;
15600 }
15601 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015602 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
15603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression"));
15604 }
15605 _res = NULL;
15606 done:
15607 D(p->level--);
15608 return _res;
15609}
15610
15611// invalid_for_target: ASYNC? 'for' star_expressions
15612static void *
15613invalid_for_target_rule(Parser *p)
15614{
15615 D(p->level++);
15616 if (p->error_indicator) {
15617 D(p->level--);
15618 return NULL;
15619 }
15620 void * _res = NULL;
15621 int _mark = p->mark;
15622 { // ASYNC? 'for' star_expressions
15623 if (p->error_indicator) {
15624 D(p->level--);
15625 return NULL;
15626 }
15627 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
15628 Token * _keyword;
15629 void *_opt_var;
15630 UNUSED(_opt_var); // Silence compiler warnings
15631 expr_ty a;
15632 if (
15633 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
15634 &&
15635 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15636 &&
15637 (a = star_expressions_rule(p)) // star_expressions
15638 )
15639 {
15640 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 +030015641 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015642 if (_res == NULL && PyErr_Occurred()) {
15643 p->error_indicator = 1;
15644 D(p->level--);
15645 return NULL;
15646 }
15647 goto done;
15648 }
15649 p->mark = _mark;
15650 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
15651 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
15652 }
15653 _res = NULL;
15654 done:
15655 D(p->level--);
15656 return _res;
15657}
15658
15659// invalid_group: '(' starred_expression ')'
15660static void *
15661invalid_group_rule(Parser *p)
15662{
15663 D(p->level++);
15664 if (p->error_indicator) {
15665 D(p->level--);
15666 return NULL;
15667 }
15668 void * _res = NULL;
15669 int _mark = p->mark;
15670 { // '(' starred_expression ')'
15671 if (p->error_indicator) {
15672 D(p->level--);
15673 return NULL;
15674 }
15675 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
15676 Token * _literal;
15677 Token * _literal_1;
15678 expr_ty a;
15679 if (
15680 (_literal = _PyPegen_expect_token(p, 7)) // token='('
15681 &&
15682 (a = starred_expression_rule(p)) // starred_expression
15683 &&
15684 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
15685 )
15686 {
15687 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
15688 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "can't use starred expression here" );
15689 if (_res == NULL && PyErr_Occurred()) {
15690 p->error_indicator = 1;
15691 D(p->level--);
15692 return NULL;
15693 }
15694 goto done;
15695 }
15696 p->mark = _mark;
15697 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
15698 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015699 }
15700 _res = NULL;
15701 done:
15702 D(p->level--);
15703 return _res;
15704}
15705
15706// invalid_import_from_targets: import_from_as_names ','
15707static void *
15708invalid_import_from_targets_rule(Parser *p)
15709{
15710 D(p->level++);
15711 if (p->error_indicator) {
15712 D(p->level--);
15713 return NULL;
15714 }
15715 void * _res = NULL;
15716 int _mark = p->mark;
15717 { // import_from_as_names ','
15718 if (p->error_indicator) {
15719 D(p->level--);
15720 return NULL;
15721 }
15722 D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
15723 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015724 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015725 if (
15726 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
15727 &&
15728 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15729 )
15730 {
15731 D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
15732 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
15733 if (_res == NULL && PyErr_Occurred()) {
15734 p->error_indicator = 1;
15735 D(p->level--);
15736 return NULL;
15737 }
15738 goto done;
15739 }
15740 p->mark = _mark;
15741 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
15742 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
15743 }
15744 _res = NULL;
15745 done:
15746 D(p->level--);
15747 return _res;
15748}
15749
15750// _loop0_1: NEWLINE
15751static asdl_seq *
15752_loop0_1_rule(Parser *p)
15753{
15754 D(p->level++);
15755 if (p->error_indicator) {
15756 D(p->level--);
15757 return NULL;
15758 }
15759 void *_res = NULL;
15760 int _mark = p->mark;
15761 int _start_mark = p->mark;
15762 void **_children = PyMem_Malloc(sizeof(void *));
15763 if (!_children) {
15764 p->error_indicator = 1;
15765 PyErr_NoMemory();
15766 D(p->level--);
15767 return NULL;
15768 }
15769 ssize_t _children_capacity = 1;
15770 ssize_t _n = 0;
15771 { // NEWLINE
15772 if (p->error_indicator) {
15773 D(p->level--);
15774 return NULL;
15775 }
15776 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
15777 Token * newline_var;
15778 while (
15779 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
15780 )
15781 {
15782 _res = newline_var;
15783 if (_n == _children_capacity) {
15784 _children_capacity *= 2;
15785 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15786 if (!_new_children) {
15787 p->error_indicator = 1;
15788 PyErr_NoMemory();
15789 D(p->level--);
15790 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000015791 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015792 _children = _new_children;
15793 }
15794 _children[_n++] = _res;
15795 _mark = p->mark;
15796 }
15797 p->mark = _mark;
15798 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
15799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
15800 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015801 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015802 if (!_seq) {
15803 PyMem_Free(_children);
15804 p->error_indicator = 1;
15805 PyErr_NoMemory();
15806 D(p->level--);
15807 return NULL;
15808 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015809 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015810 PyMem_Free(_children);
15811 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
15812 D(p->level--);
15813 return _seq;
15814}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000015815
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015816// _loop0_2: NEWLINE
15817static asdl_seq *
15818_loop0_2_rule(Parser *p)
15819{
15820 D(p->level++);
15821 if (p->error_indicator) {
15822 D(p->level--);
15823 return NULL;
15824 }
15825 void *_res = NULL;
15826 int _mark = p->mark;
15827 int _start_mark = p->mark;
15828 void **_children = PyMem_Malloc(sizeof(void *));
15829 if (!_children) {
15830 p->error_indicator = 1;
15831 PyErr_NoMemory();
15832 D(p->level--);
15833 return NULL;
15834 }
15835 ssize_t _children_capacity = 1;
15836 ssize_t _n = 0;
15837 { // NEWLINE
15838 if (p->error_indicator) {
15839 D(p->level--);
15840 return NULL;
15841 }
15842 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
15843 Token * newline_var;
15844 while (
15845 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
15846 )
15847 {
15848 _res = newline_var;
15849 if (_n == _children_capacity) {
15850 _children_capacity *= 2;
15851 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15852 if (!_new_children) {
15853 p->error_indicator = 1;
15854 PyErr_NoMemory();
15855 D(p->level--);
15856 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000015857 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015858 _children = _new_children;
15859 }
15860 _children[_n++] = _res;
15861 _mark = p->mark;
15862 }
15863 p->mark = _mark;
15864 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
15865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
15866 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015867 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015868 if (!_seq) {
15869 PyMem_Free(_children);
15870 p->error_indicator = 1;
15871 PyErr_NoMemory();
15872 D(p->level--);
15873 return NULL;
15874 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015875 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015876 PyMem_Free(_children);
15877 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
15878 D(p->level--);
15879 return _seq;
15880}
15881
15882// _loop0_4: ',' expression
15883static asdl_seq *
15884_loop0_4_rule(Parser *p)
15885{
15886 D(p->level++);
15887 if (p->error_indicator) {
15888 D(p->level--);
15889 return NULL;
15890 }
15891 void *_res = NULL;
15892 int _mark = p->mark;
15893 int _start_mark = p->mark;
15894 void **_children = PyMem_Malloc(sizeof(void *));
15895 if (!_children) {
15896 p->error_indicator = 1;
15897 PyErr_NoMemory();
15898 D(p->level--);
15899 return NULL;
15900 }
15901 ssize_t _children_capacity = 1;
15902 ssize_t _n = 0;
15903 { // ',' expression
15904 if (p->error_indicator) {
15905 D(p->level--);
15906 return NULL;
15907 }
15908 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
15909 Token * _literal;
15910 expr_ty elem;
15911 while (
15912 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15913 &&
15914 (elem = expression_rule(p)) // expression
15915 )
15916 {
15917 _res = elem;
15918 if (_res == NULL && PyErr_Occurred()) {
15919 p->error_indicator = 1;
15920 PyMem_Free(_children);
15921 D(p->level--);
15922 return NULL;
15923 }
15924 if (_n == _children_capacity) {
15925 _children_capacity *= 2;
15926 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15927 if (!_new_children) {
15928 p->error_indicator = 1;
15929 PyErr_NoMemory();
15930 D(p->level--);
15931 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000015932 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015933 _children = _new_children;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000015934 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015935 _children[_n++] = _res;
15936 _mark = p->mark;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000015937 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015938 p->mark = _mark;
15939 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
15940 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000015941 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015942 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015943 if (!_seq) {
15944 PyMem_Free(_children);
15945 p->error_indicator = 1;
15946 PyErr_NoMemory();
15947 D(p->level--);
15948 return NULL;
15949 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015950 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015951 PyMem_Free(_children);
15952 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
15953 D(p->level--);
15954 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000015955}
15956
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015957// _gather_3: expression _loop0_4
15958static asdl_seq *
15959_gather_3_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000015960{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015961 D(p->level++);
15962 if (p->error_indicator) {
15963 D(p->level--);
15964 return NULL;
15965 }
15966 asdl_seq * _res = NULL;
15967 int _mark = p->mark;
15968 { // expression _loop0_4
15969 if (p->error_indicator) {
15970 D(p->level--);
15971 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000015972 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015973 D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
15974 expr_ty elem;
15975 asdl_seq * seq;
15976 if (
15977 (elem = expression_rule(p)) // expression
15978 &&
15979 (seq = _loop0_4_rule(p)) // _loop0_4
15980 )
15981 {
15982 D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
15983 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
15984 goto done;
15985 }
15986 p->mark = _mark;
15987 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
15988 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000015989 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015990 _res = NULL;
15991 done:
15992 D(p->level--);
15993 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000015994}
15995
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015996// _loop0_6: ',' expression
15997static asdl_seq *
15998_loop0_6_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000015999{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016000 D(p->level++);
16001 if (p->error_indicator) {
16002 D(p->level--);
16003 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016004 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016005 void *_res = NULL;
16006 int _mark = p->mark;
16007 int _start_mark = p->mark;
16008 void **_children = PyMem_Malloc(sizeof(void *));
16009 if (!_children) {
16010 p->error_indicator = 1;
16011 PyErr_NoMemory();
16012 D(p->level--);
16013 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016014 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016015 ssize_t _children_capacity = 1;
16016 ssize_t _n = 0;
16017 { // ',' expression
16018 if (p->error_indicator) {
16019 D(p->level--);
16020 return NULL;
16021 }
16022 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
16023 Token * _literal;
16024 expr_ty elem;
16025 while (
16026 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16027 &&
16028 (elem = expression_rule(p)) // expression
16029 )
16030 {
16031 _res = elem;
16032 if (_res == NULL && PyErr_Occurred()) {
16033 p->error_indicator = 1;
16034 PyMem_Free(_children);
16035 D(p->level--);
16036 return NULL;
16037 }
16038 if (_n == _children_capacity) {
16039 _children_capacity *= 2;
16040 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16041 if (!_new_children) {
16042 p->error_indicator = 1;
16043 PyErr_NoMemory();
16044 D(p->level--);
16045 return NULL;
16046 }
16047 _children = _new_children;
16048 }
16049 _children[_n++] = _res;
16050 _mark = p->mark;
16051 }
16052 p->mark = _mark;
16053 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
16054 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
16055 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016056 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016057 if (!_seq) {
16058 PyMem_Free(_children);
16059 p->error_indicator = 1;
16060 PyErr_NoMemory();
16061 D(p->level--);
16062 return NULL;
16063 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016064 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016065 PyMem_Free(_children);
16066 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
16067 D(p->level--);
16068 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016069}
16070
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016071// _gather_5: expression _loop0_6
16072static asdl_seq *
16073_gather_5_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016074{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016075 D(p->level++);
16076 if (p->error_indicator) {
16077 D(p->level--);
16078 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000016079 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016080 asdl_seq * _res = NULL;
16081 int _mark = p->mark;
16082 { // expression _loop0_6
16083 if (p->error_indicator) {
16084 D(p->level--);
16085 return NULL;
16086 }
16087 D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
16088 expr_ty elem;
16089 asdl_seq * seq;
16090 if (
16091 (elem = expression_rule(p)) // expression
16092 &&
16093 (seq = _loop0_6_rule(p)) // _loop0_6
16094 )
16095 {
16096 D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
16097 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16098 goto done;
16099 }
16100 p->mark = _mark;
16101 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
16102 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
16103 }
16104 _res = NULL;
16105 done:
16106 D(p->level--);
16107 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016108}
16109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016110// _loop0_8: ',' expression
16111static asdl_seq *
16112_loop0_8_rule(Parser *p)
16113{
16114 D(p->level++);
16115 if (p->error_indicator) {
16116 D(p->level--);
16117 return NULL;
16118 }
16119 void *_res = NULL;
16120 int _mark = p->mark;
16121 int _start_mark = p->mark;
16122 void **_children = PyMem_Malloc(sizeof(void *));
16123 if (!_children) {
16124 p->error_indicator = 1;
16125 PyErr_NoMemory();
16126 D(p->level--);
16127 return NULL;
16128 }
16129 ssize_t _children_capacity = 1;
16130 ssize_t _n = 0;
16131 { // ',' expression
16132 if (p->error_indicator) {
16133 D(p->level--);
16134 return NULL;
16135 }
16136 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
16137 Token * _literal;
16138 expr_ty elem;
16139 while (
16140 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16141 &&
16142 (elem = expression_rule(p)) // expression
16143 )
16144 {
16145 _res = elem;
16146 if (_res == NULL && PyErr_Occurred()) {
16147 p->error_indicator = 1;
16148 PyMem_Free(_children);
16149 D(p->level--);
16150 return NULL;
16151 }
16152 if (_n == _children_capacity) {
16153 _children_capacity *= 2;
16154 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16155 if (!_new_children) {
16156 p->error_indicator = 1;
16157 PyErr_NoMemory();
16158 D(p->level--);
16159 return NULL;
16160 }
16161 _children = _new_children;
16162 }
16163 _children[_n++] = _res;
16164 _mark = p->mark;
16165 }
16166 p->mark = _mark;
16167 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
16168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
16169 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016170 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016171 if (!_seq) {
16172 PyMem_Free(_children);
16173 p->error_indicator = 1;
16174 PyErr_NoMemory();
16175 D(p->level--);
16176 return NULL;
16177 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016178 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016179 PyMem_Free(_children);
16180 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
16181 D(p->level--);
16182 return _seq;
16183}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016184
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016185// _gather_7: expression _loop0_8
16186static asdl_seq *
16187_gather_7_rule(Parser *p)
16188{
16189 D(p->level++);
16190 if (p->error_indicator) {
16191 D(p->level--);
16192 return NULL;
16193 }
16194 asdl_seq * _res = NULL;
16195 int _mark = p->mark;
16196 { // expression _loop0_8
16197 if (p->error_indicator) {
16198 D(p->level--);
16199 return NULL;
16200 }
16201 D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
16202 expr_ty elem;
16203 asdl_seq * seq;
16204 if (
16205 (elem = expression_rule(p)) // expression
16206 &&
16207 (seq = _loop0_8_rule(p)) // _loop0_8
16208 )
16209 {
16210 D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
16211 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16212 goto done;
16213 }
16214 p->mark = _mark;
16215 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
16216 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
16217 }
16218 _res = NULL;
16219 done:
16220 D(p->level--);
16221 return _res;
16222}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016223
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016224// _loop0_10: ',' expression
16225static asdl_seq *
16226_loop0_10_rule(Parser *p)
16227{
16228 D(p->level++);
16229 if (p->error_indicator) {
16230 D(p->level--);
16231 return NULL;
16232 }
16233 void *_res = NULL;
16234 int _mark = p->mark;
16235 int _start_mark = p->mark;
16236 void **_children = PyMem_Malloc(sizeof(void *));
16237 if (!_children) {
16238 p->error_indicator = 1;
16239 PyErr_NoMemory();
16240 D(p->level--);
16241 return NULL;
16242 }
16243 ssize_t _children_capacity = 1;
16244 ssize_t _n = 0;
16245 { // ',' expression
16246 if (p->error_indicator) {
16247 D(p->level--);
16248 return NULL;
16249 }
16250 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
16251 Token * _literal;
16252 expr_ty elem;
16253 while (
16254 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16255 &&
16256 (elem = expression_rule(p)) // expression
16257 )
16258 {
16259 _res = elem;
16260 if (_res == NULL && PyErr_Occurred()) {
16261 p->error_indicator = 1;
16262 PyMem_Free(_children);
16263 D(p->level--);
16264 return NULL;
16265 }
16266 if (_n == _children_capacity) {
16267 _children_capacity *= 2;
16268 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16269 if (!_new_children) {
16270 p->error_indicator = 1;
16271 PyErr_NoMemory();
16272 D(p->level--);
16273 return NULL;
16274 }
16275 _children = _new_children;
16276 }
16277 _children[_n++] = _res;
16278 _mark = p->mark;
16279 }
16280 p->mark = _mark;
16281 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
16282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
16283 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016284 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016285 if (!_seq) {
16286 PyMem_Free(_children);
16287 p->error_indicator = 1;
16288 PyErr_NoMemory();
16289 D(p->level--);
16290 return NULL;
16291 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016292 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016293 PyMem_Free(_children);
16294 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
16295 D(p->level--);
16296 return _seq;
16297}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016298
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016299// _gather_9: expression _loop0_10
16300static asdl_seq *
16301_gather_9_rule(Parser *p)
16302{
16303 D(p->level++);
16304 if (p->error_indicator) {
16305 D(p->level--);
16306 return NULL;
16307 }
16308 asdl_seq * _res = NULL;
16309 int _mark = p->mark;
16310 { // expression _loop0_10
16311 if (p->error_indicator) {
16312 D(p->level--);
16313 return NULL;
16314 }
16315 D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
16316 expr_ty elem;
16317 asdl_seq * seq;
16318 if (
16319 (elem = expression_rule(p)) // expression
16320 &&
16321 (seq = _loop0_10_rule(p)) // _loop0_10
16322 )
16323 {
16324 D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
16325 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16326 goto done;
16327 }
16328 p->mark = _mark;
16329 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
16330 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
16331 }
16332 _res = NULL;
16333 done:
16334 D(p->level--);
16335 return _res;
16336}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016337
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016338// _loop1_11: statement
16339static asdl_seq *
16340_loop1_11_rule(Parser *p)
16341{
16342 D(p->level++);
16343 if (p->error_indicator) {
16344 D(p->level--);
16345 return NULL;
16346 }
16347 void *_res = NULL;
16348 int _mark = p->mark;
16349 int _start_mark = p->mark;
16350 void **_children = PyMem_Malloc(sizeof(void *));
16351 if (!_children) {
16352 p->error_indicator = 1;
16353 PyErr_NoMemory();
16354 D(p->level--);
16355 return NULL;
16356 }
16357 ssize_t _children_capacity = 1;
16358 ssize_t _n = 0;
16359 { // statement
16360 if (p->error_indicator) {
16361 D(p->level--);
16362 return NULL;
16363 }
16364 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010016365 asdl_stmt_seq* statement_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016366 while (
16367 (statement_var = statement_rule(p)) // statement
16368 )
16369 {
16370 _res = statement_var;
16371 if (_n == _children_capacity) {
16372 _children_capacity *= 2;
16373 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16374 if (!_new_children) {
16375 p->error_indicator = 1;
16376 PyErr_NoMemory();
16377 D(p->level--);
16378 return NULL;
16379 }
16380 _children = _new_children;
16381 }
16382 _children[_n++] = _res;
16383 _mark = p->mark;
16384 }
16385 p->mark = _mark;
16386 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
16387 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
16388 }
16389 if (_n == 0 || p->error_indicator) {
16390 PyMem_Free(_children);
16391 D(p->level--);
16392 return NULL;
16393 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016394 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016395 if (!_seq) {
16396 PyMem_Free(_children);
16397 p->error_indicator = 1;
16398 PyErr_NoMemory();
16399 D(p->level--);
16400 return NULL;
16401 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016402 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016403 PyMem_Free(_children);
16404 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
16405 D(p->level--);
16406 return _seq;
16407}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016408
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016409// _loop0_13: ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016410static asdl_seq *
16411_loop0_13_rule(Parser *p)
16412{
16413 D(p->level++);
16414 if (p->error_indicator) {
16415 D(p->level--);
16416 return NULL;
16417 }
16418 void *_res = NULL;
16419 int _mark = p->mark;
16420 int _start_mark = p->mark;
16421 void **_children = PyMem_Malloc(sizeof(void *));
16422 if (!_children) {
16423 p->error_indicator = 1;
16424 PyErr_NoMemory();
16425 D(p->level--);
16426 return NULL;
16427 }
16428 ssize_t _children_capacity = 1;
16429 ssize_t _n = 0;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016430 { // ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016431 if (p->error_indicator) {
16432 D(p->level--);
16433 return NULL;
16434 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016435 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016436 Token * _literal;
16437 stmt_ty elem;
16438 while (
16439 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
16440 &&
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016441 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016442 )
16443 {
16444 _res = elem;
16445 if (_res == NULL && PyErr_Occurred()) {
16446 p->error_indicator = 1;
16447 PyMem_Free(_children);
16448 D(p->level--);
16449 return NULL;
16450 }
16451 if (_n == _children_capacity) {
16452 _children_capacity *= 2;
16453 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16454 if (!_new_children) {
16455 p->error_indicator = 1;
16456 PyErr_NoMemory();
16457 D(p->level--);
16458 return NULL;
16459 }
16460 _children = _new_children;
16461 }
16462 _children[_n++] = _res;
16463 _mark = p->mark;
16464 }
16465 p->mark = _mark;
16466 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016467 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016468 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016469 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016470 if (!_seq) {
16471 PyMem_Free(_children);
16472 p->error_indicator = 1;
16473 PyErr_NoMemory();
16474 D(p->level--);
16475 return NULL;
16476 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016477 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016478 PyMem_Free(_children);
16479 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
16480 D(p->level--);
16481 return _seq;
16482}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016483
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016484// _gather_12: simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016485static asdl_seq *
16486_gather_12_rule(Parser *p)
16487{
16488 D(p->level++);
16489 if (p->error_indicator) {
16490 D(p->level--);
16491 return NULL;
16492 }
16493 asdl_seq * _res = NULL;
16494 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016495 { // simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016496 if (p->error_indicator) {
16497 D(p->level--);
16498 return NULL;
16499 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016500 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 +010016501 stmt_ty elem;
16502 asdl_seq * seq;
16503 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016504 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016505 &&
16506 (seq = _loop0_13_rule(p)) // _loop0_13
16507 )
16508 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016509 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 +010016510 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
16511 goto done;
16512 }
16513 p->mark = _mark;
16514 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000016515 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016516 }
16517 _res = NULL;
16518 done:
16519 D(p->level--);
16520 return _res;
16521}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016522
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016523// _tmp_14: 'import' | 'from'
16524static void *
16525_tmp_14_rule(Parser *p)
16526{
16527 D(p->level++);
16528 if (p->error_indicator) {
16529 D(p->level--);
16530 return NULL;
16531 }
16532 void * _res = NULL;
16533 int _mark = p->mark;
16534 { // 'import'
16535 if (p->error_indicator) {
16536 D(p->level--);
16537 return NULL;
16538 }
16539 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
16540 Token * _keyword;
16541 if (
16542 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
16543 )
16544 {
16545 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
16546 _res = _keyword;
16547 goto done;
16548 }
16549 p->mark = _mark;
16550 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
16552 }
16553 { // 'from'
16554 if (p->error_indicator) {
16555 D(p->level--);
16556 return NULL;
16557 }
16558 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
16559 Token * _keyword;
16560 if (
16561 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
16562 )
16563 {
16564 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
16565 _res = _keyword;
16566 goto done;
16567 }
16568 p->mark = _mark;
16569 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16570 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
16571 }
16572 _res = NULL;
16573 done:
16574 D(p->level--);
16575 return _res;
16576}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016577
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016578// _tmp_15: 'def' | '@' | ASYNC
16579static void *
16580_tmp_15_rule(Parser *p)
16581{
16582 D(p->level++);
16583 if (p->error_indicator) {
16584 D(p->level--);
16585 return NULL;
16586 }
16587 void * _res = NULL;
16588 int _mark = p->mark;
16589 { // 'def'
16590 if (p->error_indicator) {
16591 D(p->level--);
16592 return NULL;
16593 }
16594 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
16595 Token * _keyword;
16596 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016597 (_keyword = _PyPegen_expect_token(p, 523)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016598 )
16599 {
16600 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
16601 _res = _keyword;
16602 goto done;
16603 }
16604 p->mark = _mark;
16605 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
16607 }
16608 { // '@'
16609 if (p->error_indicator) {
16610 D(p->level--);
16611 return NULL;
16612 }
16613 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
16614 Token * _literal;
16615 if (
16616 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
16617 )
16618 {
16619 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
16620 _res = _literal;
16621 goto done;
16622 }
16623 p->mark = _mark;
16624 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16625 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
16626 }
16627 { // ASYNC
16628 if (p->error_indicator) {
16629 D(p->level--);
16630 return NULL;
16631 }
16632 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
16633 Token * async_var;
16634 if (
16635 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
16636 )
16637 {
16638 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
16639 _res = async_var;
16640 goto done;
16641 }
16642 p->mark = _mark;
16643 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16644 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
16645 }
16646 _res = NULL;
16647 done:
16648 D(p->level--);
16649 return _res;
16650}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016651
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016652// _tmp_16: 'class' | '@'
16653static void *
16654_tmp_16_rule(Parser *p)
16655{
16656 D(p->level++);
16657 if (p->error_indicator) {
16658 D(p->level--);
16659 return NULL;
16660 }
16661 void * _res = NULL;
16662 int _mark = p->mark;
16663 { // 'class'
16664 if (p->error_indicator) {
16665 D(p->level--);
16666 return NULL;
16667 }
16668 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
16669 Token * _keyword;
16670 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016671 (_keyword = _PyPegen_expect_token(p, 524)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016672 )
16673 {
16674 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
16675 _res = _keyword;
16676 goto done;
16677 }
16678 p->mark = _mark;
16679 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
16680 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
16681 }
16682 { // '@'
16683 if (p->error_indicator) {
16684 D(p->level--);
16685 return NULL;
16686 }
16687 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
16688 Token * _literal;
16689 if (
16690 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
16691 )
16692 {
16693 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
16694 _res = _literal;
16695 goto done;
16696 }
16697 p->mark = _mark;
16698 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
16699 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
16700 }
16701 _res = NULL;
16702 done:
16703 D(p->level--);
16704 return _res;
16705}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016706
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016707// _tmp_17: 'with' | ASYNC
16708static void *
16709_tmp_17_rule(Parser *p)
16710{
16711 D(p->level++);
16712 if (p->error_indicator) {
16713 D(p->level--);
16714 return NULL;
16715 }
16716 void * _res = NULL;
16717 int _mark = p->mark;
16718 { // 'with'
16719 if (p->error_indicator) {
16720 D(p->level--);
16721 return NULL;
16722 }
16723 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
16724 Token * _keyword;
16725 if (
16726 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
16727 )
16728 {
16729 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
16730 _res = _keyword;
16731 goto done;
16732 }
16733 p->mark = _mark;
16734 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
16735 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
16736 }
16737 { // ASYNC
16738 if (p->error_indicator) {
16739 D(p->level--);
16740 return NULL;
16741 }
16742 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
16743 Token * async_var;
16744 if (
16745 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
16746 )
16747 {
16748 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
16749 _res = async_var;
16750 goto done;
16751 }
16752 p->mark = _mark;
16753 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
16754 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
16755 }
16756 _res = NULL;
16757 done:
16758 D(p->level--);
16759 return _res;
16760}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016761
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016762// _tmp_18: 'for' | ASYNC
16763static void *
16764_tmp_18_rule(Parser *p)
16765{
16766 D(p->level++);
16767 if (p->error_indicator) {
16768 D(p->level--);
16769 return NULL;
16770 }
16771 void * _res = NULL;
16772 int _mark = p->mark;
16773 { // 'for'
16774 if (p->error_indicator) {
16775 D(p->level--);
16776 return NULL;
16777 }
16778 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
16779 Token * _keyword;
16780 if (
16781 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
16782 )
16783 {
16784 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
16785 _res = _keyword;
16786 goto done;
16787 }
16788 p->mark = _mark;
16789 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
16790 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
16791 }
16792 { // ASYNC
16793 if (p->error_indicator) {
16794 D(p->level--);
16795 return NULL;
16796 }
16797 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
16798 Token * async_var;
16799 if (
16800 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
16801 )
16802 {
16803 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
16804 _res = async_var;
16805 goto done;
16806 }
16807 p->mark = _mark;
16808 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
16809 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
16810 }
16811 _res = NULL;
16812 done:
16813 D(p->level--);
16814 return _res;
16815}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000016816
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016817// _tmp_19: '=' annotated_rhs
16818static void *
16819_tmp_19_rule(Parser *p)
16820{
16821 D(p->level++);
16822 if (p->error_indicator) {
16823 D(p->level--);
16824 return NULL;
16825 }
16826 void * _res = NULL;
16827 int _mark = p->mark;
16828 { // '=' annotated_rhs
16829 if (p->error_indicator) {
16830 D(p->level--);
16831 return NULL;
16832 }
16833 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
16834 Token * _literal;
16835 expr_ty d;
16836 if (
16837 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16838 &&
16839 (d = annotated_rhs_rule(p)) // annotated_rhs
16840 )
16841 {
16842 D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
16843 _res = d;
16844 if (_res == NULL && PyErr_Occurred()) {
16845 p->error_indicator = 1;
16846 D(p->level--);
16847 return NULL;
16848 }
16849 goto done;
16850 }
16851 p->mark = _mark;
16852 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
16853 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
16854 }
16855 _res = NULL;
16856 done:
16857 D(p->level--);
16858 return _res;
16859}
16860
16861// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
16862static void *
16863_tmp_20_rule(Parser *p)
16864{
16865 D(p->level++);
16866 if (p->error_indicator) {
16867 D(p->level--);
16868 return NULL;
16869 }
16870 void * _res = NULL;
16871 int _mark = p->mark;
16872 { // '(' single_target ')'
16873 if (p->error_indicator) {
16874 D(p->level--);
16875 return NULL;
16876 }
16877 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16878 Token * _literal;
16879 Token * _literal_1;
16880 expr_ty b;
16881 if (
16882 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16883 &&
16884 (b = single_target_rule(p)) // single_target
16885 &&
16886 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16887 )
16888 {
16889 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16890 _res = b;
16891 if (_res == NULL && PyErr_Occurred()) {
16892 p->error_indicator = 1;
16893 D(p->level--);
16894 return NULL;
16895 }
16896 goto done;
16897 }
16898 p->mark = _mark;
16899 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
16900 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
16901 }
16902 { // single_subscript_attribute_target
16903 if (p->error_indicator) {
16904 D(p->level--);
16905 return NULL;
16906 }
16907 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16908 expr_ty single_subscript_attribute_target_var;
16909 if (
16910 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
16911 )
16912 {
16913 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16914 _res = single_subscript_attribute_target_var;
16915 goto done;
16916 }
16917 p->mark = _mark;
16918 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
16919 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
16920 }
16921 _res = NULL;
16922 done:
16923 D(p->level--);
16924 return _res;
16925}
16926
16927// _tmp_21: '=' annotated_rhs
16928static void *
16929_tmp_21_rule(Parser *p)
16930{
16931 D(p->level++);
16932 if (p->error_indicator) {
16933 D(p->level--);
16934 return NULL;
16935 }
16936 void * _res = NULL;
16937 int _mark = p->mark;
16938 { // '=' annotated_rhs
16939 if (p->error_indicator) {
16940 D(p->level--);
16941 return NULL;
16942 }
16943 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
16944 Token * _literal;
16945 expr_ty d;
16946 if (
16947 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16948 &&
16949 (d = annotated_rhs_rule(p)) // annotated_rhs
16950 )
16951 {
16952 D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
16953 _res = d;
16954 if (_res == NULL && PyErr_Occurred()) {
16955 p->error_indicator = 1;
16956 D(p->level--);
16957 return NULL;
16958 }
16959 goto done;
16960 }
16961 p->mark = _mark;
16962 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
16963 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
16964 }
16965 _res = NULL;
16966 done:
16967 D(p->level--);
16968 return _res;
16969}
16970
16971// _loop1_22: (star_targets '=')
16972static asdl_seq *
16973_loop1_22_rule(Parser *p)
16974{
16975 D(p->level++);
16976 if (p->error_indicator) {
16977 D(p->level--);
16978 return NULL;
16979 }
16980 void *_res = NULL;
16981 int _mark = p->mark;
16982 int _start_mark = p->mark;
16983 void **_children = PyMem_Malloc(sizeof(void *));
16984 if (!_children) {
16985 p->error_indicator = 1;
16986 PyErr_NoMemory();
16987 D(p->level--);
16988 return NULL;
16989 }
16990 ssize_t _children_capacity = 1;
16991 ssize_t _n = 0;
16992 { // (star_targets '=')
16993 if (p->error_indicator) {
16994 D(p->level--);
16995 return NULL;
16996 }
16997 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016998 void *_tmp_138_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016999 while (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017000 (_tmp_138_var = _tmp_138_rule(p)) // star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017001 )
17002 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017003 _res = _tmp_138_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017004 if (_n == _children_capacity) {
17005 _children_capacity *= 2;
17006 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17007 if (!_new_children) {
17008 p->error_indicator = 1;
17009 PyErr_NoMemory();
17010 D(p->level--);
17011 return NULL;
17012 }
17013 _children = _new_children;
17014 }
17015 _children[_n++] = _res;
17016 _mark = p->mark;
17017 }
17018 p->mark = _mark;
17019 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
17020 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
17021 }
17022 if (_n == 0 || p->error_indicator) {
17023 PyMem_Free(_children);
17024 D(p->level--);
17025 return NULL;
17026 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017027 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017028 if (!_seq) {
17029 PyMem_Free(_children);
17030 p->error_indicator = 1;
17031 PyErr_NoMemory();
17032 D(p->level--);
17033 return NULL;
17034 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017035 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017036 PyMem_Free(_children);
17037 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
17038 D(p->level--);
17039 return _seq;
17040}
17041
17042// _tmp_23: yield_expr | star_expressions
17043static void *
17044_tmp_23_rule(Parser *p)
17045{
17046 D(p->level++);
17047 if (p->error_indicator) {
17048 D(p->level--);
17049 return NULL;
17050 }
17051 void * _res = NULL;
17052 int _mark = p->mark;
17053 { // yield_expr
17054 if (p->error_indicator) {
17055 D(p->level--);
17056 return NULL;
17057 }
17058 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
17059 expr_ty yield_expr_var;
17060 if (
17061 (yield_expr_var = yield_expr_rule(p)) // yield_expr
17062 )
17063 {
17064 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
17065 _res = yield_expr_var;
17066 goto done;
17067 }
17068 p->mark = _mark;
17069 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
17070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
17071 }
17072 { // star_expressions
17073 if (p->error_indicator) {
17074 D(p->level--);
17075 return NULL;
17076 }
17077 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
17078 expr_ty star_expressions_var;
17079 if (
17080 (star_expressions_var = star_expressions_rule(p)) // star_expressions
17081 )
17082 {
17083 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
17084 _res = star_expressions_var;
17085 goto done;
17086 }
17087 p->mark = _mark;
17088 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
17089 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
17090 }
17091 _res = NULL;
17092 done:
17093 D(p->level--);
17094 return _res;
17095}
17096
17097// _tmp_24: yield_expr | star_expressions
17098static void *
17099_tmp_24_rule(Parser *p)
17100{
17101 D(p->level++);
17102 if (p->error_indicator) {
17103 D(p->level--);
17104 return NULL;
17105 }
17106 void * _res = NULL;
17107 int _mark = p->mark;
17108 { // yield_expr
17109 if (p->error_indicator) {
17110 D(p->level--);
17111 return NULL;
17112 }
17113 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
17114 expr_ty yield_expr_var;
17115 if (
17116 (yield_expr_var = yield_expr_rule(p)) // yield_expr
17117 )
17118 {
17119 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
17120 _res = yield_expr_var;
17121 goto done;
17122 }
17123 p->mark = _mark;
17124 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
17125 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
17126 }
17127 { // star_expressions
17128 if (p->error_indicator) {
17129 D(p->level--);
17130 return NULL;
17131 }
17132 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
17133 expr_ty star_expressions_var;
17134 if (
17135 (star_expressions_var = star_expressions_rule(p)) // star_expressions
17136 )
17137 {
17138 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
17139 _res = star_expressions_var;
17140 goto done;
17141 }
17142 p->mark = _mark;
17143 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
17144 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
17145 }
17146 _res = NULL;
17147 done:
17148 D(p->level--);
17149 return _res;
17150}
17151
17152// _loop0_26: ',' NAME
17153static asdl_seq *
17154_loop0_26_rule(Parser *p)
17155{
17156 D(p->level++);
17157 if (p->error_indicator) {
17158 D(p->level--);
17159 return NULL;
17160 }
17161 void *_res = NULL;
17162 int _mark = p->mark;
17163 int _start_mark = p->mark;
17164 void **_children = PyMem_Malloc(sizeof(void *));
17165 if (!_children) {
17166 p->error_indicator = 1;
17167 PyErr_NoMemory();
17168 D(p->level--);
17169 return NULL;
17170 }
17171 ssize_t _children_capacity = 1;
17172 ssize_t _n = 0;
17173 { // ',' NAME
17174 if (p->error_indicator) {
17175 D(p->level--);
17176 return NULL;
17177 }
17178 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
17179 Token * _literal;
17180 expr_ty elem;
17181 while (
17182 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17183 &&
17184 (elem = _PyPegen_name_token(p)) // NAME
17185 )
17186 {
17187 _res = elem;
17188 if (_res == NULL && PyErr_Occurred()) {
17189 p->error_indicator = 1;
17190 PyMem_Free(_children);
17191 D(p->level--);
17192 return NULL;
17193 }
17194 if (_n == _children_capacity) {
17195 _children_capacity *= 2;
17196 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17197 if (!_new_children) {
17198 p->error_indicator = 1;
17199 PyErr_NoMemory();
17200 D(p->level--);
17201 return NULL;
17202 }
17203 _children = _new_children;
17204 }
17205 _children[_n++] = _res;
17206 _mark = p->mark;
17207 }
17208 p->mark = _mark;
17209 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
17210 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
17211 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017212 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017213 if (!_seq) {
17214 PyMem_Free(_children);
17215 p->error_indicator = 1;
17216 PyErr_NoMemory();
17217 D(p->level--);
17218 return NULL;
17219 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017220 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017221 PyMem_Free(_children);
17222 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
17223 D(p->level--);
17224 return _seq;
17225}
17226
17227// _gather_25: NAME _loop0_26
17228static asdl_seq *
17229_gather_25_rule(Parser *p)
17230{
17231 D(p->level++);
17232 if (p->error_indicator) {
17233 D(p->level--);
17234 return NULL;
17235 }
17236 asdl_seq * _res = NULL;
17237 int _mark = p->mark;
17238 { // NAME _loop0_26
17239 if (p->error_indicator) {
17240 D(p->level--);
17241 return NULL;
17242 }
17243 D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
17244 expr_ty elem;
17245 asdl_seq * seq;
17246 if (
17247 (elem = _PyPegen_name_token(p)) // NAME
17248 &&
17249 (seq = _loop0_26_rule(p)) // _loop0_26
17250 )
17251 {
17252 D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
17253 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
17254 goto done;
17255 }
17256 p->mark = _mark;
17257 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
17258 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
17259 }
17260 _res = NULL;
17261 done:
17262 D(p->level--);
17263 return _res;
17264}
17265
17266// _loop0_28: ',' NAME
17267static asdl_seq *
17268_loop0_28_rule(Parser *p)
17269{
17270 D(p->level++);
17271 if (p->error_indicator) {
17272 D(p->level--);
17273 return NULL;
17274 }
17275 void *_res = NULL;
17276 int _mark = p->mark;
17277 int _start_mark = p->mark;
17278 void **_children = PyMem_Malloc(sizeof(void *));
17279 if (!_children) {
17280 p->error_indicator = 1;
17281 PyErr_NoMemory();
17282 D(p->level--);
17283 return NULL;
17284 }
17285 ssize_t _children_capacity = 1;
17286 ssize_t _n = 0;
17287 { // ',' NAME
17288 if (p->error_indicator) {
17289 D(p->level--);
17290 return NULL;
17291 }
17292 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
17293 Token * _literal;
17294 expr_ty elem;
17295 while (
17296 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17297 &&
17298 (elem = _PyPegen_name_token(p)) // NAME
17299 )
17300 {
17301 _res = elem;
17302 if (_res == NULL && PyErr_Occurred()) {
17303 p->error_indicator = 1;
17304 PyMem_Free(_children);
17305 D(p->level--);
17306 return NULL;
17307 }
17308 if (_n == _children_capacity) {
17309 _children_capacity *= 2;
17310 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17311 if (!_new_children) {
17312 p->error_indicator = 1;
17313 PyErr_NoMemory();
17314 D(p->level--);
17315 return NULL;
17316 }
17317 _children = _new_children;
17318 }
17319 _children[_n++] = _res;
17320 _mark = p->mark;
17321 }
17322 p->mark = _mark;
17323 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
17324 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
17325 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017326 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017327 if (!_seq) {
17328 PyMem_Free(_children);
17329 p->error_indicator = 1;
17330 PyErr_NoMemory();
17331 D(p->level--);
17332 return NULL;
17333 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017334 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017335 PyMem_Free(_children);
17336 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
17337 D(p->level--);
17338 return _seq;
17339}
17340
17341// _gather_27: NAME _loop0_28
17342static asdl_seq *
17343_gather_27_rule(Parser *p)
17344{
17345 D(p->level++);
17346 if (p->error_indicator) {
17347 D(p->level--);
17348 return NULL;
17349 }
17350 asdl_seq * _res = NULL;
17351 int _mark = p->mark;
17352 { // NAME _loop0_28
17353 if (p->error_indicator) {
17354 D(p->level--);
17355 return NULL;
17356 }
17357 D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
17358 expr_ty elem;
17359 asdl_seq * seq;
17360 if (
17361 (elem = _PyPegen_name_token(p)) // NAME
17362 &&
17363 (seq = _loop0_28_rule(p)) // _loop0_28
17364 )
17365 {
17366 D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
17367 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
17368 goto done;
17369 }
17370 p->mark = _mark;
17371 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
17372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
17373 }
17374 _res = NULL;
17375 done:
17376 D(p->level--);
17377 return _res;
17378}
17379
17380// _tmp_29: ',' expression
17381static void *
17382_tmp_29_rule(Parser *p)
17383{
17384 D(p->level++);
17385 if (p->error_indicator) {
17386 D(p->level--);
17387 return NULL;
17388 }
17389 void * _res = NULL;
17390 int _mark = p->mark;
17391 { // ',' expression
17392 if (p->error_indicator) {
17393 D(p->level--);
17394 return NULL;
17395 }
17396 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
17397 Token * _literal;
17398 expr_ty z;
17399 if (
17400 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17401 &&
17402 (z = expression_rule(p)) // expression
17403 )
17404 {
17405 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
17406 _res = z;
17407 if (_res == NULL && PyErr_Occurred()) {
17408 p->error_indicator = 1;
17409 D(p->level--);
17410 return NULL;
17411 }
17412 goto done;
17413 }
17414 p->mark = _mark;
17415 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
17416 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
17417 }
17418 _res = NULL;
17419 done:
17420 D(p->level--);
17421 return _res;
17422}
17423
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017424// _tmp_30: ';' | NEWLINE
17425static void *
17426_tmp_30_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017427{
17428 D(p->level++);
17429 if (p->error_indicator) {
17430 D(p->level--);
17431 return NULL;
17432 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017433 void * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017434 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017435 { // ';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017436 if (p->error_indicator) {
17437 D(p->level--);
17438 return NULL;
17439 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017440 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
17441 Token * _literal;
17442 if (
17443 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017444 )
17445 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017446 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
17447 _res = _literal;
17448 goto done;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017449 }
17450 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017451 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
17452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017453 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017454 { // NEWLINE
17455 if (p->error_indicator) {
17456 D(p->level--);
17457 return NULL;
17458 }
17459 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
17460 Token * newline_var;
17461 if (
17462 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
17463 )
17464 {
17465 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
17466 _res = newline_var;
17467 goto done;
17468 }
17469 p->mark = _mark;
17470 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
17471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017472 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017473 _res = NULL;
17474 done:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017475 D(p->level--);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017476 return _res;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017477}
17478
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017479// _loop0_31: ('.' | '...')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017480static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017481_loop0_31_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017482{
17483 D(p->level++);
17484 if (p->error_indicator) {
17485 D(p->level--);
17486 return NULL;
17487 }
17488 void *_res = NULL;
17489 int _mark = p->mark;
17490 int _start_mark = p->mark;
17491 void **_children = PyMem_Malloc(sizeof(void *));
17492 if (!_children) {
17493 p->error_indicator = 1;
17494 PyErr_NoMemory();
17495 D(p->level--);
17496 return NULL;
17497 }
17498 ssize_t _children_capacity = 1;
17499 ssize_t _n = 0;
17500 { // ('.' | '...')
17501 if (p->error_indicator) {
17502 D(p->level--);
17503 return NULL;
17504 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017505 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017506 void *_tmp_139_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017507 while (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017508 (_tmp_139_var = _tmp_139_rule(p)) // '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017509 )
17510 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017511 _res = _tmp_139_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017512 if (_n == _children_capacity) {
17513 _children_capacity *= 2;
17514 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17515 if (!_new_children) {
17516 p->error_indicator = 1;
17517 PyErr_NoMemory();
17518 D(p->level--);
17519 return NULL;
17520 }
17521 _children = _new_children;
17522 }
17523 _children[_n++] = _res;
17524 _mark = p->mark;
17525 }
17526 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017527 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
17528 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
17529 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017530 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017531 if (!_seq) {
17532 PyMem_Free(_children);
17533 p->error_indicator = 1;
17534 PyErr_NoMemory();
17535 D(p->level--);
17536 return NULL;
17537 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017538 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017539 PyMem_Free(_children);
17540 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
17541 D(p->level--);
17542 return _seq;
17543}
17544
17545// _loop1_32: ('.' | '...')
17546static asdl_seq *
17547_loop1_32_rule(Parser *p)
17548{
17549 D(p->level++);
17550 if (p->error_indicator) {
17551 D(p->level--);
17552 return NULL;
17553 }
17554 void *_res = NULL;
17555 int _mark = p->mark;
17556 int _start_mark = p->mark;
17557 void **_children = PyMem_Malloc(sizeof(void *));
17558 if (!_children) {
17559 p->error_indicator = 1;
17560 PyErr_NoMemory();
17561 D(p->level--);
17562 return NULL;
17563 }
17564 ssize_t _children_capacity = 1;
17565 ssize_t _n = 0;
17566 { // ('.' | '...')
17567 if (p->error_indicator) {
17568 D(p->level--);
17569 return NULL;
17570 }
17571 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017572 void *_tmp_140_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017573 while (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017574 (_tmp_140_var = _tmp_140_rule(p)) // '.' | '...'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017575 )
17576 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020017577 _res = _tmp_140_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017578 if (_n == _children_capacity) {
17579 _children_capacity *= 2;
17580 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17581 if (!_new_children) {
17582 p->error_indicator = 1;
17583 PyErr_NoMemory();
17584 D(p->level--);
17585 return NULL;
17586 }
17587 _children = _new_children;
17588 }
17589 _children[_n++] = _res;
17590 _mark = p->mark;
17591 }
17592 p->mark = _mark;
17593 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
17595 }
17596 if (_n == 0 || p->error_indicator) {
17597 PyMem_Free(_children);
17598 D(p->level--);
17599 return NULL;
17600 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017601 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017602 if (!_seq) {
17603 PyMem_Free(_children);
17604 p->error_indicator = 1;
17605 PyErr_NoMemory();
17606 D(p->level--);
17607 return NULL;
17608 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017609 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017610 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017611 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017612 D(p->level--);
17613 return _seq;
17614}
17615
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017616// _loop0_34: ',' import_from_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017617static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017618_loop0_34_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017619{
17620 D(p->level++);
17621 if (p->error_indicator) {
17622 D(p->level--);
17623 return NULL;
17624 }
17625 void *_res = NULL;
17626 int _mark = p->mark;
17627 int _start_mark = p->mark;
17628 void **_children = PyMem_Malloc(sizeof(void *));
17629 if (!_children) {
17630 p->error_indicator = 1;
17631 PyErr_NoMemory();
17632 D(p->level--);
17633 return NULL;
17634 }
17635 ssize_t _children_capacity = 1;
17636 ssize_t _n = 0;
17637 { // ',' import_from_as_name
17638 if (p->error_indicator) {
17639 D(p->level--);
17640 return NULL;
17641 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017642 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 +010017643 Token * _literal;
17644 alias_ty elem;
17645 while (
17646 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17647 &&
17648 (elem = import_from_as_name_rule(p)) // import_from_as_name
17649 )
17650 {
17651 _res = elem;
17652 if (_res == NULL && PyErr_Occurred()) {
17653 p->error_indicator = 1;
17654 PyMem_Free(_children);
17655 D(p->level--);
17656 return NULL;
17657 }
17658 if (_n == _children_capacity) {
17659 _children_capacity *= 2;
17660 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17661 if (!_new_children) {
17662 p->error_indicator = 1;
17663 PyErr_NoMemory();
17664 D(p->level--);
17665 return NULL;
17666 }
17667 _children = _new_children;
17668 }
17669 _children[_n++] = _res;
17670 _mark = p->mark;
17671 }
17672 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017673 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017674 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
17675 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017676 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017677 if (!_seq) {
17678 PyMem_Free(_children);
17679 p->error_indicator = 1;
17680 PyErr_NoMemory();
17681 D(p->level--);
17682 return NULL;
17683 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017684 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017685 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017686 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017687 D(p->level--);
17688 return _seq;
17689}
17690
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017691// _gather_33: import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017692static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017693_gather_33_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017694{
17695 D(p->level++);
17696 if (p->error_indicator) {
17697 D(p->level--);
17698 return NULL;
17699 }
17700 asdl_seq * _res = NULL;
17701 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017702 { // import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017703 if (p->error_indicator) {
17704 D(p->level--);
17705 return NULL;
17706 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017707 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 +010017708 alias_ty elem;
17709 asdl_seq * seq;
17710 if (
17711 (elem = import_from_as_name_rule(p)) // import_from_as_name
17712 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017713 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017714 )
17715 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017716 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 +010017717 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
17718 goto done;
17719 }
17720 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017721 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
17722 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017723 }
17724 _res = NULL;
17725 done:
17726 D(p->level--);
17727 return _res;
17728}
17729
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017730// _tmp_35: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017731static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017732_tmp_35_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017733{
17734 D(p->level++);
17735 if (p->error_indicator) {
17736 D(p->level--);
17737 return NULL;
17738 }
17739 void * _res = NULL;
17740 int _mark = p->mark;
17741 { // 'as' NAME
17742 if (p->error_indicator) {
17743 D(p->level--);
17744 return NULL;
17745 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017746 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017747 Token * _keyword;
17748 expr_ty z;
17749 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017750 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017751 &&
17752 (z = _PyPegen_name_token(p)) // NAME
17753 )
17754 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017755 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 +010017756 _res = z;
17757 if (_res == NULL && PyErr_Occurred()) {
17758 p->error_indicator = 1;
17759 D(p->level--);
17760 return NULL;
17761 }
17762 goto done;
17763 }
17764 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017765 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017766 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
17767 }
17768 _res = NULL;
17769 done:
17770 D(p->level--);
17771 return _res;
17772}
17773
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017774// _loop0_37: ',' dotted_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017775static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017776_loop0_37_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017777{
17778 D(p->level++);
17779 if (p->error_indicator) {
17780 D(p->level--);
17781 return NULL;
17782 }
17783 void *_res = NULL;
17784 int _mark = p->mark;
17785 int _start_mark = p->mark;
17786 void **_children = PyMem_Malloc(sizeof(void *));
17787 if (!_children) {
17788 p->error_indicator = 1;
17789 PyErr_NoMemory();
17790 D(p->level--);
17791 return NULL;
17792 }
17793 ssize_t _children_capacity = 1;
17794 ssize_t _n = 0;
17795 { // ',' dotted_as_name
17796 if (p->error_indicator) {
17797 D(p->level--);
17798 return NULL;
17799 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017800 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 +010017801 Token * _literal;
17802 alias_ty elem;
17803 while (
17804 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17805 &&
17806 (elem = dotted_as_name_rule(p)) // dotted_as_name
17807 )
17808 {
17809 _res = elem;
17810 if (_res == NULL && PyErr_Occurred()) {
17811 p->error_indicator = 1;
17812 PyMem_Free(_children);
17813 D(p->level--);
17814 return NULL;
17815 }
17816 if (_n == _children_capacity) {
17817 _children_capacity *= 2;
17818 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17819 if (!_new_children) {
17820 p->error_indicator = 1;
17821 PyErr_NoMemory();
17822 D(p->level--);
17823 return NULL;
17824 }
17825 _children = _new_children;
17826 }
17827 _children[_n++] = _res;
17828 _mark = p->mark;
17829 }
17830 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017831 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017832 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
17833 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017834 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017835 if (!_seq) {
17836 PyMem_Free(_children);
17837 p->error_indicator = 1;
17838 PyErr_NoMemory();
17839 D(p->level--);
17840 return NULL;
17841 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017842 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017843 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017844 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017845 D(p->level--);
17846 return _seq;
17847}
17848
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017849// _gather_36: dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017850static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017851_gather_36_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017852{
17853 D(p->level++);
17854 if (p->error_indicator) {
17855 D(p->level--);
17856 return NULL;
17857 }
17858 asdl_seq * _res = NULL;
17859 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017860 { // dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017861 if (p->error_indicator) {
17862 D(p->level--);
17863 return NULL;
17864 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017865 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 +010017866 alias_ty elem;
17867 asdl_seq * seq;
17868 if (
17869 (elem = dotted_as_name_rule(p)) // dotted_as_name
17870 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017871 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017872 )
17873 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017874 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 +010017875 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
17876 goto done;
17877 }
17878 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017879 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
17880 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017881 }
17882 _res = NULL;
17883 done:
17884 D(p->level--);
17885 return _res;
17886}
17887
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017888// _tmp_38: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017889static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017890_tmp_38_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017891{
17892 D(p->level++);
17893 if (p->error_indicator) {
17894 D(p->level--);
17895 return NULL;
17896 }
17897 void * _res = NULL;
17898 int _mark = p->mark;
17899 { // 'as' NAME
17900 if (p->error_indicator) {
17901 D(p->level--);
17902 return NULL;
17903 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017904 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017905 Token * _keyword;
17906 expr_ty z;
17907 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017908 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017909 &&
17910 (z = _PyPegen_name_token(p)) // NAME
17911 )
17912 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017913 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 +010017914 _res = z;
17915 if (_res == NULL && PyErr_Occurred()) {
17916 p->error_indicator = 1;
17917 D(p->level--);
17918 return NULL;
17919 }
17920 goto done;
17921 }
17922 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017923 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
17925 }
17926 _res = NULL;
17927 done:
17928 D(p->level--);
17929 return _res;
17930}
17931
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017932// _loop0_40: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017933static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017934_loop0_40_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017935{
17936 D(p->level++);
17937 if (p->error_indicator) {
17938 D(p->level--);
17939 return NULL;
17940 }
17941 void *_res = NULL;
17942 int _mark = p->mark;
17943 int _start_mark = p->mark;
17944 void **_children = PyMem_Malloc(sizeof(void *));
17945 if (!_children) {
17946 p->error_indicator = 1;
17947 PyErr_NoMemory();
17948 D(p->level--);
17949 return NULL;
17950 }
17951 ssize_t _children_capacity = 1;
17952 ssize_t _n = 0;
17953 { // ',' with_item
17954 if (p->error_indicator) {
17955 D(p->level--);
17956 return NULL;
17957 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017958 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017959 Token * _literal;
17960 withitem_ty elem;
17961 while (
17962 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17963 &&
17964 (elem = with_item_rule(p)) // with_item
17965 )
17966 {
17967 _res = elem;
17968 if (_res == NULL && PyErr_Occurred()) {
17969 p->error_indicator = 1;
17970 PyMem_Free(_children);
17971 D(p->level--);
17972 return NULL;
17973 }
17974 if (_n == _children_capacity) {
17975 _children_capacity *= 2;
17976 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17977 if (!_new_children) {
17978 p->error_indicator = 1;
17979 PyErr_NoMemory();
17980 D(p->level--);
17981 return NULL;
17982 }
17983 _children = _new_children;
17984 }
17985 _children[_n++] = _res;
17986 _mark = p->mark;
17987 }
17988 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017989 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017990 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
17991 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017992 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017993 if (!_seq) {
17994 PyMem_Free(_children);
17995 p->error_indicator = 1;
17996 PyErr_NoMemory();
17997 D(p->level--);
17998 return NULL;
17999 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018000 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018001 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018002 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018003 D(p->level--);
18004 return _seq;
18005}
18006
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018007// _gather_39: with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018008static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018009_gather_39_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018010{
18011 D(p->level++);
18012 if (p->error_indicator) {
18013 D(p->level--);
18014 return NULL;
18015 }
18016 asdl_seq * _res = NULL;
18017 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018018 { // with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018019 if (p->error_indicator) {
18020 D(p->level--);
18021 return NULL;
18022 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018023 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 +010018024 withitem_ty elem;
18025 asdl_seq * seq;
18026 if (
18027 (elem = with_item_rule(p)) // with_item
18028 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018029 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018030 )
18031 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018032 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 +010018033 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18034 goto done;
18035 }
18036 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018037 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
18038 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018039 }
18040 _res = NULL;
18041 done:
18042 D(p->level--);
18043 return _res;
18044}
18045
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018046// _loop0_42: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018047static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018048_loop0_42_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018049{
18050 D(p->level++);
18051 if (p->error_indicator) {
18052 D(p->level--);
18053 return NULL;
18054 }
18055 void *_res = NULL;
18056 int _mark = p->mark;
18057 int _start_mark = p->mark;
18058 void **_children = PyMem_Malloc(sizeof(void *));
18059 if (!_children) {
18060 p->error_indicator = 1;
18061 PyErr_NoMemory();
18062 D(p->level--);
18063 return NULL;
18064 }
18065 ssize_t _children_capacity = 1;
18066 ssize_t _n = 0;
18067 { // ',' with_item
18068 if (p->error_indicator) {
18069 D(p->level--);
18070 return NULL;
18071 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018072 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018073 Token * _literal;
18074 withitem_ty elem;
18075 while (
18076 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18077 &&
18078 (elem = with_item_rule(p)) // with_item
18079 )
18080 {
18081 _res = elem;
18082 if (_res == NULL && PyErr_Occurred()) {
18083 p->error_indicator = 1;
18084 PyMem_Free(_children);
18085 D(p->level--);
18086 return NULL;
18087 }
18088 if (_n == _children_capacity) {
18089 _children_capacity *= 2;
18090 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18091 if (!_new_children) {
18092 p->error_indicator = 1;
18093 PyErr_NoMemory();
18094 D(p->level--);
18095 return NULL;
18096 }
18097 _children = _new_children;
18098 }
18099 _children[_n++] = _res;
18100 _mark = p->mark;
18101 }
18102 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018103 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018104 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
18105 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018106 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018107 if (!_seq) {
18108 PyMem_Free(_children);
18109 p->error_indicator = 1;
18110 PyErr_NoMemory();
18111 D(p->level--);
18112 return NULL;
18113 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018114 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018115 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018116 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018117 D(p->level--);
18118 return _seq;
18119}
18120
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018121// _gather_41: with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018122static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018123_gather_41_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018124{
18125 D(p->level++);
18126 if (p->error_indicator) {
18127 D(p->level--);
18128 return NULL;
18129 }
18130 asdl_seq * _res = NULL;
18131 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018132 { // with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018133 if (p->error_indicator) {
18134 D(p->level--);
18135 return NULL;
18136 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018137 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 +010018138 withitem_ty elem;
18139 asdl_seq * seq;
18140 if (
18141 (elem = with_item_rule(p)) // with_item
18142 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018143 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018144 )
18145 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018146 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 +010018147 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18148 goto done;
18149 }
18150 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018151 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
18152 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018153 }
18154 _res = NULL;
18155 done:
18156 D(p->level--);
18157 return _res;
18158}
18159
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018160// _loop0_44: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018161static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018162_loop0_44_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018163{
18164 D(p->level++);
18165 if (p->error_indicator) {
18166 D(p->level--);
18167 return NULL;
18168 }
18169 void *_res = NULL;
18170 int _mark = p->mark;
18171 int _start_mark = p->mark;
18172 void **_children = PyMem_Malloc(sizeof(void *));
18173 if (!_children) {
18174 p->error_indicator = 1;
18175 PyErr_NoMemory();
18176 D(p->level--);
18177 return NULL;
18178 }
18179 ssize_t _children_capacity = 1;
18180 ssize_t _n = 0;
18181 { // ',' with_item
18182 if (p->error_indicator) {
18183 D(p->level--);
18184 return NULL;
18185 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018186 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018187 Token * _literal;
18188 withitem_ty elem;
18189 while (
18190 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18191 &&
18192 (elem = with_item_rule(p)) // with_item
18193 )
18194 {
18195 _res = elem;
18196 if (_res == NULL && PyErr_Occurred()) {
18197 p->error_indicator = 1;
18198 PyMem_Free(_children);
18199 D(p->level--);
18200 return NULL;
18201 }
18202 if (_n == _children_capacity) {
18203 _children_capacity *= 2;
18204 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18205 if (!_new_children) {
18206 p->error_indicator = 1;
18207 PyErr_NoMemory();
18208 D(p->level--);
18209 return NULL;
18210 }
18211 _children = _new_children;
18212 }
18213 _children[_n++] = _res;
18214 _mark = p->mark;
18215 }
18216 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018217 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
18219 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018220 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018221 if (!_seq) {
18222 PyMem_Free(_children);
18223 p->error_indicator = 1;
18224 PyErr_NoMemory();
18225 D(p->level--);
18226 return NULL;
18227 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018228 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018229 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018230 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018231 D(p->level--);
18232 return _seq;
18233}
18234
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018235// _gather_43: with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018236static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018237_gather_43_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018238{
18239 D(p->level++);
18240 if (p->error_indicator) {
18241 D(p->level--);
18242 return NULL;
18243 }
18244 asdl_seq * _res = NULL;
18245 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018246 { // with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018247 if (p->error_indicator) {
18248 D(p->level--);
18249 return NULL;
18250 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018251 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 +010018252 withitem_ty elem;
18253 asdl_seq * seq;
18254 if (
18255 (elem = with_item_rule(p)) // with_item
18256 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018257 (seq = _loop0_44_rule(p)) // _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018258 )
18259 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018260 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 +010018261 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18262 goto done;
18263 }
18264 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018265 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
18266 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018267 }
18268 _res = NULL;
18269 done:
18270 D(p->level--);
18271 return _res;
18272}
18273
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018274// _loop0_46: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018275static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018276_loop0_46_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018277{
18278 D(p->level++);
18279 if (p->error_indicator) {
18280 D(p->level--);
18281 return NULL;
18282 }
18283 void *_res = NULL;
18284 int _mark = p->mark;
18285 int _start_mark = p->mark;
18286 void **_children = PyMem_Malloc(sizeof(void *));
18287 if (!_children) {
18288 p->error_indicator = 1;
18289 PyErr_NoMemory();
18290 D(p->level--);
18291 return NULL;
18292 }
18293 ssize_t _children_capacity = 1;
18294 ssize_t _n = 0;
18295 { // ',' with_item
18296 if (p->error_indicator) {
18297 D(p->level--);
18298 return NULL;
18299 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018300 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018301 Token * _literal;
18302 withitem_ty elem;
18303 while (
18304 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18305 &&
18306 (elem = with_item_rule(p)) // with_item
18307 )
18308 {
18309 _res = elem;
18310 if (_res == NULL && PyErr_Occurred()) {
18311 p->error_indicator = 1;
18312 PyMem_Free(_children);
18313 D(p->level--);
18314 return NULL;
18315 }
18316 if (_n == _children_capacity) {
18317 _children_capacity *= 2;
18318 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18319 if (!_new_children) {
18320 p->error_indicator = 1;
18321 PyErr_NoMemory();
18322 D(p->level--);
18323 return NULL;
18324 }
18325 _children = _new_children;
18326 }
18327 _children[_n++] = _res;
18328 _mark = p->mark;
18329 }
18330 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018331 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018332 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
18333 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018334 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018335 if (!_seq) {
18336 PyMem_Free(_children);
18337 p->error_indicator = 1;
18338 PyErr_NoMemory();
18339 D(p->level--);
18340 return NULL;
18341 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018342 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018343 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018344 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018345 D(p->level--);
18346 return _seq;
18347}
18348
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018349// _gather_45: with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018350static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018351_gather_45_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018352{
18353 D(p->level++);
18354 if (p->error_indicator) {
18355 D(p->level--);
18356 return NULL;
18357 }
18358 asdl_seq * _res = NULL;
18359 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018360 { // with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018361 if (p->error_indicator) {
18362 D(p->level--);
18363 return NULL;
18364 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018365 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 +010018366 withitem_ty elem;
18367 asdl_seq * seq;
18368 if (
18369 (elem = with_item_rule(p)) // with_item
18370 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018371 (seq = _loop0_46_rule(p)) // _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018372 )
18373 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018374 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 +010018375 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
18376 goto done;
18377 }
18378 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018379 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
18380 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018381 }
18382 _res = NULL;
18383 done:
18384 D(p->level--);
18385 return _res;
18386}
18387
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018388// _tmp_47: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018389static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018390_tmp_47_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018391{
18392 D(p->level++);
18393 if (p->error_indicator) {
18394 D(p->level--);
18395 return NULL;
18396 }
18397 void * _res = NULL;
18398 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018399 { // ','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018400 if (p->error_indicator) {
18401 D(p->level--);
18402 return NULL;
18403 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018404 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
18405 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018406 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018407 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018408 )
18409 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018410 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
18411 _res = _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018412 goto done;
18413 }
18414 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018415 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18416 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
18417 }
18418 { // ')'
18419 if (p->error_indicator) {
18420 D(p->level--);
18421 return NULL;
18422 }
18423 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
18424 Token * _literal;
18425 if (
18426 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
18427 )
18428 {
18429 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
18430 _res = _literal;
18431 goto done;
18432 }
18433 p->mark = _mark;
18434 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18435 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
18436 }
18437 { // ':'
18438 if (p->error_indicator) {
18439 D(p->level--);
18440 return NULL;
18441 }
18442 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
18443 Token * _literal;
18444 if (
18445 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
18446 )
18447 {
18448 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
18449 _res = _literal;
18450 goto done;
18451 }
18452 p->mark = _mark;
18453 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
18454 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018455 }
18456 _res = NULL;
18457 done:
18458 D(p->level--);
18459 return _res;
18460}
18461
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018462// _loop1_48: except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018463static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018464_loop1_48_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018465{
18466 D(p->level++);
18467 if (p->error_indicator) {
18468 D(p->level--);
18469 return NULL;
18470 }
18471 void *_res = NULL;
18472 int _mark = p->mark;
18473 int _start_mark = p->mark;
18474 void **_children = PyMem_Malloc(sizeof(void *));
18475 if (!_children) {
18476 p->error_indicator = 1;
18477 PyErr_NoMemory();
18478 D(p->level--);
18479 return NULL;
18480 }
18481 ssize_t _children_capacity = 1;
18482 ssize_t _n = 0;
18483 { // except_block
18484 if (p->error_indicator) {
18485 D(p->level--);
18486 return NULL;
18487 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018488 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018489 excepthandler_ty except_block_var;
18490 while (
18491 (except_block_var = except_block_rule(p)) // except_block
18492 )
18493 {
18494 _res = except_block_var;
18495 if (_n == _children_capacity) {
18496 _children_capacity *= 2;
18497 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18498 if (!_new_children) {
18499 p->error_indicator = 1;
18500 PyErr_NoMemory();
18501 D(p->level--);
18502 return NULL;
18503 }
18504 _children = _new_children;
18505 }
18506 _children[_n++] = _res;
18507 _mark = p->mark;
18508 }
18509 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018510 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018511 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
18512 }
18513 if (_n == 0 || p->error_indicator) {
18514 PyMem_Free(_children);
18515 D(p->level--);
18516 return NULL;
18517 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018518 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018519 if (!_seq) {
18520 PyMem_Free(_children);
18521 p->error_indicator = 1;
18522 PyErr_NoMemory();
18523 D(p->level--);
18524 return NULL;
18525 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018526 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018527 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018528 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018529 D(p->level--);
18530 return _seq;
18531}
18532
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018533// _tmp_49: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018534static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018535_tmp_49_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018536{
18537 D(p->level++);
18538 if (p->error_indicator) {
18539 D(p->level--);
18540 return NULL;
18541 }
18542 void * _res = NULL;
18543 int _mark = p->mark;
18544 { // 'as' NAME
18545 if (p->error_indicator) {
18546 D(p->level--);
18547 return NULL;
18548 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018549 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018550 Token * _keyword;
18551 expr_ty z;
18552 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018553 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018554 &&
18555 (z = _PyPegen_name_token(p)) // NAME
18556 )
18557 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018558 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 +010018559 _res = z;
18560 if (_res == NULL && PyErr_Occurred()) {
18561 p->error_indicator = 1;
18562 D(p->level--);
18563 return NULL;
18564 }
18565 goto done;
18566 }
18567 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018568 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018569 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
18570 }
18571 _res = NULL;
18572 done:
18573 D(p->level--);
18574 return _res;
18575}
18576
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018577// _tmp_50: 'from' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018578static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018579_tmp_50_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018580{
18581 D(p->level++);
18582 if (p->error_indicator) {
18583 D(p->level--);
18584 return NULL;
18585 }
18586 void * _res = NULL;
18587 int _mark = p->mark;
18588 { // 'from' expression
18589 if (p->error_indicator) {
18590 D(p->level--);
18591 return NULL;
18592 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018593 D(fprintf(stderr, "%*c> _tmp_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018594 Token * _keyword;
18595 expr_ty z;
18596 if (
18597 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
18598 &&
18599 (z = expression_rule(p)) // expression
18600 )
18601 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018602 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 +010018603 _res = z;
18604 if (_res == NULL && PyErr_Occurred()) {
18605 p->error_indicator = 1;
18606 D(p->level--);
18607 return NULL;
18608 }
18609 goto done;
18610 }
18611 p->mark = _mark;
18612 D(fprintf(stderr, "%*c%s _tmp_50[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018613 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018614 }
18615 _res = NULL;
18616 done:
18617 D(p->level--);
18618 return _res;
18619}
18620
18621// _tmp_51: '->' expression
18622static void *
18623_tmp_51_rule(Parser *p)
18624{
18625 D(p->level++);
18626 if (p->error_indicator) {
18627 D(p->level--);
18628 return NULL;
18629 }
18630 void * _res = NULL;
18631 int _mark = p->mark;
18632 { // '->' expression
18633 if (p->error_indicator) {
18634 D(p->level--);
18635 return NULL;
18636 }
18637 D(fprintf(stderr, "%*c> _tmp_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18638 Token * _literal;
18639 expr_ty z;
18640 if (
18641 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
18642 &&
18643 (z = expression_rule(p)) // expression
18644 )
18645 {
18646 D(fprintf(stderr, "%*c+ _tmp_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18647 _res = z;
18648 if (_res == NULL && PyErr_Occurred()) {
18649 p->error_indicator = 1;
18650 D(p->level--);
18651 return NULL;
18652 }
18653 goto done;
18654 }
18655 p->mark = _mark;
18656 D(fprintf(stderr, "%*c%s _tmp_51[%d-%d]: %s failed!\n", p->level, ' ',
18657 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
18658 }
18659 _res = NULL;
18660 done:
18661 D(p->level--);
18662 return _res;
18663}
18664
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018665// _tmp_52: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018666static void *
18667_tmp_52_rule(Parser *p)
18668{
18669 D(p->level++);
18670 if (p->error_indicator) {
18671 D(p->level--);
18672 return NULL;
18673 }
18674 void * _res = NULL;
18675 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018676 { // '->' expression
18677 if (p->error_indicator) {
18678 D(p->level--);
18679 return NULL;
18680 }
18681 D(fprintf(stderr, "%*c> _tmp_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18682 Token * _literal;
18683 expr_ty z;
18684 if (
18685 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
18686 &&
18687 (z = expression_rule(p)) // expression
18688 )
18689 {
18690 D(fprintf(stderr, "%*c+ _tmp_52[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
18691 _res = z;
18692 if (_res == NULL && PyErr_Occurred()) {
18693 p->error_indicator = 1;
18694 D(p->level--);
18695 return NULL;
18696 }
18697 goto done;
18698 }
18699 p->mark = _mark;
18700 D(fprintf(stderr, "%*c%s _tmp_52[%d-%d]: %s failed!\n", p->level, ' ',
18701 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
18702 }
18703 _res = NULL;
18704 done:
18705 D(p->level--);
18706 return _res;
18707}
18708
18709// _tmp_53: NEWLINE INDENT
18710static void *
18711_tmp_53_rule(Parser *p)
18712{
18713 D(p->level++);
18714 if (p->error_indicator) {
18715 D(p->level--);
18716 return NULL;
18717 }
18718 void * _res = NULL;
18719 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018720 { // NEWLINE INDENT
18721 if (p->error_indicator) {
18722 D(p->level--);
18723 return NULL;
18724 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018725 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018726 Token * indent_var;
18727 Token * newline_var;
18728 if (
18729 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18730 &&
18731 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
18732 )
18733 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018734 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 +010018735 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
18736 goto done;
18737 }
18738 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018739 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018740 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
18741 }
18742 _res = NULL;
18743 done:
18744 D(p->level--);
18745 return _res;
18746}
18747
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018748// _loop0_54: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018749static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018750_loop0_54_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018751{
18752 D(p->level++);
18753 if (p->error_indicator) {
18754 D(p->level--);
18755 return NULL;
18756 }
18757 void *_res = NULL;
18758 int _mark = p->mark;
18759 int _start_mark = p->mark;
18760 void **_children = PyMem_Malloc(sizeof(void *));
18761 if (!_children) {
18762 p->error_indicator = 1;
18763 PyErr_NoMemory();
18764 D(p->level--);
18765 return NULL;
18766 }
18767 ssize_t _children_capacity = 1;
18768 ssize_t _n = 0;
18769 { // param_no_default
18770 if (p->error_indicator) {
18771 D(p->level--);
18772 return NULL;
18773 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018774 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 +010018775 arg_ty param_no_default_var;
18776 while (
18777 (param_no_default_var = param_no_default_rule(p)) // param_no_default
18778 )
18779 {
18780 _res = param_no_default_var;
18781 if (_n == _children_capacity) {
18782 _children_capacity *= 2;
18783 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18784 if (!_new_children) {
18785 p->error_indicator = 1;
18786 PyErr_NoMemory();
18787 D(p->level--);
18788 return NULL;
18789 }
18790 _children = _new_children;
18791 }
18792 _children[_n++] = _res;
18793 _mark = p->mark;
18794 }
18795 p->mark = _mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018796 D(fprintf(stderr, "%*c%s _loop0_54[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018797 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018798 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018799 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018800 if (!_seq) {
18801 PyMem_Free(_children);
18802 p->error_indicator = 1;
18803 PyErr_NoMemory();
18804 D(p->level--);
18805 return NULL;
18806 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018807 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018808 PyMem_Free(_children);
18809 _PyPegen_insert_memo(p, _start_mark, _loop0_54_type, _seq);
18810 D(p->level--);
18811 return _seq;
18812}
18813
18814// _loop0_55: param_with_default
18815static asdl_seq *
18816_loop0_55_rule(Parser *p)
18817{
18818 D(p->level++);
18819 if (p->error_indicator) {
18820 D(p->level--);
18821 return NULL;
18822 }
18823 void *_res = NULL;
18824 int _mark = p->mark;
18825 int _start_mark = p->mark;
18826 void **_children = PyMem_Malloc(sizeof(void *));
18827 if (!_children) {
18828 p->error_indicator = 1;
18829 PyErr_NoMemory();
18830 D(p->level--);
18831 return NULL;
18832 }
18833 ssize_t _children_capacity = 1;
18834 ssize_t _n = 0;
18835 { // param_with_default
18836 if (p->error_indicator) {
18837 D(p->level--);
18838 return NULL;
18839 }
18840 D(fprintf(stderr, "%*c> _loop0_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
18841 NameDefaultPair* param_with_default_var;
18842 while (
18843 (param_with_default_var = param_with_default_rule(p)) // param_with_default
18844 )
18845 {
18846 _res = param_with_default_var;
18847 if (_n == _children_capacity) {
18848 _children_capacity *= 2;
18849 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18850 if (!_new_children) {
18851 p->error_indicator = 1;
18852 PyErr_NoMemory();
18853 D(p->level--);
18854 return NULL;
18855 }
18856 _children = _new_children;
18857 }
18858 _children[_n++] = _res;
18859 _mark = p->mark;
18860 }
18861 p->mark = _mark;
18862 D(fprintf(stderr, "%*c%s _loop0_55[%d-%d]: %s failed!\n", p->level, ' ',
18863 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
18864 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018865 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018866 if (!_seq) {
18867 PyMem_Free(_children);
18868 p->error_indicator = 1;
18869 PyErr_NoMemory();
18870 D(p->level--);
18871 return NULL;
18872 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018873 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018874 PyMem_Free(_children);
18875 _PyPegen_insert_memo(p, _start_mark, _loop0_55_type, _seq);
18876 D(p->level--);
18877 return _seq;
18878}
18879
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018880// _loop0_56: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018881static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018882_loop0_56_rule(Parser *p)
18883{
18884 D(p->level++);
18885 if (p->error_indicator) {
18886 D(p->level--);
18887 return NULL;
18888 }
18889 void *_res = NULL;
18890 int _mark = p->mark;
18891 int _start_mark = p->mark;
18892 void **_children = PyMem_Malloc(sizeof(void *));
18893 if (!_children) {
18894 p->error_indicator = 1;
18895 PyErr_NoMemory();
18896 D(p->level--);
18897 return NULL;
18898 }
18899 ssize_t _children_capacity = 1;
18900 ssize_t _n = 0;
18901 { // param_with_default
18902 if (p->error_indicator) {
18903 D(p->level--);
18904 return NULL;
18905 }
18906 D(fprintf(stderr, "%*c> _loop0_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
18907 NameDefaultPair* param_with_default_var;
18908 while (
18909 (param_with_default_var = param_with_default_rule(p)) // param_with_default
18910 )
18911 {
18912 _res = param_with_default_var;
18913 if (_n == _children_capacity) {
18914 _children_capacity *= 2;
18915 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18916 if (!_new_children) {
18917 p->error_indicator = 1;
18918 PyErr_NoMemory();
18919 D(p->level--);
18920 return NULL;
18921 }
18922 _children = _new_children;
18923 }
18924 _children[_n++] = _res;
18925 _mark = p->mark;
18926 }
18927 p->mark = _mark;
18928 D(fprintf(stderr, "%*c%s _loop0_56[%d-%d]: %s failed!\n", p->level, ' ',
18929 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
18930 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018931 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018932 if (!_seq) {
18933 PyMem_Free(_children);
18934 p->error_indicator = 1;
18935 PyErr_NoMemory();
18936 D(p->level--);
18937 return NULL;
18938 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010018939 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018940 PyMem_Free(_children);
18941 _PyPegen_insert_memo(p, _start_mark, _loop0_56_type, _seq);
18942 D(p->level--);
18943 return _seq;
18944}
18945
18946// _loop1_57: param_no_default
18947static asdl_seq *
18948_loop1_57_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018949{
18950 D(p->level++);
18951 if (p->error_indicator) {
18952 D(p->level--);
18953 return NULL;
18954 }
18955 void *_res = NULL;
18956 int _mark = p->mark;
18957 int _start_mark = p->mark;
18958 void **_children = PyMem_Malloc(sizeof(void *));
18959 if (!_children) {
18960 p->error_indicator = 1;
18961 PyErr_NoMemory();
18962 D(p->level--);
18963 return NULL;
18964 }
18965 ssize_t _children_capacity = 1;
18966 ssize_t _n = 0;
18967 { // param_no_default
18968 if (p->error_indicator) {
18969 D(p->level--);
18970 return NULL;
18971 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018972 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 +010018973 arg_ty param_no_default_var;
18974 while (
18975 (param_no_default_var = param_no_default_rule(p)) // param_no_default
18976 )
18977 {
18978 _res = param_no_default_var;
18979 if (_n == _children_capacity) {
18980 _children_capacity *= 2;
18981 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18982 if (!_new_children) {
18983 p->error_indicator = 1;
18984 PyErr_NoMemory();
18985 D(p->level--);
18986 return NULL;
18987 }
18988 _children = _new_children;
18989 }
18990 _children[_n++] = _res;
18991 _mark = p->mark;
18992 }
18993 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018994 D(fprintf(stderr, "%*c%s _loop1_57[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
18996 }
18997 if (_n == 0 || p->error_indicator) {
18998 PyMem_Free(_children);
18999 D(p->level--);
19000 return NULL;
19001 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019002 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019003 if (!_seq) {
19004 PyMem_Free(_children);
19005 p->error_indicator = 1;
19006 PyErr_NoMemory();
19007 D(p->level--);
19008 return NULL;
19009 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019010 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019011 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019012 _PyPegen_insert_memo(p, _start_mark, _loop1_57_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019013 D(p->level--);
19014 return _seq;
19015}
19016
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019017// _loop0_58: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019018static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019019_loop0_58_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019020{
19021 D(p->level++);
19022 if (p->error_indicator) {
19023 D(p->level--);
19024 return NULL;
19025 }
19026 void *_res = NULL;
19027 int _mark = p->mark;
19028 int _start_mark = p->mark;
19029 void **_children = PyMem_Malloc(sizeof(void *));
19030 if (!_children) {
19031 p->error_indicator = 1;
19032 PyErr_NoMemory();
19033 D(p->level--);
19034 return NULL;
19035 }
19036 ssize_t _children_capacity = 1;
19037 ssize_t _n = 0;
19038 { // param_with_default
19039 if (p->error_indicator) {
19040 D(p->level--);
19041 return NULL;
19042 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019043 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 +010019044 NameDefaultPair* param_with_default_var;
19045 while (
19046 (param_with_default_var = param_with_default_rule(p)) // param_with_default
19047 )
19048 {
19049 _res = param_with_default_var;
19050 if (_n == _children_capacity) {
19051 _children_capacity *= 2;
19052 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19053 if (!_new_children) {
19054 p->error_indicator = 1;
19055 PyErr_NoMemory();
19056 D(p->level--);
19057 return NULL;
19058 }
19059 _children = _new_children;
19060 }
19061 _children[_n++] = _res;
19062 _mark = p->mark;
19063 }
19064 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019065 D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019066 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
19067 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019068 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019069 if (!_seq) {
19070 PyMem_Free(_children);
19071 p->error_indicator = 1;
19072 PyErr_NoMemory();
19073 D(p->level--);
19074 return NULL;
19075 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019076 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019077 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019078 _PyPegen_insert_memo(p, _start_mark, _loop0_58_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019079 D(p->level--);
19080 return _seq;
19081}
19082
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019083// _loop1_59: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019084static asdl_seq *
19085_loop1_59_rule(Parser *p)
19086{
19087 D(p->level++);
19088 if (p->error_indicator) {
19089 D(p->level--);
19090 return NULL;
19091 }
19092 void *_res = NULL;
19093 int _mark = p->mark;
19094 int _start_mark = p->mark;
19095 void **_children = PyMem_Malloc(sizeof(void *));
19096 if (!_children) {
19097 p->error_indicator = 1;
19098 PyErr_NoMemory();
19099 D(p->level--);
19100 return NULL;
19101 }
19102 ssize_t _children_capacity = 1;
19103 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019104 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019105 if (p->error_indicator) {
19106 D(p->level--);
19107 return NULL;
19108 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019109 D(fprintf(stderr, "%*c> _loop1_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
19110 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019111 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019112 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019113 )
19114 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019115 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019116 if (_n == _children_capacity) {
19117 _children_capacity *= 2;
19118 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19119 if (!_new_children) {
19120 p->error_indicator = 1;
19121 PyErr_NoMemory();
19122 D(p->level--);
19123 return NULL;
19124 }
19125 _children = _new_children;
19126 }
19127 _children[_n++] = _res;
19128 _mark = p->mark;
19129 }
19130 p->mark = _mark;
19131 D(fprintf(stderr, "%*c%s _loop1_59[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019132 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019133 }
19134 if (_n == 0 || p->error_indicator) {
19135 PyMem_Free(_children);
19136 D(p->level--);
19137 return NULL;
19138 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019139 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019140 if (!_seq) {
19141 PyMem_Free(_children);
19142 p->error_indicator = 1;
19143 PyErr_NoMemory();
19144 D(p->level--);
19145 return NULL;
19146 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019147 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019148 PyMem_Free(_children);
19149 _PyPegen_insert_memo(p, _start_mark, _loop1_59_type, _seq);
19150 D(p->level--);
19151 return _seq;
19152}
19153
19154// _loop1_60: param_no_default
19155static asdl_seq *
19156_loop1_60_rule(Parser *p)
19157{
19158 D(p->level++);
19159 if (p->error_indicator) {
19160 D(p->level--);
19161 return NULL;
19162 }
19163 void *_res = NULL;
19164 int _mark = p->mark;
19165 int _start_mark = p->mark;
19166 void **_children = PyMem_Malloc(sizeof(void *));
19167 if (!_children) {
19168 p->error_indicator = 1;
19169 PyErr_NoMemory();
19170 D(p->level--);
19171 return NULL;
19172 }
19173 ssize_t _children_capacity = 1;
19174 ssize_t _n = 0;
19175 { // param_no_default
19176 if (p->error_indicator) {
19177 D(p->level--);
19178 return NULL;
19179 }
19180 D(fprintf(stderr, "%*c> _loop1_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
19181 arg_ty param_no_default_var;
19182 while (
19183 (param_no_default_var = param_no_default_rule(p)) // param_no_default
19184 )
19185 {
19186 _res = param_no_default_var;
19187 if (_n == _children_capacity) {
19188 _children_capacity *= 2;
19189 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19190 if (!_new_children) {
19191 p->error_indicator = 1;
19192 PyErr_NoMemory();
19193 D(p->level--);
19194 return NULL;
19195 }
19196 _children = _new_children;
19197 }
19198 _children[_n++] = _res;
19199 _mark = p->mark;
19200 }
19201 p->mark = _mark;
19202 D(fprintf(stderr, "%*c%s _loop1_60[%d-%d]: %s failed!\n", p->level, ' ',
19203 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
19204 }
19205 if (_n == 0 || p->error_indicator) {
19206 PyMem_Free(_children);
19207 D(p->level--);
19208 return NULL;
19209 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019210 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019211 if (!_seq) {
19212 PyMem_Free(_children);
19213 p->error_indicator = 1;
19214 PyErr_NoMemory();
19215 D(p->level--);
19216 return NULL;
19217 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019218 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019219 PyMem_Free(_children);
19220 _PyPegen_insert_memo(p, _start_mark, _loop1_60_type, _seq);
19221 D(p->level--);
19222 return _seq;
19223}
19224
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019225// _loop1_61: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019226static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019227_loop1_61_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019228{
19229 D(p->level++);
19230 if (p->error_indicator) {
19231 D(p->level--);
19232 return NULL;
19233 }
19234 void *_res = NULL;
19235 int _mark = p->mark;
19236 int _start_mark = p->mark;
19237 void **_children = PyMem_Malloc(sizeof(void *));
19238 if (!_children) {
19239 p->error_indicator = 1;
19240 PyErr_NoMemory();
19241 D(p->level--);
19242 return NULL;
19243 }
19244 ssize_t _children_capacity = 1;
19245 ssize_t _n = 0;
19246 { // param_no_default
19247 if (p->error_indicator) {
19248 D(p->level--);
19249 return NULL;
19250 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019251 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 +010019252 arg_ty param_no_default_var;
19253 while (
19254 (param_no_default_var = param_no_default_rule(p)) // param_no_default
19255 )
19256 {
19257 _res = param_no_default_var;
19258 if (_n == _children_capacity) {
19259 _children_capacity *= 2;
19260 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19261 if (!_new_children) {
19262 p->error_indicator = 1;
19263 PyErr_NoMemory();
19264 D(p->level--);
19265 return NULL;
19266 }
19267 _children = _new_children;
19268 }
19269 _children[_n++] = _res;
19270 _mark = p->mark;
19271 }
19272 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019273 D(fprintf(stderr, "%*c%s _loop1_61[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019274 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
19275 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019276 if (_n == 0 || p->error_indicator) {
19277 PyMem_Free(_children);
19278 D(p->level--);
19279 return NULL;
19280 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019281 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019282 if (!_seq) {
19283 PyMem_Free(_children);
19284 p->error_indicator = 1;
19285 PyErr_NoMemory();
19286 D(p->level--);
19287 return NULL;
19288 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019289 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019290 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019291 _PyPegen_insert_memo(p, _start_mark, _loop1_61_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019292 D(p->level--);
19293 return _seq;
19294}
19295
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019296// _loop0_62: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019297static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019298_loop0_62_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019299{
19300 D(p->level++);
19301 if (p->error_indicator) {
19302 D(p->level--);
19303 return NULL;
19304 }
19305 void *_res = NULL;
19306 int _mark = p->mark;
19307 int _start_mark = p->mark;
19308 void **_children = PyMem_Malloc(sizeof(void *));
19309 if (!_children) {
19310 p->error_indicator = 1;
19311 PyErr_NoMemory();
19312 D(p->level--);
19313 return NULL;
19314 }
19315 ssize_t _children_capacity = 1;
19316 ssize_t _n = 0;
19317 { // param_no_default
19318 if (p->error_indicator) {
19319 D(p->level--);
19320 return NULL;
19321 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019322 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 +010019323 arg_ty param_no_default_var;
19324 while (
19325 (param_no_default_var = param_no_default_rule(p)) // param_no_default
19326 )
19327 {
19328 _res = param_no_default_var;
19329 if (_n == _children_capacity) {
19330 _children_capacity *= 2;
19331 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19332 if (!_new_children) {
19333 p->error_indicator = 1;
19334 PyErr_NoMemory();
19335 D(p->level--);
19336 return NULL;
19337 }
19338 _children = _new_children;
19339 }
19340 _children[_n++] = _res;
19341 _mark = p->mark;
19342 }
19343 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019344 D(fprintf(stderr, "%*c%s _loop0_62[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019345 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
19346 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019347 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019348 if (!_seq) {
19349 PyMem_Free(_children);
19350 p->error_indicator = 1;
19351 PyErr_NoMemory();
19352 D(p->level--);
19353 return NULL;
19354 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019355 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019356 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019357 _PyPegen_insert_memo(p, _start_mark, _loop0_62_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019358 D(p->level--);
19359 return _seq;
19360}
19361
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019362// _loop1_63: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019363static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019364_loop1_63_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019365{
19366 D(p->level++);
19367 if (p->error_indicator) {
19368 D(p->level--);
19369 return NULL;
19370 }
19371 void *_res = NULL;
19372 int _mark = p->mark;
19373 int _start_mark = p->mark;
19374 void **_children = PyMem_Malloc(sizeof(void *));
19375 if (!_children) {
19376 p->error_indicator = 1;
19377 PyErr_NoMemory();
19378 D(p->level--);
19379 return NULL;
19380 }
19381 ssize_t _children_capacity = 1;
19382 ssize_t _n = 0;
19383 { // param_with_default
19384 if (p->error_indicator) {
19385 D(p->level--);
19386 return NULL;
19387 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019388 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 +010019389 NameDefaultPair* param_with_default_var;
19390 while (
19391 (param_with_default_var = param_with_default_rule(p)) // param_with_default
19392 )
19393 {
19394 _res = param_with_default_var;
19395 if (_n == _children_capacity) {
19396 _children_capacity *= 2;
19397 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19398 if (!_new_children) {
19399 p->error_indicator = 1;
19400 PyErr_NoMemory();
19401 D(p->level--);
19402 return NULL;
19403 }
19404 _children = _new_children;
19405 }
19406 _children[_n++] = _res;
19407 _mark = p->mark;
19408 }
19409 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019410 D(fprintf(stderr, "%*c%s _loop1_63[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019411 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
19412 }
19413 if (_n == 0 || p->error_indicator) {
19414 PyMem_Free(_children);
19415 D(p->level--);
19416 return NULL;
19417 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019418 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019419 if (!_seq) {
19420 PyMem_Free(_children);
19421 p->error_indicator = 1;
19422 PyErr_NoMemory();
19423 D(p->level--);
19424 return NULL;
19425 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019426 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019427 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019428 _PyPegen_insert_memo(p, _start_mark, _loop1_63_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019429 D(p->level--);
19430 return _seq;
19431}
19432
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019433// _loop0_64: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019434static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019435_loop0_64_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019436{
19437 D(p->level++);
19438 if (p->error_indicator) {
19439 D(p->level--);
19440 return NULL;
19441 }
19442 void *_res = NULL;
19443 int _mark = p->mark;
19444 int _start_mark = p->mark;
19445 void **_children = PyMem_Malloc(sizeof(void *));
19446 if (!_children) {
19447 p->error_indicator = 1;
19448 PyErr_NoMemory();
19449 D(p->level--);
19450 return NULL;
19451 }
19452 ssize_t _children_capacity = 1;
19453 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019454 { // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019455 if (p->error_indicator) {
19456 D(p->level--);
19457 return NULL;
19458 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019459 D(fprintf(stderr, "%*c> _loop0_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
19460 arg_ty param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019461 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019462 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019463 )
19464 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019465 _res = param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019466 if (_n == _children_capacity) {
19467 _children_capacity *= 2;
19468 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19469 if (!_new_children) {
19470 p->error_indicator = 1;
19471 PyErr_NoMemory();
19472 D(p->level--);
19473 return NULL;
19474 }
19475 _children = _new_children;
19476 }
19477 _children[_n++] = _res;
19478 _mark = p->mark;
19479 }
19480 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019481 D(fprintf(stderr, "%*c%s _loop0_64[%d-%d]: %s failed!\n", p->level, ' ',
19482 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019483 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019484 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019485 if (!_seq) {
19486 PyMem_Free(_children);
19487 p->error_indicator = 1;
19488 PyErr_NoMemory();
19489 D(p->level--);
19490 return NULL;
19491 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019492 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019493 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019494 _PyPegen_insert_memo(p, _start_mark, _loop0_64_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019495 D(p->level--);
19496 return _seq;
19497}
19498
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019499// _loop1_65: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019500static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019501_loop1_65_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019502{
19503 D(p->level++);
19504 if (p->error_indicator) {
19505 D(p->level--);
19506 return NULL;
19507 }
19508 void *_res = NULL;
19509 int _mark = p->mark;
19510 int _start_mark = p->mark;
19511 void **_children = PyMem_Malloc(sizeof(void *));
19512 if (!_children) {
19513 p->error_indicator = 1;
19514 PyErr_NoMemory();
19515 D(p->level--);
19516 return NULL;
19517 }
19518 ssize_t _children_capacity = 1;
19519 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019520 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019521 if (p->error_indicator) {
19522 D(p->level--);
19523 return NULL;
19524 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019525 D(fprintf(stderr, "%*c> _loop1_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
19526 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019527 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019528 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019529 )
19530 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019531 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019532 if (_n == _children_capacity) {
19533 _children_capacity *= 2;
19534 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19535 if (!_new_children) {
19536 p->error_indicator = 1;
19537 PyErr_NoMemory();
19538 D(p->level--);
19539 return NULL;
19540 }
19541 _children = _new_children;
19542 }
19543 _children[_n++] = _res;
19544 _mark = p->mark;
19545 }
19546 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019547 D(fprintf(stderr, "%*c%s _loop1_65[%d-%d]: %s failed!\n", p->level, ' ',
19548 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019549 }
19550 if (_n == 0 || p->error_indicator) {
19551 PyMem_Free(_children);
19552 D(p->level--);
19553 return NULL;
19554 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019555 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019556 if (!_seq) {
19557 PyMem_Free(_children);
19558 p->error_indicator = 1;
19559 PyErr_NoMemory();
19560 D(p->level--);
19561 return NULL;
19562 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019563 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019564 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019565 _PyPegen_insert_memo(p, _start_mark, _loop1_65_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019566 D(p->level--);
19567 return _seq;
19568}
19569
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019570// _loop0_66: param_maybe_default
19571static asdl_seq *
19572_loop0_66_rule(Parser *p)
19573{
19574 D(p->level++);
19575 if (p->error_indicator) {
19576 D(p->level--);
19577 return NULL;
19578 }
19579 void *_res = NULL;
19580 int _mark = p->mark;
19581 int _start_mark = p->mark;
19582 void **_children = PyMem_Malloc(sizeof(void *));
19583 if (!_children) {
19584 p->error_indicator = 1;
19585 PyErr_NoMemory();
19586 D(p->level--);
19587 return NULL;
19588 }
19589 ssize_t _children_capacity = 1;
19590 ssize_t _n = 0;
19591 { // param_maybe_default
19592 if (p->error_indicator) {
19593 D(p->level--);
19594 return NULL;
19595 }
19596 D(fprintf(stderr, "%*c> _loop0_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
19597 NameDefaultPair* param_maybe_default_var;
19598 while (
19599 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
19600 )
19601 {
19602 _res = param_maybe_default_var;
19603 if (_n == _children_capacity) {
19604 _children_capacity *= 2;
19605 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19606 if (!_new_children) {
19607 p->error_indicator = 1;
19608 PyErr_NoMemory();
19609 D(p->level--);
19610 return NULL;
19611 }
19612 _children = _new_children;
19613 }
19614 _children[_n++] = _res;
19615 _mark = p->mark;
19616 }
19617 p->mark = _mark;
19618 D(fprintf(stderr, "%*c%s _loop0_66[%d-%d]: %s failed!\n", p->level, ' ',
19619 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
19620 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019621 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019622 if (!_seq) {
19623 PyMem_Free(_children);
19624 p->error_indicator = 1;
19625 PyErr_NoMemory();
19626 D(p->level--);
19627 return NULL;
19628 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019629 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019630 PyMem_Free(_children);
19631 _PyPegen_insert_memo(p, _start_mark, _loop0_66_type, _seq);
19632 D(p->level--);
19633 return _seq;
19634}
19635
19636// _loop1_67: param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019637static asdl_seq *
19638_loop1_67_rule(Parser *p)
19639{
19640 D(p->level++);
19641 if (p->error_indicator) {
19642 D(p->level--);
19643 return NULL;
19644 }
19645 void *_res = NULL;
19646 int _mark = p->mark;
19647 int _start_mark = p->mark;
19648 void **_children = PyMem_Malloc(sizeof(void *));
19649 if (!_children) {
19650 p->error_indicator = 1;
19651 PyErr_NoMemory();
19652 D(p->level--);
19653 return NULL;
19654 }
19655 ssize_t _children_capacity = 1;
19656 ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019657 { // param_maybe_default
19658 if (p->error_indicator) {
19659 D(p->level--);
19660 return NULL;
19661 }
19662 D(fprintf(stderr, "%*c> _loop1_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
19663 NameDefaultPair* param_maybe_default_var;
19664 while (
19665 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
19666 )
19667 {
19668 _res = param_maybe_default_var;
19669 if (_n == _children_capacity) {
19670 _children_capacity *= 2;
19671 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19672 if (!_new_children) {
19673 p->error_indicator = 1;
19674 PyErr_NoMemory();
19675 D(p->level--);
19676 return NULL;
19677 }
19678 _children = _new_children;
19679 }
19680 _children[_n++] = _res;
19681 _mark = p->mark;
19682 }
19683 p->mark = _mark;
19684 D(fprintf(stderr, "%*c%s _loop1_67[%d-%d]: %s failed!\n", p->level, ' ',
19685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
19686 }
19687 if (_n == 0 || p->error_indicator) {
19688 PyMem_Free(_children);
19689 D(p->level--);
19690 return NULL;
19691 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019692 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019693 if (!_seq) {
19694 PyMem_Free(_children);
19695 p->error_indicator = 1;
19696 PyErr_NoMemory();
19697 D(p->level--);
19698 return NULL;
19699 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019700 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019701 PyMem_Free(_children);
19702 _PyPegen_insert_memo(p, _start_mark, _loop1_67_type, _seq);
19703 D(p->level--);
19704 return _seq;
19705}
19706
19707// _loop1_68: ('@' named_expression NEWLINE)
19708static asdl_seq *
19709_loop1_68_rule(Parser *p)
19710{
19711 D(p->level++);
19712 if (p->error_indicator) {
19713 D(p->level--);
19714 return NULL;
19715 }
19716 void *_res = NULL;
19717 int _mark = p->mark;
19718 int _start_mark = p->mark;
19719 void **_children = PyMem_Malloc(sizeof(void *));
19720 if (!_children) {
19721 p->error_indicator = 1;
19722 PyErr_NoMemory();
19723 D(p->level--);
19724 return NULL;
19725 }
19726 ssize_t _children_capacity = 1;
19727 ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019728 { // ('@' named_expression NEWLINE)
19729 if (p->error_indicator) {
19730 D(p->level--);
19731 return NULL;
19732 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019733 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 +020019734 void *_tmp_141_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019735 while (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020019736 (_tmp_141_var = _tmp_141_rule(p)) // '@' named_expression NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019737 )
19738 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020019739 _res = _tmp_141_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019740 if (_n == _children_capacity) {
19741 _children_capacity *= 2;
19742 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19743 if (!_new_children) {
19744 p->error_indicator = 1;
19745 PyErr_NoMemory();
19746 D(p->level--);
19747 return NULL;
19748 }
19749 _children = _new_children;
19750 }
19751 _children[_n++] = _res;
19752 _mark = p->mark;
19753 }
19754 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019755 D(fprintf(stderr, "%*c%s _loop1_68[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019756 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
19757 }
19758 if (_n == 0 || p->error_indicator) {
19759 PyMem_Free(_children);
19760 D(p->level--);
19761 return NULL;
19762 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019763 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019764 if (!_seq) {
19765 PyMem_Free(_children);
19766 p->error_indicator = 1;
19767 PyErr_NoMemory();
19768 D(p->level--);
19769 return NULL;
19770 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019771 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019772 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019773 _PyPegen_insert_memo(p, _start_mark, _loop1_68_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019774 D(p->level--);
19775 return _seq;
19776}
19777
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019778// _tmp_69: '(' arguments? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019779static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019780_tmp_69_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019781{
19782 D(p->level++);
19783 if (p->error_indicator) {
19784 D(p->level--);
19785 return NULL;
19786 }
19787 void * _res = NULL;
19788 int _mark = p->mark;
19789 { // '(' arguments? ')'
19790 if (p->error_indicator) {
19791 D(p->level--);
19792 return NULL;
19793 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019794 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019795 Token * _literal;
19796 Token * _literal_1;
19797 void *z;
19798 if (
19799 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19800 &&
19801 (z = arguments_rule(p), 1) // arguments?
19802 &&
19803 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19804 )
19805 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019806 D(fprintf(stderr, "%*c+ _tmp_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019807 _res = z;
19808 if (_res == NULL && PyErr_Occurred()) {
19809 p->error_indicator = 1;
19810 D(p->level--);
19811 return NULL;
19812 }
19813 goto done;
19814 }
19815 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019816 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019817 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
19818 }
19819 _res = NULL;
19820 done:
19821 D(p->level--);
19822 return _res;
19823}
19824
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019825// _loop1_70: (',' star_expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019826static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019827_loop1_70_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019828{
19829 D(p->level++);
19830 if (p->error_indicator) {
19831 D(p->level--);
19832 return NULL;
19833 }
19834 void *_res = NULL;
19835 int _mark = p->mark;
19836 int _start_mark = p->mark;
19837 void **_children = PyMem_Malloc(sizeof(void *));
19838 if (!_children) {
19839 p->error_indicator = 1;
19840 PyErr_NoMemory();
19841 D(p->level--);
19842 return NULL;
19843 }
19844 ssize_t _children_capacity = 1;
19845 ssize_t _n = 0;
19846 { // (',' star_expression)
19847 if (p->error_indicator) {
19848 D(p->level--);
19849 return NULL;
19850 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019851 D(fprintf(stderr, "%*c> _loop1_70[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020019852 void *_tmp_142_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019853 while (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020019854 (_tmp_142_var = _tmp_142_rule(p)) // ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019855 )
19856 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020019857 _res = _tmp_142_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019858 if (_n == _children_capacity) {
19859 _children_capacity *= 2;
19860 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19861 if (!_new_children) {
19862 p->error_indicator = 1;
19863 PyErr_NoMemory();
19864 D(p->level--);
19865 return NULL;
19866 }
19867 _children = _new_children;
19868 }
19869 _children[_n++] = _res;
19870 _mark = p->mark;
19871 }
19872 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019873 D(fprintf(stderr, "%*c%s _loop1_70[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019874 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
19875 }
19876 if (_n == 0 || p->error_indicator) {
19877 PyMem_Free(_children);
19878 D(p->level--);
19879 return NULL;
19880 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019881 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019882 if (!_seq) {
19883 PyMem_Free(_children);
19884 p->error_indicator = 1;
19885 PyErr_NoMemory();
19886 D(p->level--);
19887 return NULL;
19888 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019889 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019890 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019891 _PyPegen_insert_memo(p, _start_mark, _loop1_70_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019892 D(p->level--);
19893 return _seq;
19894}
19895
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019896// _loop0_72: ',' star_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019897static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019898_loop0_72_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019899{
19900 D(p->level++);
19901 if (p->error_indicator) {
19902 D(p->level--);
19903 return NULL;
19904 }
19905 void *_res = NULL;
19906 int _mark = p->mark;
19907 int _start_mark = p->mark;
19908 void **_children = PyMem_Malloc(sizeof(void *));
19909 if (!_children) {
19910 p->error_indicator = 1;
19911 PyErr_NoMemory();
19912 D(p->level--);
19913 return NULL;
19914 }
19915 ssize_t _children_capacity = 1;
19916 ssize_t _n = 0;
19917 { // ',' star_named_expression
19918 if (p->error_indicator) {
19919 D(p->level--);
19920 return NULL;
19921 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019922 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 +010019923 Token * _literal;
19924 expr_ty elem;
19925 while (
19926 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19927 &&
19928 (elem = star_named_expression_rule(p)) // star_named_expression
19929 )
19930 {
19931 _res = elem;
19932 if (_res == NULL && PyErr_Occurred()) {
19933 p->error_indicator = 1;
19934 PyMem_Free(_children);
19935 D(p->level--);
19936 return NULL;
19937 }
19938 if (_n == _children_capacity) {
19939 _children_capacity *= 2;
19940 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19941 if (!_new_children) {
19942 p->error_indicator = 1;
19943 PyErr_NoMemory();
19944 D(p->level--);
19945 return NULL;
19946 }
19947 _children = _new_children;
19948 }
19949 _children[_n++] = _res;
19950 _mark = p->mark;
19951 }
19952 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019953 D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019954 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
19955 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019956 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019957 if (!_seq) {
19958 PyMem_Free(_children);
19959 p->error_indicator = 1;
19960 PyErr_NoMemory();
19961 D(p->level--);
19962 return NULL;
19963 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010019964 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019965 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019966 _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019967 D(p->level--);
19968 return _seq;
19969}
19970
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019971// _gather_71: star_named_expression _loop0_72
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019972static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019973_gather_71_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019974{
19975 D(p->level++);
19976 if (p->error_indicator) {
19977 D(p->level--);
19978 return NULL;
19979 }
19980 asdl_seq * _res = NULL;
19981 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019982 { // star_named_expression _loop0_72
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019983 if (p->error_indicator) {
19984 D(p->level--);
19985 return NULL;
19986 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019987 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 +010019988 expr_ty elem;
19989 asdl_seq * seq;
19990 if (
19991 (elem = star_named_expression_rule(p)) // star_named_expression
19992 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019993 (seq = _loop0_72_rule(p)) // _loop0_72
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019994 )
19995 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000019996 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 +010019997 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
19998 goto done;
19999 }
20000 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020001 D(fprintf(stderr, "%*c%s _gather_71[%d-%d]: %s failed!\n", p->level, ' ',
20002 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_72"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020003 }
20004 _res = NULL;
20005 done:
20006 D(p->level--);
20007 return _res;
20008}
20009
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020010// _loop1_73: (',' expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020011static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020012_loop1_73_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020013{
20014 D(p->level++);
20015 if (p->error_indicator) {
20016 D(p->level--);
20017 return NULL;
20018 }
20019 void *_res = NULL;
20020 int _mark = p->mark;
20021 int _start_mark = p->mark;
20022 void **_children = PyMem_Malloc(sizeof(void *));
20023 if (!_children) {
20024 p->error_indicator = 1;
20025 PyErr_NoMemory();
20026 D(p->level--);
20027 return NULL;
20028 }
20029 ssize_t _children_capacity = 1;
20030 ssize_t _n = 0;
20031 { // (',' expression)
20032 if (p->error_indicator) {
20033 D(p->level--);
20034 return NULL;
20035 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020036 D(fprintf(stderr, "%*c> _loop1_73[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020020037 void *_tmp_143_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020038 while (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020020039 (_tmp_143_var = _tmp_143_rule(p)) // ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020040 )
20041 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020020042 _res = _tmp_143_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020043 if (_n == _children_capacity) {
20044 _children_capacity *= 2;
20045 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20046 if (!_new_children) {
20047 p->error_indicator = 1;
20048 PyErr_NoMemory();
20049 D(p->level--);
20050 return NULL;
20051 }
20052 _children = _new_children;
20053 }
20054 _children[_n++] = _res;
20055 _mark = p->mark;
20056 }
20057 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020058 D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020059 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
20060 }
20061 if (_n == 0 || p->error_indicator) {
20062 PyMem_Free(_children);
20063 D(p->level--);
20064 return NULL;
20065 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020066 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020067 if (!_seq) {
20068 PyMem_Free(_children);
20069 p->error_indicator = 1;
20070 PyErr_NoMemory();
20071 D(p->level--);
20072 return NULL;
20073 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020074 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020075 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020076 _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020077 D(p->level--);
20078 return _seq;
20079}
20080
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020081// _loop0_74: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020082static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020083_loop0_74_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020084{
20085 D(p->level++);
20086 if (p->error_indicator) {
20087 D(p->level--);
20088 return NULL;
20089 }
20090 void *_res = NULL;
20091 int _mark = p->mark;
20092 int _start_mark = p->mark;
20093 void **_children = PyMem_Malloc(sizeof(void *));
20094 if (!_children) {
20095 p->error_indicator = 1;
20096 PyErr_NoMemory();
20097 D(p->level--);
20098 return NULL;
20099 }
20100 ssize_t _children_capacity = 1;
20101 ssize_t _n = 0;
20102 { // lambda_param_no_default
20103 if (p->error_indicator) {
20104 D(p->level--);
20105 return NULL;
20106 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020107 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 +010020108 arg_ty lambda_param_no_default_var;
20109 while (
20110 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
20111 )
20112 {
20113 _res = lambda_param_no_default_var;
20114 if (_n == _children_capacity) {
20115 _children_capacity *= 2;
20116 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20117 if (!_new_children) {
20118 p->error_indicator = 1;
20119 PyErr_NoMemory();
20120 D(p->level--);
20121 return NULL;
20122 }
20123 _children = _new_children;
20124 }
20125 _children[_n++] = _res;
20126 _mark = p->mark;
20127 }
20128 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020129 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020130 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020131 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020132 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020133 if (!_seq) {
20134 PyMem_Free(_children);
20135 p->error_indicator = 1;
20136 PyErr_NoMemory();
20137 D(p->level--);
20138 return NULL;
20139 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020140 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020141 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020142 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020143 D(p->level--);
20144 return _seq;
20145}
20146
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020147// _loop0_75: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020148static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020149_loop0_75_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020150{
20151 D(p->level++);
20152 if (p->error_indicator) {
20153 D(p->level--);
20154 return NULL;
20155 }
20156 void *_res = NULL;
20157 int _mark = p->mark;
20158 int _start_mark = p->mark;
20159 void **_children = PyMem_Malloc(sizeof(void *));
20160 if (!_children) {
20161 p->error_indicator = 1;
20162 PyErr_NoMemory();
20163 D(p->level--);
20164 return NULL;
20165 }
20166 ssize_t _children_capacity = 1;
20167 ssize_t _n = 0;
20168 { // lambda_param_with_default
20169 if (p->error_indicator) {
20170 D(p->level--);
20171 return NULL;
20172 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020173 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 +010020174 NameDefaultPair* lambda_param_with_default_var;
20175 while (
20176 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20177 )
20178 {
20179 _res = lambda_param_with_default_var;
20180 if (_n == _children_capacity) {
20181 _children_capacity *= 2;
20182 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20183 if (!_new_children) {
20184 p->error_indicator = 1;
20185 PyErr_NoMemory();
20186 D(p->level--);
20187 return NULL;
20188 }
20189 _children = _new_children;
20190 }
20191 _children[_n++] = _res;
20192 _mark = p->mark;
20193 }
20194 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020195 D(fprintf(stderr, "%*c%s _loop0_75[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020196 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
20197 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020198 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020199 if (!_seq) {
20200 PyMem_Free(_children);
20201 p->error_indicator = 1;
20202 PyErr_NoMemory();
20203 D(p->level--);
20204 return NULL;
20205 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020206 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020207 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020208 _PyPegen_insert_memo(p, _start_mark, _loop0_75_type, _seq);
20209 D(p->level--);
20210 return _seq;
20211}
20212
20213// _loop0_76: lambda_param_with_default
20214static asdl_seq *
20215_loop0_76_rule(Parser *p)
20216{
20217 D(p->level++);
20218 if (p->error_indicator) {
20219 D(p->level--);
20220 return NULL;
20221 }
20222 void *_res = NULL;
20223 int _mark = p->mark;
20224 int _start_mark = p->mark;
20225 void **_children = PyMem_Malloc(sizeof(void *));
20226 if (!_children) {
20227 p->error_indicator = 1;
20228 PyErr_NoMemory();
20229 D(p->level--);
20230 return NULL;
20231 }
20232 ssize_t _children_capacity = 1;
20233 ssize_t _n = 0;
20234 { // lambda_param_with_default
20235 if (p->error_indicator) {
20236 D(p->level--);
20237 return NULL;
20238 }
20239 D(fprintf(stderr, "%*c> _loop0_76[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20240 NameDefaultPair* lambda_param_with_default_var;
20241 while (
20242 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20243 )
20244 {
20245 _res = lambda_param_with_default_var;
20246 if (_n == _children_capacity) {
20247 _children_capacity *= 2;
20248 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20249 if (!_new_children) {
20250 p->error_indicator = 1;
20251 PyErr_NoMemory();
20252 D(p->level--);
20253 return NULL;
20254 }
20255 _children = _new_children;
20256 }
20257 _children[_n++] = _res;
20258 _mark = p->mark;
20259 }
20260 p->mark = _mark;
20261 D(fprintf(stderr, "%*c%s _loop0_76[%d-%d]: %s failed!\n", p->level, ' ',
20262 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
20263 }
20264 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
20265 if (!_seq) {
20266 PyMem_Free(_children);
20267 p->error_indicator = 1;
20268 PyErr_NoMemory();
20269 D(p->level--);
20270 return NULL;
20271 }
20272 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
20273 PyMem_Free(_children);
20274 _PyPegen_insert_memo(p, _start_mark, _loop0_76_type, _seq);
20275 D(p->level--);
20276 return _seq;
20277}
20278
20279// _loop1_77: lambda_param_no_default
20280static asdl_seq *
20281_loop1_77_rule(Parser *p)
20282{
20283 D(p->level++);
20284 if (p->error_indicator) {
20285 D(p->level--);
20286 return NULL;
20287 }
20288 void *_res = NULL;
20289 int _mark = p->mark;
20290 int _start_mark = p->mark;
20291 void **_children = PyMem_Malloc(sizeof(void *));
20292 if (!_children) {
20293 p->error_indicator = 1;
20294 PyErr_NoMemory();
20295 D(p->level--);
20296 return NULL;
20297 }
20298 ssize_t _children_capacity = 1;
20299 ssize_t _n = 0;
20300 { // lambda_param_no_default
20301 if (p->error_indicator) {
20302 D(p->level--);
20303 return NULL;
20304 }
20305 D(fprintf(stderr, "%*c> _loop1_77[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
20306 arg_ty lambda_param_no_default_var;
20307 while (
20308 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
20309 )
20310 {
20311 _res = lambda_param_no_default_var;
20312 if (_n == _children_capacity) {
20313 _children_capacity *= 2;
20314 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20315 if (!_new_children) {
20316 p->error_indicator = 1;
20317 PyErr_NoMemory();
20318 D(p->level--);
20319 return NULL;
20320 }
20321 _children = _new_children;
20322 }
20323 _children[_n++] = _res;
20324 _mark = p->mark;
20325 }
20326 p->mark = _mark;
20327 D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
20328 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
20329 }
20330 if (_n == 0 || p->error_indicator) {
20331 PyMem_Free(_children);
20332 D(p->level--);
20333 return NULL;
20334 }
20335 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
20336 if (!_seq) {
20337 PyMem_Free(_children);
20338 p->error_indicator = 1;
20339 PyErr_NoMemory();
20340 D(p->level--);
20341 return NULL;
20342 }
20343 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
20344 PyMem_Free(_children);
20345 _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020346 D(p->level--);
20347 return _seq;
20348}
20349
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020350// _loop0_78: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020351static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020352_loop0_78_rule(Parser *p)
20353{
20354 D(p->level++);
20355 if (p->error_indicator) {
20356 D(p->level--);
20357 return NULL;
20358 }
20359 void *_res = NULL;
20360 int _mark = p->mark;
20361 int _start_mark = p->mark;
20362 void **_children = PyMem_Malloc(sizeof(void *));
20363 if (!_children) {
20364 p->error_indicator = 1;
20365 PyErr_NoMemory();
20366 D(p->level--);
20367 return NULL;
20368 }
20369 ssize_t _children_capacity = 1;
20370 ssize_t _n = 0;
20371 { // lambda_param_with_default
20372 if (p->error_indicator) {
20373 D(p->level--);
20374 return NULL;
20375 }
20376 D(fprintf(stderr, "%*c> _loop0_78[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20377 NameDefaultPair* lambda_param_with_default_var;
20378 while (
20379 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20380 )
20381 {
20382 _res = lambda_param_with_default_var;
20383 if (_n == _children_capacity) {
20384 _children_capacity *= 2;
20385 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20386 if (!_new_children) {
20387 p->error_indicator = 1;
20388 PyErr_NoMemory();
20389 D(p->level--);
20390 return NULL;
20391 }
20392 _children = _new_children;
20393 }
20394 _children[_n++] = _res;
20395 _mark = p->mark;
20396 }
20397 p->mark = _mark;
20398 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
20399 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
20400 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020401 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020402 if (!_seq) {
20403 PyMem_Free(_children);
20404 p->error_indicator = 1;
20405 PyErr_NoMemory();
20406 D(p->level--);
20407 return NULL;
20408 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020409 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020410 PyMem_Free(_children);
20411 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
20412 D(p->level--);
20413 return _seq;
20414}
20415
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020416// _loop1_79: lambda_param_with_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020417static asdl_seq *
20418_loop1_79_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020419{
20420 D(p->level++);
20421 if (p->error_indicator) {
20422 D(p->level--);
20423 return NULL;
20424 }
20425 void *_res = NULL;
20426 int _mark = p->mark;
20427 int _start_mark = p->mark;
20428 void **_children = PyMem_Malloc(sizeof(void *));
20429 if (!_children) {
20430 p->error_indicator = 1;
20431 PyErr_NoMemory();
20432 D(p->level--);
20433 return NULL;
20434 }
20435 ssize_t _children_capacity = 1;
20436 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020437 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020438 if (p->error_indicator) {
20439 D(p->level--);
20440 return NULL;
20441 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020442 D(fprintf(stderr, "%*c> _loop1_79[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20443 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020444 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020445 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020446 )
20447 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020448 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020449 if (_n == _children_capacity) {
20450 _children_capacity *= 2;
20451 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20452 if (!_new_children) {
20453 p->error_indicator = 1;
20454 PyErr_NoMemory();
20455 D(p->level--);
20456 return NULL;
20457 }
20458 _children = _new_children;
20459 }
20460 _children[_n++] = _res;
20461 _mark = p->mark;
20462 }
20463 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020464 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020465 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020466 }
20467 if (_n == 0 || p->error_indicator) {
20468 PyMem_Free(_children);
20469 D(p->level--);
20470 return NULL;
20471 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020472 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020473 if (!_seq) {
20474 PyMem_Free(_children);
20475 p->error_indicator = 1;
20476 PyErr_NoMemory();
20477 D(p->level--);
20478 return NULL;
20479 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020480 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020481 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020482 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020483 D(p->level--);
20484 return _seq;
20485}
20486
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020487// _loop1_80: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020488static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020489_loop1_80_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020490{
20491 D(p->level++);
20492 if (p->error_indicator) {
20493 D(p->level--);
20494 return NULL;
20495 }
20496 void *_res = NULL;
20497 int _mark = p->mark;
20498 int _start_mark = p->mark;
20499 void **_children = PyMem_Malloc(sizeof(void *));
20500 if (!_children) {
20501 p->error_indicator = 1;
20502 PyErr_NoMemory();
20503 D(p->level--);
20504 return NULL;
20505 }
20506 ssize_t _children_capacity = 1;
20507 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020508 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020509 if (p->error_indicator) {
20510 D(p->level--);
20511 return NULL;
20512 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020513 D(fprintf(stderr, "%*c> _loop1_80[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
20514 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020515 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020516 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020517 )
20518 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020519 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020520 if (_n == _children_capacity) {
20521 _children_capacity *= 2;
20522 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20523 if (!_new_children) {
20524 p->error_indicator = 1;
20525 PyErr_NoMemory();
20526 D(p->level--);
20527 return NULL;
20528 }
20529 _children = _new_children;
20530 }
20531 _children[_n++] = _res;
20532 _mark = p->mark;
20533 }
20534 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020535 D(fprintf(stderr, "%*c%s _loop1_80[%d-%d]: %s failed!\n", p->level, ' ',
20536 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
20537 }
20538 if (_n == 0 || p->error_indicator) {
20539 PyMem_Free(_children);
20540 D(p->level--);
20541 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020542 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020543 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020544 if (!_seq) {
20545 PyMem_Free(_children);
20546 p->error_indicator = 1;
20547 PyErr_NoMemory();
20548 D(p->level--);
20549 return NULL;
20550 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020551 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020552 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020553 _PyPegen_insert_memo(p, _start_mark, _loop1_80_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020554 D(p->level--);
20555 return _seq;
20556}
20557
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020558// _loop1_81: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020559static asdl_seq *
20560_loop1_81_rule(Parser *p)
20561{
20562 D(p->level++);
20563 if (p->error_indicator) {
20564 D(p->level--);
20565 return NULL;
20566 }
20567 void *_res = NULL;
20568 int _mark = p->mark;
20569 int _start_mark = p->mark;
20570 void **_children = PyMem_Malloc(sizeof(void *));
20571 if (!_children) {
20572 p->error_indicator = 1;
20573 PyErr_NoMemory();
20574 D(p->level--);
20575 return NULL;
20576 }
20577 ssize_t _children_capacity = 1;
20578 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020579 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020580 if (p->error_indicator) {
20581 D(p->level--);
20582 return NULL;
20583 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020584 D(fprintf(stderr, "%*c> _loop1_81[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
20585 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020586 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020587 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020588 )
20589 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020590 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020591 if (_n == _children_capacity) {
20592 _children_capacity *= 2;
20593 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20594 if (!_new_children) {
20595 p->error_indicator = 1;
20596 PyErr_NoMemory();
20597 D(p->level--);
20598 return NULL;
20599 }
20600 _children = _new_children;
20601 }
20602 _children[_n++] = _res;
20603 _mark = p->mark;
20604 }
20605 p->mark = _mark;
20606 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020607 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020608 }
20609 if (_n == 0 || p->error_indicator) {
20610 PyMem_Free(_children);
20611 D(p->level--);
20612 return NULL;
20613 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020614 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020615 if (!_seq) {
20616 PyMem_Free(_children);
20617 p->error_indicator = 1;
20618 PyErr_NoMemory();
20619 D(p->level--);
20620 return NULL;
20621 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020622 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020623 PyMem_Free(_children);
20624 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
20625 D(p->level--);
20626 return _seq;
20627}
20628
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020629// _loop0_82: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020630static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020631_loop0_82_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020632{
20633 D(p->level++);
20634 if (p->error_indicator) {
20635 D(p->level--);
20636 return NULL;
20637 }
20638 void *_res = NULL;
20639 int _mark = p->mark;
20640 int _start_mark = p->mark;
20641 void **_children = PyMem_Malloc(sizeof(void *));
20642 if (!_children) {
20643 p->error_indicator = 1;
20644 PyErr_NoMemory();
20645 D(p->level--);
20646 return NULL;
20647 }
20648 ssize_t _children_capacity = 1;
20649 ssize_t _n = 0;
20650 { // lambda_param_no_default
20651 if (p->error_indicator) {
20652 D(p->level--);
20653 return NULL;
20654 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020655 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 +010020656 arg_ty lambda_param_no_default_var;
20657 while (
20658 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
20659 )
20660 {
20661 _res = lambda_param_no_default_var;
20662 if (_n == _children_capacity) {
20663 _children_capacity *= 2;
20664 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20665 if (!_new_children) {
20666 p->error_indicator = 1;
20667 PyErr_NoMemory();
20668 D(p->level--);
20669 return NULL;
20670 }
20671 _children = _new_children;
20672 }
20673 _children[_n++] = _res;
20674 _mark = p->mark;
20675 }
20676 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020677 D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020678 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
20679 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020680 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020681 if (!_seq) {
20682 PyMem_Free(_children);
20683 p->error_indicator = 1;
20684 PyErr_NoMemory();
20685 D(p->level--);
20686 return NULL;
20687 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020688 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020689 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020690 _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020691 D(p->level--);
20692 return _seq;
20693}
20694
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020695// _loop1_83: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020696static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020697_loop1_83_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020698{
20699 D(p->level++);
20700 if (p->error_indicator) {
20701 D(p->level--);
20702 return NULL;
20703 }
20704 void *_res = NULL;
20705 int _mark = p->mark;
20706 int _start_mark = p->mark;
20707 void **_children = PyMem_Malloc(sizeof(void *));
20708 if (!_children) {
20709 p->error_indicator = 1;
20710 PyErr_NoMemory();
20711 D(p->level--);
20712 return NULL;
20713 }
20714 ssize_t _children_capacity = 1;
20715 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020716 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020717 if (p->error_indicator) {
20718 D(p->level--);
20719 return NULL;
20720 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020721 D(fprintf(stderr, "%*c> _loop1_83[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
20722 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020723 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020724 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020725 )
20726 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020727 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020728 if (_n == _children_capacity) {
20729 _children_capacity *= 2;
20730 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20731 if (!_new_children) {
20732 p->error_indicator = 1;
20733 PyErr_NoMemory();
20734 D(p->level--);
20735 return NULL;
20736 }
20737 _children = _new_children;
20738 }
20739 _children[_n++] = _res;
20740 _mark = p->mark;
20741 }
20742 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020743 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020744 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020745 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020746 if (_n == 0 || p->error_indicator) {
20747 PyMem_Free(_children);
20748 D(p->level--);
20749 return NULL;
20750 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020751 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020752 if (!_seq) {
20753 PyMem_Free(_children);
20754 p->error_indicator = 1;
20755 PyErr_NoMemory();
20756 D(p->level--);
20757 return NULL;
20758 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020759 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020760 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020761 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020762 D(p->level--);
20763 return _seq;
20764}
20765
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020766// _loop0_84: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020767static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020768_loop0_84_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020769{
20770 D(p->level++);
20771 if (p->error_indicator) {
20772 D(p->level--);
20773 return NULL;
20774 }
20775 void *_res = NULL;
20776 int _mark = p->mark;
20777 int _start_mark = p->mark;
20778 void **_children = PyMem_Malloc(sizeof(void *));
20779 if (!_children) {
20780 p->error_indicator = 1;
20781 PyErr_NoMemory();
20782 D(p->level--);
20783 return NULL;
20784 }
20785 ssize_t _children_capacity = 1;
20786 ssize_t _n = 0;
20787 { // lambda_param_no_default
20788 if (p->error_indicator) {
20789 D(p->level--);
20790 return NULL;
20791 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020792 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 +010020793 arg_ty lambda_param_no_default_var;
20794 while (
20795 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
20796 )
20797 {
20798 _res = lambda_param_no_default_var;
20799 if (_n == _children_capacity) {
20800 _children_capacity *= 2;
20801 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20802 if (!_new_children) {
20803 p->error_indicator = 1;
20804 PyErr_NoMemory();
20805 D(p->level--);
20806 return NULL;
20807 }
20808 _children = _new_children;
20809 }
20810 _children[_n++] = _res;
20811 _mark = p->mark;
20812 }
20813 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020814 D(fprintf(stderr, "%*c%s _loop0_84[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020815 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
20816 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020817 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020818 if (!_seq) {
20819 PyMem_Free(_children);
20820 p->error_indicator = 1;
20821 PyErr_NoMemory();
20822 D(p->level--);
20823 return NULL;
20824 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020825 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020826 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020827 _PyPegen_insert_memo(p, _start_mark, _loop0_84_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020828 D(p->level--);
20829 return _seq;
20830}
20831
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020832// _loop1_85: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020833static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020834_loop1_85_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020835{
20836 D(p->level++);
20837 if (p->error_indicator) {
20838 D(p->level--);
20839 return NULL;
20840 }
20841 void *_res = NULL;
20842 int _mark = p->mark;
20843 int _start_mark = p->mark;
20844 void **_children = PyMem_Malloc(sizeof(void *));
20845 if (!_children) {
20846 p->error_indicator = 1;
20847 PyErr_NoMemory();
20848 D(p->level--);
20849 return NULL;
20850 }
20851 ssize_t _children_capacity = 1;
20852 ssize_t _n = 0;
20853 { // lambda_param_with_default
20854 if (p->error_indicator) {
20855 D(p->level--);
20856 return NULL;
20857 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020858 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 +010020859 NameDefaultPair* lambda_param_with_default_var;
20860 while (
20861 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
20862 )
20863 {
20864 _res = lambda_param_with_default_var;
20865 if (_n == _children_capacity) {
20866 _children_capacity *= 2;
20867 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20868 if (!_new_children) {
20869 p->error_indicator = 1;
20870 PyErr_NoMemory();
20871 D(p->level--);
20872 return NULL;
20873 }
20874 _children = _new_children;
20875 }
20876 _children[_n++] = _res;
20877 _mark = p->mark;
20878 }
20879 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020880 D(fprintf(stderr, "%*c%s _loop1_85[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020881 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
20882 }
20883 if (_n == 0 || p->error_indicator) {
20884 PyMem_Free(_children);
20885 D(p->level--);
20886 return NULL;
20887 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020888 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020889 if (!_seq) {
20890 PyMem_Free(_children);
20891 p->error_indicator = 1;
20892 PyErr_NoMemory();
20893 D(p->level--);
20894 return NULL;
20895 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020896 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020897 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020898 _PyPegen_insert_memo(p, _start_mark, _loop1_85_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020899 D(p->level--);
20900 return _seq;
20901}
20902
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020903// _loop0_86: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020904static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020905_loop0_86_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020906{
20907 D(p->level++);
20908 if (p->error_indicator) {
20909 D(p->level--);
20910 return NULL;
20911 }
20912 void *_res = NULL;
20913 int _mark = p->mark;
20914 int _start_mark = p->mark;
20915 void **_children = PyMem_Malloc(sizeof(void *));
20916 if (!_children) {
20917 p->error_indicator = 1;
20918 PyErr_NoMemory();
20919 D(p->level--);
20920 return NULL;
20921 }
20922 ssize_t _children_capacity = 1;
20923 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020924 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020925 if (p->error_indicator) {
20926 D(p->level--);
20927 return NULL;
20928 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020929 D(fprintf(stderr, "%*c> _loop0_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
20930 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020931 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020932 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020933 )
20934 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020935 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020936 if (_n == _children_capacity) {
20937 _children_capacity *= 2;
20938 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20939 if (!_new_children) {
20940 p->error_indicator = 1;
20941 PyErr_NoMemory();
20942 D(p->level--);
20943 return NULL;
20944 }
20945 _children = _new_children;
20946 }
20947 _children[_n++] = _res;
20948 _mark = p->mark;
20949 }
20950 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020951 D(fprintf(stderr, "%*c%s _loop0_86[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020952 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020953 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020954 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020955 if (!_seq) {
20956 PyMem_Free(_children);
20957 p->error_indicator = 1;
20958 PyErr_NoMemory();
20959 D(p->level--);
20960 return NULL;
20961 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020962 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020963 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020964 _PyPegen_insert_memo(p, _start_mark, _loop0_86_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020965 D(p->level--);
20966 return _seq;
20967}
20968
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020969// _loop1_87: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020970static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030020971_loop1_87_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020972{
20973 D(p->level++);
20974 if (p->error_indicator) {
20975 D(p->level--);
20976 return NULL;
20977 }
20978 void *_res = NULL;
20979 int _mark = p->mark;
20980 int _start_mark = p->mark;
20981 void **_children = PyMem_Malloc(sizeof(void *));
20982 if (!_children) {
20983 p->error_indicator = 1;
20984 PyErr_NoMemory();
20985 D(p->level--);
20986 return NULL;
20987 }
20988 ssize_t _children_capacity = 1;
20989 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020990 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020991 if (p->error_indicator) {
20992 D(p->level--);
20993 return NULL;
20994 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020995 D(fprintf(stderr, "%*c> _loop1_87[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
20996 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020997 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000020998 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020999 )
21000 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021001 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021002 if (_n == _children_capacity) {
21003 _children_capacity *= 2;
21004 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21005 if (!_new_children) {
21006 p->error_indicator = 1;
21007 PyErr_NoMemory();
21008 D(p->level--);
21009 return NULL;
21010 }
21011 _children = _new_children;
21012 }
21013 _children[_n++] = _res;
21014 _mark = p->mark;
21015 }
21016 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021017 D(fprintf(stderr, "%*c%s _loop1_87[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021018 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021019 }
21020 if (_n == 0 || p->error_indicator) {
21021 PyMem_Free(_children);
21022 D(p->level--);
21023 return NULL;
21024 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021025 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021026 if (!_seq) {
21027 PyMem_Free(_children);
21028 p->error_indicator = 1;
21029 PyErr_NoMemory();
21030 D(p->level--);
21031 return NULL;
21032 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021033 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021034 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021035 _PyPegen_insert_memo(p, _start_mark, _loop1_87_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021036 D(p->level--);
21037 return _seq;
21038}
21039
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021040// _loop1_88: ('or' conjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021041static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021042_loop1_88_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030021043{
21044 D(p->level++);
21045 if (p->error_indicator) {
21046 D(p->level--);
21047 return NULL;
21048 }
21049 void *_res = NULL;
21050 int _mark = p->mark;
21051 int _start_mark = p->mark;
21052 void **_children = PyMem_Malloc(sizeof(void *));
21053 if (!_children) {
21054 p->error_indicator = 1;
21055 PyErr_NoMemory();
21056 D(p->level--);
21057 return NULL;
21058 }
21059 ssize_t _children_capacity = 1;
21060 ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021061 { // ('or' conjunction)
21062 if (p->error_indicator) {
21063 D(p->level--);
21064 return NULL;
21065 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021066 D(fprintf(stderr, "%*c> _loop1_88[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020021067 void *_tmp_144_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021068 while (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020021069 (_tmp_144_var = _tmp_144_rule(p)) // 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021070 )
21071 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020021072 _res = _tmp_144_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021073 if (_n == _children_capacity) {
21074 _children_capacity *= 2;
21075 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21076 if (!_new_children) {
21077 p->error_indicator = 1;
21078 PyErr_NoMemory();
21079 D(p->level--);
21080 return NULL;
21081 }
21082 _children = _new_children;
21083 }
21084 _children[_n++] = _res;
21085 _mark = p->mark;
21086 }
21087 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021088 D(fprintf(stderr, "%*c%s _loop1_88[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021089 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
21090 }
21091 if (_n == 0 || p->error_indicator) {
21092 PyMem_Free(_children);
21093 D(p->level--);
21094 return NULL;
21095 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021096 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021097 if (!_seq) {
21098 PyMem_Free(_children);
21099 p->error_indicator = 1;
21100 PyErr_NoMemory();
21101 D(p->level--);
21102 return NULL;
21103 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021104 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021105 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021106 _PyPegen_insert_memo(p, _start_mark, _loop1_88_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021107 D(p->level--);
21108 return _seq;
21109}
21110
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021111// _loop1_89: ('and' inversion)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021112static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021113_loop1_89_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021114{
21115 D(p->level++);
21116 if (p->error_indicator) {
21117 D(p->level--);
21118 return NULL;
21119 }
21120 void *_res = NULL;
21121 int _mark = p->mark;
21122 int _start_mark = p->mark;
21123 void **_children = PyMem_Malloc(sizeof(void *));
21124 if (!_children) {
21125 p->error_indicator = 1;
21126 PyErr_NoMemory();
21127 D(p->level--);
21128 return NULL;
21129 }
21130 ssize_t _children_capacity = 1;
21131 ssize_t _n = 0;
21132 { // ('and' inversion)
21133 if (p->error_indicator) {
21134 D(p->level--);
21135 return NULL;
21136 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021137 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020021138 void *_tmp_145_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021139 while (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020021140 (_tmp_145_var = _tmp_145_rule(p)) // 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021141 )
21142 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020021143 _res = _tmp_145_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021144 if (_n == _children_capacity) {
21145 _children_capacity *= 2;
21146 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21147 if (!_new_children) {
21148 p->error_indicator = 1;
21149 PyErr_NoMemory();
21150 D(p->level--);
21151 return NULL;
21152 }
21153 _children = _new_children;
21154 }
21155 _children[_n++] = _res;
21156 _mark = p->mark;
21157 }
21158 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021159 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021160 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
21161 }
21162 if (_n == 0 || p->error_indicator) {
21163 PyMem_Free(_children);
21164 D(p->level--);
21165 return NULL;
21166 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021167 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021168 if (!_seq) {
21169 PyMem_Free(_children);
21170 p->error_indicator = 1;
21171 PyErr_NoMemory();
21172 D(p->level--);
21173 return NULL;
21174 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021175 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021176 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021177 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021178 D(p->level--);
21179 return _seq;
21180}
21181
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021182// _loop1_90: compare_op_bitwise_or_pair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021183static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021184_loop1_90_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021185{
21186 D(p->level++);
21187 if (p->error_indicator) {
21188 D(p->level--);
21189 return NULL;
21190 }
21191 void *_res = NULL;
21192 int _mark = p->mark;
21193 int _start_mark = p->mark;
21194 void **_children = PyMem_Malloc(sizeof(void *));
21195 if (!_children) {
21196 p->error_indicator = 1;
21197 PyErr_NoMemory();
21198 D(p->level--);
21199 return NULL;
21200 }
21201 ssize_t _children_capacity = 1;
21202 ssize_t _n = 0;
21203 { // compare_op_bitwise_or_pair
21204 if (p->error_indicator) {
21205 D(p->level--);
21206 return NULL;
21207 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021208 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 +010021209 CmpopExprPair* compare_op_bitwise_or_pair_var;
21210 while (
21211 (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
21212 )
21213 {
21214 _res = compare_op_bitwise_or_pair_var;
21215 if (_n == _children_capacity) {
21216 _children_capacity *= 2;
21217 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21218 if (!_new_children) {
21219 p->error_indicator = 1;
21220 PyErr_NoMemory();
21221 D(p->level--);
21222 return NULL;
21223 }
21224 _children = _new_children;
21225 }
21226 _children[_n++] = _res;
21227 _mark = p->mark;
21228 }
21229 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021230 D(fprintf(stderr, "%*c%s _loop1_90[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021231 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
21232 }
21233 if (_n == 0 || p->error_indicator) {
21234 PyMem_Free(_children);
21235 D(p->level--);
21236 return NULL;
21237 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021238 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021239 if (!_seq) {
21240 PyMem_Free(_children);
21241 p->error_indicator = 1;
21242 PyErr_NoMemory();
21243 D(p->level--);
21244 return NULL;
21245 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021246 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021247 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021248 _PyPegen_insert_memo(p, _start_mark, _loop1_90_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021249 D(p->level--);
21250 return _seq;
21251}
21252
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021253// _tmp_91: '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021254static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021255_tmp_91_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021256{
21257 D(p->level++);
21258 if (p->error_indicator) {
21259 D(p->level--);
21260 return NULL;
21261 }
21262 void * _res = NULL;
21263 int _mark = p->mark;
21264 { // '!='
21265 if (p->error_indicator) {
21266 D(p->level--);
21267 return NULL;
21268 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021269 D(fprintf(stderr, "%*c> _tmp_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021270 Token * tok;
21271 if (
21272 (tok = _PyPegen_expect_token(p, 28)) // token='!='
21273 )
21274 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021275 D(fprintf(stderr, "%*c+ _tmp_91[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo06f8c332020-10-30 23:48:42 +000021276 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021277 if (_res == NULL && PyErr_Occurred()) {
21278 p->error_indicator = 1;
21279 D(p->level--);
21280 return NULL;
21281 }
21282 goto done;
21283 }
21284 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021285 D(fprintf(stderr, "%*c%s _tmp_91[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021286 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
21287 }
21288 _res = NULL;
21289 done:
21290 D(p->level--);
21291 return _res;
21292}
21293
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021294// _loop0_93: ',' slice
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021295static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021296_loop0_93_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021297{
21298 D(p->level++);
21299 if (p->error_indicator) {
21300 D(p->level--);
21301 return NULL;
21302 }
21303 void *_res = NULL;
21304 int _mark = p->mark;
21305 int _start_mark = p->mark;
21306 void **_children = PyMem_Malloc(sizeof(void *));
21307 if (!_children) {
21308 p->error_indicator = 1;
21309 PyErr_NoMemory();
21310 D(p->level--);
21311 return NULL;
21312 }
21313 ssize_t _children_capacity = 1;
21314 ssize_t _n = 0;
21315 { // ',' slice
21316 if (p->error_indicator) {
21317 D(p->level--);
21318 return NULL;
21319 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021320 D(fprintf(stderr, "%*c> _loop0_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021321 Token * _literal;
21322 expr_ty elem;
21323 while (
21324 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21325 &&
21326 (elem = slice_rule(p)) // slice
21327 )
21328 {
21329 _res = elem;
21330 if (_res == NULL && PyErr_Occurred()) {
21331 p->error_indicator = 1;
21332 PyMem_Free(_children);
21333 D(p->level--);
21334 return NULL;
21335 }
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 _loop0_93[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021352 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
21353 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021354 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021355 if (!_seq) {
21356 PyMem_Free(_children);
21357 p->error_indicator = 1;
21358 PyErr_NoMemory();
21359 D(p->level--);
21360 return NULL;
21361 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021362 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021363 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021364 _PyPegen_insert_memo(p, _start_mark, _loop0_93_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021365 D(p->level--);
21366 return _seq;
21367}
21368
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021369// _gather_92: slice _loop0_93
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021370static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021371_gather_92_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021372{
21373 D(p->level++);
21374 if (p->error_indicator) {
21375 D(p->level--);
21376 return NULL;
21377 }
21378 asdl_seq * _res = NULL;
21379 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021380 { // slice _loop0_93
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021381 if (p->error_indicator) {
21382 D(p->level--);
21383 return NULL;
21384 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021385 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 +010021386 expr_ty elem;
21387 asdl_seq * seq;
21388 if (
21389 (elem = slice_rule(p)) // slice
21390 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021391 (seq = _loop0_93_rule(p)) // _loop0_93
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021392 )
21393 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021394 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 +010021395 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21396 goto done;
21397 }
21398 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021399 D(fprintf(stderr, "%*c%s _gather_92[%d-%d]: %s failed!\n", p->level, ' ',
21400 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_93"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021401 }
21402 _res = NULL;
21403 done:
21404 D(p->level--);
21405 return _res;
21406}
21407
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021408// _tmp_94: ':' expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021409static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021410_tmp_94_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021411{
21412 D(p->level++);
21413 if (p->error_indicator) {
21414 D(p->level--);
21415 return NULL;
21416 }
21417 void * _res = NULL;
21418 int _mark = p->mark;
21419 { // ':' expression?
21420 if (p->error_indicator) {
21421 D(p->level--);
21422 return NULL;
21423 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021424 D(fprintf(stderr, "%*c> _tmp_94[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021425 Token * _literal;
21426 void *d;
21427 if (
21428 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21429 &&
21430 (d = expression_rule(p), 1) // expression?
21431 )
21432 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021433 D(fprintf(stderr, "%*c+ _tmp_94[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021434 _res = d;
21435 if (_res == NULL && PyErr_Occurred()) {
21436 p->error_indicator = 1;
21437 D(p->level--);
21438 return NULL;
21439 }
21440 goto done;
21441 }
21442 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021443 D(fprintf(stderr, "%*c%s _tmp_94[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021444 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
21445 }
21446 _res = NULL;
21447 done:
21448 D(p->level--);
21449 return _res;
21450}
21451
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021452// _tmp_95: tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021453static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021454_tmp_95_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021455{
21456 D(p->level++);
21457 if (p->error_indicator) {
21458 D(p->level--);
21459 return NULL;
21460 }
21461 void * _res = NULL;
21462 int _mark = p->mark;
21463 { // tuple
21464 if (p->error_indicator) {
21465 D(p->level--);
21466 return NULL;
21467 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021468 D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021469 expr_ty tuple_var;
21470 if (
21471 (tuple_var = tuple_rule(p)) // tuple
21472 )
21473 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021474 D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021475 _res = tuple_var;
21476 goto done;
21477 }
21478 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021479 D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021480 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
21481 }
21482 { // group
21483 if (p->error_indicator) {
21484 D(p->level--);
21485 return NULL;
21486 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021487 D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021488 expr_ty group_var;
21489 if (
21490 (group_var = group_rule(p)) // group
21491 )
21492 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021493 D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021494 _res = group_var;
21495 goto done;
21496 }
21497 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021498 D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021499 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
21500 }
21501 { // genexp
21502 if (p->error_indicator) {
21503 D(p->level--);
21504 return NULL;
21505 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021506 D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021507 expr_ty genexp_var;
21508 if (
21509 (genexp_var = genexp_rule(p)) // genexp
21510 )
21511 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021512 D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021513 _res = genexp_var;
21514 goto done;
21515 }
21516 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021517 D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021518 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
21519 }
21520 _res = NULL;
21521 done:
21522 D(p->level--);
21523 return _res;
21524}
21525
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021526// _tmp_96: list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021527static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021528_tmp_96_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021529{
21530 D(p->level++);
21531 if (p->error_indicator) {
21532 D(p->level--);
21533 return NULL;
21534 }
21535 void * _res = NULL;
21536 int _mark = p->mark;
21537 { // list
21538 if (p->error_indicator) {
21539 D(p->level--);
21540 return NULL;
21541 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021542 D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021543 expr_ty list_var;
21544 if (
21545 (list_var = list_rule(p)) // list
21546 )
21547 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021548 D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021549 _res = list_var;
21550 goto done;
21551 }
21552 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021553 D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021554 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
21555 }
21556 { // listcomp
21557 if (p->error_indicator) {
21558 D(p->level--);
21559 return NULL;
21560 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021561 D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021562 expr_ty listcomp_var;
21563 if (
21564 (listcomp_var = listcomp_rule(p)) // listcomp
21565 )
21566 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021567 D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021568 _res = listcomp_var;
21569 goto done;
21570 }
21571 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021572 D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
21574 }
21575 _res = NULL;
21576 done:
21577 D(p->level--);
21578 return _res;
21579}
21580
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021581// _tmp_97: dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021582static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021583_tmp_97_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021584{
21585 D(p->level++);
21586 if (p->error_indicator) {
21587 D(p->level--);
21588 return NULL;
21589 }
21590 void * _res = NULL;
21591 int _mark = p->mark;
21592 { // dict
21593 if (p->error_indicator) {
21594 D(p->level--);
21595 return NULL;
21596 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021597 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021598 expr_ty dict_var;
21599 if (
21600 (dict_var = dict_rule(p)) // dict
21601 )
21602 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021603 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021604 _res = dict_var;
21605 goto done;
21606 }
21607 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021608 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021609 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
21610 }
21611 { // set
21612 if (p->error_indicator) {
21613 D(p->level--);
21614 return NULL;
21615 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021616 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021617 expr_ty set_var;
21618 if (
21619 (set_var = set_rule(p)) // set
21620 )
21621 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021622 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021623 _res = set_var;
21624 goto done;
21625 }
21626 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021627 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021628 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
21629 }
21630 { // dictcomp
21631 if (p->error_indicator) {
21632 D(p->level--);
21633 return NULL;
21634 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021635 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021636 expr_ty dictcomp_var;
21637 if (
21638 (dictcomp_var = dictcomp_rule(p)) // dictcomp
21639 )
21640 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021641 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021642 _res = dictcomp_var;
21643 goto done;
21644 }
21645 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021646 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021647 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
21648 }
21649 { // setcomp
21650 if (p->error_indicator) {
21651 D(p->level--);
21652 return NULL;
21653 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021654 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021655 expr_ty setcomp_var;
21656 if (
21657 (setcomp_var = setcomp_rule(p)) // setcomp
21658 )
21659 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021660 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021661 _res = setcomp_var;
21662 goto done;
21663 }
21664 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021665 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021666 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
21667 }
21668 _res = NULL;
21669 done:
21670 D(p->level--);
21671 return _res;
21672}
21673
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021674// _loop1_98: STRING
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021675static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021676_loop1_98_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021677{
21678 D(p->level++);
21679 if (p->error_indicator) {
21680 D(p->level--);
21681 return NULL;
21682 }
21683 void *_res = NULL;
21684 int _mark = p->mark;
21685 int _start_mark = p->mark;
21686 void **_children = PyMem_Malloc(sizeof(void *));
21687 if (!_children) {
21688 p->error_indicator = 1;
21689 PyErr_NoMemory();
21690 D(p->level--);
21691 return NULL;
21692 }
21693 ssize_t _children_capacity = 1;
21694 ssize_t _n = 0;
21695 { // STRING
21696 if (p->error_indicator) {
21697 D(p->level--);
21698 return NULL;
21699 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021700 D(fprintf(stderr, "%*c> _loop1_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021701 expr_ty string_var;
21702 while (
21703 (string_var = _PyPegen_string_token(p)) // STRING
21704 )
21705 {
21706 _res = string_var;
21707 if (_n == _children_capacity) {
21708 _children_capacity *= 2;
21709 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21710 if (!_new_children) {
21711 p->error_indicator = 1;
21712 PyErr_NoMemory();
21713 D(p->level--);
21714 return NULL;
21715 }
21716 _children = _new_children;
21717 }
21718 _children[_n++] = _res;
21719 _mark = p->mark;
21720 }
21721 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021722 D(fprintf(stderr, "%*c%s _loop1_98[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021723 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
21724 }
21725 if (_n == 0 || p->error_indicator) {
21726 PyMem_Free(_children);
21727 D(p->level--);
21728 return NULL;
21729 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021730 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021731 if (!_seq) {
21732 PyMem_Free(_children);
21733 p->error_indicator = 1;
21734 PyErr_NoMemory();
21735 D(p->level--);
21736 return NULL;
21737 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021738 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021739 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021740 _PyPegen_insert_memo(p, _start_mark, _loop1_98_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021741 D(p->level--);
21742 return _seq;
21743}
21744
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021745// _tmp_99: star_named_expression ',' star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021746static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021747_tmp_99_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021748{
21749 D(p->level++);
21750 if (p->error_indicator) {
21751 D(p->level--);
21752 return NULL;
21753 }
21754 void * _res = NULL;
21755 int _mark = p->mark;
21756 { // star_named_expression ',' star_named_expressions?
21757 if (p->error_indicator) {
21758 D(p->level--);
21759 return NULL;
21760 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021761 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 +010021762 Token * _literal;
21763 expr_ty y;
21764 void *z;
21765 if (
21766 (y = star_named_expression_rule(p)) // star_named_expression
21767 &&
21768 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21769 &&
21770 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
21771 )
21772 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021773 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 +010021774 _res = _PyPegen_seq_insert_in_front ( p , y , z );
21775 if (_res == NULL && PyErr_Occurred()) {
21776 p->error_indicator = 1;
21777 D(p->level--);
21778 return NULL;
21779 }
21780 goto done;
21781 }
21782 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021783 D(fprintf(stderr, "%*c%s _tmp_99[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021784 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
21785 }
21786 _res = NULL;
21787 done:
21788 D(p->level--);
21789 return _res;
21790}
21791
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021792// _tmp_100: yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021793static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021794_tmp_100_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021795{
21796 D(p->level++);
21797 if (p->error_indicator) {
21798 D(p->level--);
21799 return NULL;
21800 }
21801 void * _res = NULL;
21802 int _mark = p->mark;
21803 { // yield_expr
21804 if (p->error_indicator) {
21805 D(p->level--);
21806 return NULL;
21807 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021808 D(fprintf(stderr, "%*c> _tmp_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021809 expr_ty yield_expr_var;
21810 if (
21811 (yield_expr_var = yield_expr_rule(p)) // yield_expr
21812 )
21813 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021814 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 +010021815 _res = yield_expr_var;
21816 goto done;
21817 }
21818 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021819 D(fprintf(stderr, "%*c%s _tmp_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021820 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
21821 }
21822 { // named_expression
21823 if (p->error_indicator) {
21824 D(p->level--);
21825 return NULL;
21826 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021827 D(fprintf(stderr, "%*c> _tmp_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021828 expr_ty named_expression_var;
21829 if (
21830 (named_expression_var = named_expression_rule(p)) // named_expression
21831 )
21832 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021833 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 +010021834 _res = named_expression_var;
21835 goto done;
21836 }
21837 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021838 D(fprintf(stderr, "%*c%s _tmp_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021839 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
21840 }
21841 _res = NULL;
21842 done:
21843 D(p->level--);
21844 return _res;
21845}
21846
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021847// _loop0_102: ',' double_starred_kvpair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021848static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021849_loop0_102_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021850{
21851 D(p->level++);
21852 if (p->error_indicator) {
21853 D(p->level--);
21854 return NULL;
21855 }
21856 void *_res = NULL;
21857 int _mark = p->mark;
21858 int _start_mark = p->mark;
21859 void **_children = PyMem_Malloc(sizeof(void *));
21860 if (!_children) {
21861 p->error_indicator = 1;
21862 PyErr_NoMemory();
21863 D(p->level--);
21864 return NULL;
21865 }
21866 ssize_t _children_capacity = 1;
21867 ssize_t _n = 0;
21868 { // ',' double_starred_kvpair
21869 if (p->error_indicator) {
21870 D(p->level--);
21871 return NULL;
21872 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021873 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 +010021874 Token * _literal;
21875 KeyValuePair* elem;
21876 while (
21877 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21878 &&
21879 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
21880 )
21881 {
21882 _res = elem;
21883 if (_res == NULL && PyErr_Occurred()) {
21884 p->error_indicator = 1;
21885 PyMem_Free(_children);
21886 D(p->level--);
21887 return NULL;
21888 }
21889 if (_n == _children_capacity) {
21890 _children_capacity *= 2;
21891 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21892 if (!_new_children) {
21893 p->error_indicator = 1;
21894 PyErr_NoMemory();
21895 D(p->level--);
21896 return NULL;
21897 }
21898 _children = _new_children;
21899 }
21900 _children[_n++] = _res;
21901 _mark = p->mark;
21902 }
21903 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021904 D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021905 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
21906 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021907 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021908 if (!_seq) {
21909 PyMem_Free(_children);
21910 p->error_indicator = 1;
21911 PyErr_NoMemory();
21912 D(p->level--);
21913 return NULL;
21914 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021915 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021916 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021917 _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021918 D(p->level--);
21919 return _seq;
21920}
21921
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021922// _gather_101: double_starred_kvpair _loop0_102
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021923static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021924_gather_101_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021925{
21926 D(p->level++);
21927 if (p->error_indicator) {
21928 D(p->level--);
21929 return NULL;
21930 }
21931 asdl_seq * _res = NULL;
21932 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021933 { // double_starred_kvpair _loop0_102
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021934 if (p->error_indicator) {
21935 D(p->level--);
21936 return NULL;
21937 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021938 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 +010021939 KeyValuePair* elem;
21940 asdl_seq * seq;
21941 if (
21942 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
21943 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021944 (seq = _loop0_102_rule(p)) // _loop0_102
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021945 )
21946 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021947 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 +010021948 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21949 goto done;
21950 }
21951 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021952 D(fprintf(stderr, "%*c%s _gather_101[%d-%d]: %s failed!\n", p->level, ' ',
21953 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_102"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021954 }
21955 _res = NULL;
21956 done:
21957 D(p->level--);
21958 return _res;
21959}
21960
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021961// _loop1_103: for_if_clause
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021962static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021963_loop1_103_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021964{
21965 D(p->level++);
21966 if (p->error_indicator) {
21967 D(p->level--);
21968 return NULL;
21969 }
21970 void *_res = NULL;
21971 int _mark = p->mark;
21972 int _start_mark = p->mark;
21973 void **_children = PyMem_Malloc(sizeof(void *));
21974 if (!_children) {
21975 p->error_indicator = 1;
21976 PyErr_NoMemory();
21977 D(p->level--);
21978 return NULL;
21979 }
21980 ssize_t _children_capacity = 1;
21981 ssize_t _n = 0;
21982 { // for_if_clause
21983 if (p->error_indicator) {
21984 D(p->level--);
21985 return NULL;
21986 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000021987 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 +010021988 comprehension_ty for_if_clause_var;
21989 while (
21990 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
21991 )
21992 {
21993 _res = for_if_clause_var;
21994 if (_n == _children_capacity) {
21995 _children_capacity *= 2;
21996 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21997 if (!_new_children) {
21998 p->error_indicator = 1;
21999 PyErr_NoMemory();
22000 D(p->level--);
22001 return NULL;
22002 }
22003 _children = _new_children;
22004 }
22005 _children[_n++] = _res;
22006 _mark = p->mark;
22007 }
22008 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022009 D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022010 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
22011 }
22012 if (_n == 0 || p->error_indicator) {
22013 PyMem_Free(_children);
22014 D(p->level--);
22015 return NULL;
22016 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022017 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022018 if (!_seq) {
22019 PyMem_Free(_children);
22020 p->error_indicator = 1;
22021 PyErr_NoMemory();
22022 D(p->level--);
22023 return NULL;
22024 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022025 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022026 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022027 _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022028 D(p->level--);
22029 return _seq;
22030}
22031
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022032// _loop0_104: ('if' disjunction)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022033static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022034_loop0_104_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022035{
22036 D(p->level++);
22037 if (p->error_indicator) {
22038 D(p->level--);
22039 return NULL;
22040 }
22041 void *_res = NULL;
22042 int _mark = p->mark;
22043 int _start_mark = p->mark;
22044 void **_children = PyMem_Malloc(sizeof(void *));
22045 if (!_children) {
22046 p->error_indicator = 1;
22047 PyErr_NoMemory();
22048 D(p->level--);
22049 return NULL;
22050 }
22051 ssize_t _children_capacity = 1;
22052 ssize_t _n = 0;
22053 { // ('if' disjunction)
22054 if (p->error_indicator) {
22055 D(p->level--);
22056 return NULL;
22057 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022058 D(fprintf(stderr, "%*c> _loop0_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020022059 void *_tmp_146_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022060 while (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020022061 (_tmp_146_var = _tmp_146_rule(p)) // 'if' disjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022062 )
22063 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020022064 _res = _tmp_146_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022065 if (_n == _children_capacity) {
22066 _children_capacity *= 2;
22067 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22068 if (!_new_children) {
22069 p->error_indicator = 1;
22070 PyErr_NoMemory();
22071 D(p->level--);
22072 return NULL;
22073 }
22074 _children = _new_children;
22075 }
22076 _children[_n++] = _res;
22077 _mark = p->mark;
22078 }
22079 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022080 D(fprintf(stderr, "%*c%s _loop0_104[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022081 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
22082 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022083 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022084 if (!_seq) {
22085 PyMem_Free(_children);
22086 p->error_indicator = 1;
22087 PyErr_NoMemory();
22088 D(p->level--);
22089 return NULL;
22090 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022091 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022092 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022093 _PyPegen_insert_memo(p, _start_mark, _loop0_104_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022094 D(p->level--);
22095 return _seq;
22096}
22097
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022098// _loop0_105: ('if' disjunction)
22099static asdl_seq *
22100_loop0_105_rule(Parser *p)
22101{
22102 D(p->level++);
22103 if (p->error_indicator) {
22104 D(p->level--);
22105 return NULL;
22106 }
22107 void *_res = NULL;
22108 int _mark = p->mark;
22109 int _start_mark = p->mark;
22110 void **_children = PyMem_Malloc(sizeof(void *));
22111 if (!_children) {
22112 p->error_indicator = 1;
22113 PyErr_NoMemory();
22114 D(p->level--);
22115 return NULL;
22116 }
22117 ssize_t _children_capacity = 1;
22118 ssize_t _n = 0;
22119 { // ('if' disjunction)
22120 if (p->error_indicator) {
22121 D(p->level--);
22122 return NULL;
22123 }
22124 D(fprintf(stderr, "%*c> _loop0_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020022125 void *_tmp_147_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022126 while (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020022127 (_tmp_147_var = _tmp_147_rule(p)) // 'if' disjunction
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022128 )
22129 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020022130 _res = _tmp_147_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022131 if (_n == _children_capacity) {
22132 _children_capacity *= 2;
22133 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22134 if (!_new_children) {
22135 p->error_indicator = 1;
22136 PyErr_NoMemory();
22137 D(p->level--);
22138 return NULL;
22139 }
22140 _children = _new_children;
22141 }
22142 _children[_n++] = _res;
22143 _mark = p->mark;
22144 }
22145 p->mark = _mark;
22146 D(fprintf(stderr, "%*c%s _loop0_105[%d-%d]: %s failed!\n", p->level, ' ',
22147 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
22148 }
22149 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22150 if (!_seq) {
22151 PyMem_Free(_children);
22152 p->error_indicator = 1;
22153 PyErr_NoMemory();
22154 D(p->level--);
22155 return NULL;
22156 }
22157 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22158 PyMem_Free(_children);
22159 _PyPegen_insert_memo(p, _start_mark, _loop0_105_type, _seq);
22160 D(p->level--);
22161 return _seq;
22162}
22163
22164// _loop0_107: ',' (starred_expression | named_expression !'=')
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022165static asdl_seq *
22166_loop0_107_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022167{
22168 D(p->level++);
22169 if (p->error_indicator) {
22170 D(p->level--);
22171 return NULL;
22172 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022173 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022174 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022175 int _start_mark = p->mark;
22176 void **_children = PyMem_Malloc(sizeof(void *));
22177 if (!_children) {
22178 p->error_indicator = 1;
22179 PyErr_NoMemory();
22180 D(p->level--);
22181 return NULL;
22182 }
22183 ssize_t _children_capacity = 1;
22184 ssize_t _n = 0;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022185 { // ',' (starred_expression | named_expression !'=')
22186 if (p->error_indicator) {
22187 D(p->level--);
22188 return NULL;
22189 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022190 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 +010022191 Token * _literal;
22192 void *elem;
22193 while (
22194 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22195 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020022196 (elem = _tmp_148_rule(p)) // starred_expression | named_expression !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010022197 )
22198 {
22199 _res = elem;
22200 if (_res == NULL && PyErr_Occurred()) {
22201 p->error_indicator = 1;
22202 PyMem_Free(_children);
22203 D(p->level--);
22204 return NULL;
22205 }
22206 if (_n == _children_capacity) {
22207 _children_capacity *= 2;
22208 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22209 if (!_new_children) {
22210 p->error_indicator = 1;
22211 PyErr_NoMemory();
22212 D(p->level--);
22213 return NULL;
22214 }
22215 _children = _new_children;
22216 }
22217 _children[_n++] = _res;
22218 _mark = p->mark;
22219 }
22220 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022221 D(fprintf(stderr, "%*c%s _loop0_107[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010022222 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | named_expression !'=')"));
22223 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022224 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022225 if (!_seq) {
22226 PyMem_Free(_children);
22227 p->error_indicator = 1;
22228 PyErr_NoMemory();
22229 D(p->level--);
22230 return NULL;
22231 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022232 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022233 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022234 _PyPegen_insert_memo(p, _start_mark, _loop0_107_type, _seq);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022235 D(p->level--);
22236 return _seq;
22237}
22238
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022239// _gather_106: (starred_expression | named_expression !'=') _loop0_107
Pablo Galindo4a97b152020-09-02 17:44:19 +010022240static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022241_gather_106_rule(Parser *p)
Pablo Galindo4a97b152020-09-02 17:44:19 +010022242{
22243 D(p->level++);
22244 if (p->error_indicator) {
22245 D(p->level--);
22246 return NULL;
22247 }
22248 asdl_seq * _res = NULL;
22249 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022250 { // (starred_expression | named_expression !'=') _loop0_107
Pablo Galindo4a97b152020-09-02 17:44:19 +010022251 if (p->error_indicator) {
22252 D(p->level--);
22253 return NULL;
22254 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022255 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 +010022256 void *elem;
22257 asdl_seq * seq;
22258 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020022259 (elem = _tmp_148_rule(p)) // starred_expression | named_expression !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010022260 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022261 (seq = _loop0_107_rule(p)) // _loop0_107
Pablo Galindo4a97b152020-09-02 17:44:19 +010022262 )
22263 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022264 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 +010022265 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22266 goto done;
22267 }
22268 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022269 D(fprintf(stderr, "%*c%s _gather_106[%d-%d]: %s failed!\n", p->level, ' ',
22270 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_107"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010022271 }
22272 _res = NULL;
22273 done:
22274 D(p->level--);
22275 return _res;
22276}
22277
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022278// _tmp_108: ',' kwargs
Pablo Galindo4a97b152020-09-02 17:44:19 +010022279static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022280_tmp_108_rule(Parser *p)
Pablo Galindo4a97b152020-09-02 17:44:19 +010022281{
22282 D(p->level++);
22283 if (p->error_indicator) {
22284 D(p->level--);
22285 return NULL;
22286 }
22287 void * _res = NULL;
22288 int _mark = p->mark;
22289 { // ',' kwargs
22290 if (p->error_indicator) {
22291 D(p->level--);
22292 return NULL;
22293 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022294 D(fprintf(stderr, "%*c> _tmp_108[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010022295 Token * _literal;
22296 asdl_seq* k;
22297 if (
22298 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22299 &&
22300 (k = kwargs_rule(p)) // kwargs
22301 )
22302 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022303 D(fprintf(stderr, "%*c+ _tmp_108[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010022304 _res = k;
22305 if (_res == NULL && PyErr_Occurred()) {
22306 p->error_indicator = 1;
22307 D(p->level--);
22308 return NULL;
22309 }
22310 goto done;
22311 }
22312 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022313 D(fprintf(stderr, "%*c%s _tmp_108[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010022314 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
22315 }
22316 _res = NULL;
22317 done:
22318 D(p->level--);
22319 return _res;
22320}
22321
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022322// _loop0_110: ',' kwarg_or_starred
Pablo Galindo4a97b152020-09-02 17:44:19 +010022323static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022324_loop0_110_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022325{
22326 D(p->level++);
22327 if (p->error_indicator) {
22328 D(p->level--);
22329 return NULL;
22330 }
22331 void *_res = NULL;
22332 int _mark = p->mark;
22333 int _start_mark = p->mark;
22334 void **_children = PyMem_Malloc(sizeof(void *));
22335 if (!_children) {
22336 p->error_indicator = 1;
22337 PyErr_NoMemory();
22338 D(p->level--);
22339 return NULL;
22340 }
22341 ssize_t _children_capacity = 1;
22342 ssize_t _n = 0;
22343 { // ',' kwarg_or_starred
22344 if (p->error_indicator) {
22345 D(p->level--);
22346 return NULL;
22347 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022348 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 +010022349 Token * _literal;
22350 KeywordOrStarred* elem;
22351 while (
22352 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22353 &&
22354 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
22355 )
22356 {
22357 _res = elem;
22358 if (_res == NULL && PyErr_Occurred()) {
22359 p->error_indicator = 1;
22360 PyMem_Free(_children);
22361 D(p->level--);
22362 return NULL;
22363 }
22364 if (_n == _children_capacity) {
22365 _children_capacity *= 2;
22366 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22367 if (!_new_children) {
22368 p->error_indicator = 1;
22369 PyErr_NoMemory();
22370 D(p->level--);
22371 return NULL;
22372 }
22373 _children = _new_children;
22374 }
22375 _children[_n++] = _res;
22376 _mark = p->mark;
22377 }
22378 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022379 D(fprintf(stderr, "%*c%s _loop0_110[%d-%d]: %s failed!\n", p->level, ' ',
22380 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
22381 }
22382 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
22383 if (!_seq) {
22384 PyMem_Free(_children);
22385 p->error_indicator = 1;
22386 PyErr_NoMemory();
22387 D(p->level--);
22388 return NULL;
22389 }
22390 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
22391 PyMem_Free(_children);
22392 _PyPegen_insert_memo(p, _start_mark, _loop0_110_type, _seq);
22393 D(p->level--);
22394 return _seq;
22395}
22396
22397// _gather_109: kwarg_or_starred _loop0_110
22398static asdl_seq *
22399_gather_109_rule(Parser *p)
22400{
22401 D(p->level++);
22402 if (p->error_indicator) {
22403 D(p->level--);
22404 return NULL;
22405 }
22406 asdl_seq * _res = NULL;
22407 int _mark = p->mark;
22408 { // kwarg_or_starred _loop0_110
22409 if (p->error_indicator) {
22410 D(p->level--);
22411 return NULL;
22412 }
22413 D(fprintf(stderr, "%*c> _gather_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_110"));
22414 KeywordOrStarred* elem;
22415 asdl_seq * seq;
22416 if (
22417 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
22418 &&
22419 (seq = _loop0_110_rule(p)) // _loop0_110
22420 )
22421 {
22422 D(fprintf(stderr, "%*c+ _gather_109[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_110"));
22423 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22424 goto done;
22425 }
22426 p->mark = _mark;
22427 D(fprintf(stderr, "%*c%s _gather_109[%d-%d]: %s failed!\n", p->level, ' ',
22428 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_110"));
22429 }
22430 _res = NULL;
22431 done:
22432 D(p->level--);
22433 return _res;
22434}
22435
22436// _loop0_112: ',' kwarg_or_double_starred
22437static asdl_seq *
22438_loop0_112_rule(Parser *p)
22439{
22440 D(p->level++);
22441 if (p->error_indicator) {
22442 D(p->level--);
22443 return NULL;
22444 }
22445 void *_res = NULL;
22446 int _mark = p->mark;
22447 int _start_mark = p->mark;
22448 void **_children = PyMem_Malloc(sizeof(void *));
22449 if (!_children) {
22450 p->error_indicator = 1;
22451 PyErr_NoMemory();
22452 D(p->level--);
22453 return NULL;
22454 }
22455 ssize_t _children_capacity = 1;
22456 ssize_t _n = 0;
22457 { // ',' kwarg_or_double_starred
22458 if (p->error_indicator) {
22459 D(p->level--);
22460 return NULL;
22461 }
22462 D(fprintf(stderr, "%*c> _loop0_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
22463 Token * _literal;
22464 KeywordOrStarred* elem;
22465 while (
22466 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22467 &&
22468 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
22469 )
22470 {
22471 _res = elem;
22472 if (_res == NULL && PyErr_Occurred()) {
22473 p->error_indicator = 1;
22474 PyMem_Free(_children);
22475 D(p->level--);
22476 return NULL;
22477 }
22478 if (_n == _children_capacity) {
22479 _children_capacity *= 2;
22480 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22481 if (!_new_children) {
22482 p->error_indicator = 1;
22483 PyErr_NoMemory();
22484 D(p->level--);
22485 return NULL;
22486 }
22487 _children = _new_children;
22488 }
22489 _children[_n++] = _res;
22490 _mark = p->mark;
22491 }
22492 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022493 D(fprintf(stderr, "%*c%s _loop0_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022494 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022495 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022496 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022497 if (!_seq) {
22498 PyMem_Free(_children);
22499 p->error_indicator = 1;
22500 PyErr_NoMemory();
22501 D(p->level--);
22502 return NULL;
22503 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022504 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022505 PyMem_Free(_children);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022506 _PyPegen_insert_memo(p, _start_mark, _loop0_112_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022507 D(p->level--);
22508 return _seq;
22509}
22510
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022511// _gather_111: kwarg_or_double_starred _loop0_112
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022512static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010022513_gather_111_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022514{
22515 D(p->level++);
22516 if (p->error_indicator) {
22517 D(p->level--);
22518 return NULL;
22519 }
22520 asdl_seq * _res = NULL;
22521 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022522 { // kwarg_or_double_starred _loop0_112
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022523 if (p->error_indicator) {
22524 D(p->level--);
22525 return NULL;
22526 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022527 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 +010022528 KeywordOrStarred* elem;
22529 asdl_seq * seq;
22530 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022531 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022532 &&
Pablo Galindo4a97b152020-09-02 17:44:19 +010022533 (seq = _loop0_112_rule(p)) // _loop0_112
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022534 )
22535 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022536 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 +010022537 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22538 goto done;
22539 }
22540 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022541 D(fprintf(stderr, "%*c%s _gather_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022542 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_112"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022543 }
22544 _res = NULL;
22545 done:
22546 D(p->level--);
22547 return _res;
22548}
22549
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022550// _loop0_114: ',' kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022551static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010022552_loop0_114_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022553{
22554 D(p->level++);
22555 if (p->error_indicator) {
22556 D(p->level--);
22557 return NULL;
22558 }
22559 void *_res = NULL;
22560 int _mark = p->mark;
22561 int _start_mark = p->mark;
22562 void **_children = PyMem_Malloc(sizeof(void *));
22563 if (!_children) {
22564 p->error_indicator = 1;
22565 PyErr_NoMemory();
22566 D(p->level--);
22567 return NULL;
22568 }
22569 ssize_t _children_capacity = 1;
22570 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022571 { // ',' kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022572 if (p->error_indicator) {
22573 D(p->level--);
22574 return NULL;
22575 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022576 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 +010022577 Token * _literal;
22578 KeywordOrStarred* elem;
22579 while (
22580 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22581 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022582 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022583 )
22584 {
22585 _res = elem;
22586 if (_res == NULL && PyErr_Occurred()) {
22587 p->error_indicator = 1;
22588 PyMem_Free(_children);
22589 D(p->level--);
22590 return NULL;
22591 }
22592 if (_n == _children_capacity) {
22593 _children_capacity *= 2;
22594 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22595 if (!_new_children) {
22596 p->error_indicator = 1;
22597 PyErr_NoMemory();
22598 D(p->level--);
22599 return NULL;
22600 }
22601 _children = _new_children;
22602 }
22603 _children[_n++] = _res;
22604 _mark = p->mark;
22605 }
22606 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022607 D(fprintf(stderr, "%*c%s _loop0_114[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022608 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022609 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022610 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022611 if (!_seq) {
22612 PyMem_Free(_children);
22613 p->error_indicator = 1;
22614 PyErr_NoMemory();
22615 D(p->level--);
22616 return NULL;
22617 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022618 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022619 PyMem_Free(_children);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022620 _PyPegen_insert_memo(p, _start_mark, _loop0_114_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022621 D(p->level--);
22622 return _seq;
22623}
22624
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022625// _gather_113: kwarg_or_starred _loop0_114
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022626static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010022627_gather_113_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022628{
22629 D(p->level++);
22630 if (p->error_indicator) {
22631 D(p->level--);
22632 return NULL;
22633 }
22634 asdl_seq * _res = NULL;
22635 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022636 { // kwarg_or_starred _loop0_114
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022637 if (p->error_indicator) {
22638 D(p->level--);
22639 return NULL;
22640 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022641 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 +010022642 KeywordOrStarred* elem;
22643 asdl_seq * seq;
22644 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022645 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022646 &&
Pablo Galindo4a97b152020-09-02 17:44:19 +010022647 (seq = _loop0_114_rule(p)) // _loop0_114
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022648 )
22649 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022650 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 +010022651 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22652 goto done;
22653 }
22654 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022655 D(fprintf(stderr, "%*c%s _gather_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022656 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_114"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022657 }
22658 _res = NULL;
22659 done:
22660 D(p->level--);
22661 return _res;
22662}
22663
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022664// _loop0_116: ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022665static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010022666_loop0_116_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022667{
22668 D(p->level++);
22669 if (p->error_indicator) {
22670 D(p->level--);
22671 return NULL;
22672 }
22673 void *_res = NULL;
22674 int _mark = p->mark;
22675 int _start_mark = p->mark;
22676 void **_children = PyMem_Malloc(sizeof(void *));
22677 if (!_children) {
22678 p->error_indicator = 1;
22679 PyErr_NoMemory();
22680 D(p->level--);
22681 return NULL;
22682 }
22683 ssize_t _children_capacity = 1;
22684 ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022685 { // ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022686 if (p->error_indicator) {
22687 D(p->level--);
22688 return NULL;
22689 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022690 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 +010022691 Token * _literal;
22692 KeywordOrStarred* elem;
22693 while (
22694 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22695 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022696 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022697 )
22698 {
22699 _res = elem;
22700 if (_res == NULL && PyErr_Occurred()) {
22701 p->error_indicator = 1;
22702 PyMem_Free(_children);
22703 D(p->level--);
22704 return NULL;
22705 }
22706 if (_n == _children_capacity) {
22707 _children_capacity *= 2;
22708 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22709 if (!_new_children) {
22710 p->error_indicator = 1;
22711 PyErr_NoMemory();
22712 D(p->level--);
22713 return NULL;
22714 }
22715 _children = _new_children;
22716 }
22717 _children[_n++] = _res;
22718 _mark = p->mark;
22719 }
22720 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022721 D(fprintf(stderr, "%*c%s _loop0_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022722 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022723 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022724 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022725 if (!_seq) {
22726 PyMem_Free(_children);
22727 p->error_indicator = 1;
22728 PyErr_NoMemory();
22729 D(p->level--);
22730 return NULL;
22731 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022732 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022733 PyMem_Free(_children);
Pablo Galindo4a97b152020-09-02 17:44:19 +010022734 _PyPegen_insert_memo(p, _start_mark, _loop0_116_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022735 D(p->level--);
22736 return _seq;
22737}
22738
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022739// _gather_115: kwarg_or_double_starred _loop0_116
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022740static asdl_seq *
Pablo Galindo4a97b152020-09-02 17:44:19 +010022741_gather_115_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022742{
22743 D(p->level++);
22744 if (p->error_indicator) {
22745 D(p->level--);
22746 return NULL;
22747 }
22748 asdl_seq * _res = NULL;
22749 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022750 { // kwarg_or_double_starred _loop0_116
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022751 if (p->error_indicator) {
22752 D(p->level--);
22753 return NULL;
22754 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022755 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 +010022756 KeywordOrStarred* elem;
22757 asdl_seq * seq;
22758 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022759 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022760 &&
Pablo Galindo4a97b152020-09-02 17:44:19 +010022761 (seq = _loop0_116_rule(p)) // _loop0_116
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022762 )
22763 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022764 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 +010022765 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22766 goto done;
22767 }
22768 p->mark = _mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010022769 D(fprintf(stderr, "%*c%s _gather_115[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022770 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_116"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022771 }
22772 _res = NULL;
22773 done:
22774 D(p->level--);
22775 return _res;
22776}
22777
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022778// _loop0_117: (',' star_target)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022779static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022780_loop0_117_rule(Parser *p)
Pablo Galindo4a97b152020-09-02 17:44:19 +010022781{
22782 D(p->level++);
22783 if (p->error_indicator) {
22784 D(p->level--);
22785 return NULL;
22786 }
22787 void *_res = NULL;
22788 int _mark = p->mark;
22789 int _start_mark = p->mark;
22790 void **_children = PyMem_Malloc(sizeof(void *));
22791 if (!_children) {
22792 p->error_indicator = 1;
22793 PyErr_NoMemory();
22794 D(p->level--);
22795 return NULL;
22796 }
22797 ssize_t _children_capacity = 1;
22798 ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022799 { // (',' star_target)
22800 if (p->error_indicator) {
22801 D(p->level--);
22802 return NULL;
22803 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022804 D(fprintf(stderr, "%*c> _loop0_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020022805 void *_tmp_149_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022806 while (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020022807 (_tmp_149_var = _tmp_149_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022808 )
22809 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020022810 _res = _tmp_149_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022811 if (_n == _children_capacity) {
22812 _children_capacity *= 2;
22813 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22814 if (!_new_children) {
22815 p->error_indicator = 1;
22816 PyErr_NoMemory();
22817 D(p->level--);
22818 return NULL;
22819 }
22820 _children = _new_children;
22821 }
22822 _children[_n++] = _res;
22823 _mark = p->mark;
22824 }
22825 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022826 D(fprintf(stderr, "%*c%s _loop0_117[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022827 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
22828 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022829 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022830 if (!_seq) {
22831 PyMem_Free(_children);
22832 p->error_indicator = 1;
22833 PyErr_NoMemory();
22834 D(p->level--);
22835 return NULL;
22836 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022837 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022838 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022839 _PyPegen_insert_memo(p, _start_mark, _loop0_117_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022840 D(p->level--);
22841 return _seq;
22842}
22843
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022844// _loop0_119: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022845static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022846_loop0_119_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022847{
22848 D(p->level++);
22849 if (p->error_indicator) {
22850 D(p->level--);
22851 return NULL;
22852 }
22853 void *_res = NULL;
22854 int _mark = p->mark;
22855 int _start_mark = p->mark;
22856 void **_children = PyMem_Malloc(sizeof(void *));
22857 if (!_children) {
22858 p->error_indicator = 1;
22859 PyErr_NoMemory();
22860 D(p->level--);
22861 return NULL;
22862 }
22863 ssize_t _children_capacity = 1;
22864 ssize_t _n = 0;
22865 { // ',' star_target
22866 if (p->error_indicator) {
22867 D(p->level--);
22868 return NULL;
22869 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022870 D(fprintf(stderr, "%*c> _loop0_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022871 Token * _literal;
22872 expr_ty elem;
22873 while (
22874 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22875 &&
22876 (elem = star_target_rule(p)) // star_target
22877 )
22878 {
22879 _res = elem;
22880 if (_res == NULL && PyErr_Occurred()) {
22881 p->error_indicator = 1;
22882 PyMem_Free(_children);
22883 D(p->level--);
22884 return NULL;
22885 }
22886 if (_n == _children_capacity) {
22887 _children_capacity *= 2;
22888 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22889 if (!_new_children) {
22890 p->error_indicator = 1;
22891 PyErr_NoMemory();
22892 D(p->level--);
22893 return NULL;
22894 }
22895 _children = _new_children;
22896 }
22897 _children[_n++] = _res;
22898 _mark = p->mark;
22899 }
22900 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022901 D(fprintf(stderr, "%*c%s _loop0_119[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022902 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
22903 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022904 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022905 if (!_seq) {
22906 PyMem_Free(_children);
22907 p->error_indicator = 1;
22908 PyErr_NoMemory();
22909 D(p->level--);
22910 return NULL;
22911 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022912 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022913 PyMem_Free(_children);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022914 _PyPegen_insert_memo(p, _start_mark, _loop0_119_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022915 D(p->level--);
22916 return _seq;
22917}
22918
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022919// _gather_118: star_target _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022920static asdl_seq *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022921_gather_118_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022922{
22923 D(p->level++);
22924 if (p->error_indicator) {
22925 D(p->level--);
22926 return NULL;
22927 }
22928 asdl_seq * _res = NULL;
22929 int _mark = p->mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022930 { // star_target _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022931 if (p->error_indicator) {
22932 D(p->level--);
22933 return NULL;
22934 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022935 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 +010022936 expr_ty elem;
22937 asdl_seq * seq;
22938 if (
22939 (elem = star_target_rule(p)) // star_target
22940 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022941 (seq = _loop0_119_rule(p)) // _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022942 )
22943 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022944 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 +010022945 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22946 goto done;
22947 }
22948 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000022949 D(fprintf(stderr, "%*c%s _gather_118[%d-%d]: %s failed!\n", p->level, ' ',
22950 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_119"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022951 }
22952 _res = NULL;
22953 done:
22954 D(p->level--);
22955 return _res;
22956}
22957
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020022958// _loop1_120: (',' star_target)
22959static asdl_seq *
22960_loop1_120_rule(Parser *p)
22961{
22962 D(p->level++);
22963 if (p->error_indicator) {
22964 D(p->level--);
22965 return NULL;
22966 }
22967 void *_res = NULL;
22968 int _mark = p->mark;
22969 int _start_mark = p->mark;
22970 void **_children = PyMem_Malloc(sizeof(void *));
22971 if (!_children) {
22972 p->error_indicator = 1;
22973 PyErr_NoMemory();
22974 D(p->level--);
22975 return NULL;
22976 }
22977 ssize_t _children_capacity = 1;
22978 ssize_t _n = 0;
22979 { // (',' star_target)
22980 if (p->error_indicator) {
22981 D(p->level--);
22982 return NULL;
22983 }
22984 D(fprintf(stderr, "%*c> _loop1_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
22985 void *_tmp_150_var;
22986 while (
22987 (_tmp_150_var = _tmp_150_rule(p)) // ',' star_target
22988 )
22989 {
22990 _res = _tmp_150_var;
22991 if (_n == _children_capacity) {
22992 _children_capacity *= 2;
22993 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22994 if (!_new_children) {
22995 p->error_indicator = 1;
22996 PyErr_NoMemory();
22997 D(p->level--);
22998 return NULL;
22999 }
23000 _children = _new_children;
23001 }
23002 _children[_n++] = _res;
23003 _mark = p->mark;
23004 }
23005 p->mark = _mark;
23006 D(fprintf(stderr, "%*c%s _loop1_120[%d-%d]: %s failed!\n", p->level, ' ',
23007 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
23008 }
23009 if (_n == 0 || p->error_indicator) {
23010 PyMem_Free(_children);
23011 D(p->level--);
23012 return NULL;
23013 }
23014 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23015 if (!_seq) {
23016 PyMem_Free(_children);
23017 p->error_indicator = 1;
23018 PyErr_NoMemory();
23019 D(p->level--);
23020 return NULL;
23021 }
23022 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23023 PyMem_Free(_children);
23024 _PyPegen_insert_memo(p, _start_mark, _loop1_120_type, _seq);
23025 D(p->level--);
23026 return _seq;
23027}
23028
23029// _tmp_121: !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023030static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023031_tmp_121_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023032{
23033 D(p->level++);
23034 if (p->error_indicator) {
23035 D(p->level--);
23036 return NULL;
23037 }
23038 void * _res = NULL;
23039 int _mark = p->mark;
23040 { // !'*' star_target
23041 if (p->error_indicator) {
23042 D(p->level--);
23043 return NULL;
23044 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023045 D(fprintf(stderr, "%*c> _tmp_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023046 expr_ty star_target_var;
23047 if (
23048 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
23049 &&
23050 (star_target_var = star_target_rule(p)) // star_target
23051 )
23052 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023053 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 +010023054 _res = star_target_var;
23055 goto done;
23056 }
23057 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023058 D(fprintf(stderr, "%*c%s _tmp_121[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023059 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
23060 }
23061 _res = NULL;
23062 done:
23063 D(p->level--);
23064 return _res;
23065}
23066
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023067// _loop0_123: ',' del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023068static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023069_loop0_123_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023070{
23071 D(p->level++);
23072 if (p->error_indicator) {
23073 D(p->level--);
23074 return NULL;
23075 }
23076 void *_res = NULL;
23077 int _mark = p->mark;
23078 int _start_mark = p->mark;
23079 void **_children = PyMem_Malloc(sizeof(void *));
23080 if (!_children) {
23081 p->error_indicator = 1;
23082 PyErr_NoMemory();
23083 D(p->level--);
23084 return NULL;
23085 }
23086 ssize_t _children_capacity = 1;
23087 ssize_t _n = 0;
23088 { // ',' del_target
23089 if (p->error_indicator) {
23090 D(p->level--);
23091 return NULL;
23092 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023093 D(fprintf(stderr, "%*c> _loop0_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023094 Token * _literal;
23095 expr_ty elem;
23096 while (
23097 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23098 &&
23099 (elem = del_target_rule(p)) // del_target
23100 )
23101 {
23102 _res = elem;
23103 if (_res == NULL && PyErr_Occurred()) {
23104 p->error_indicator = 1;
23105 PyMem_Free(_children);
23106 D(p->level--);
23107 return NULL;
23108 }
23109 if (_n == _children_capacity) {
23110 _children_capacity *= 2;
23111 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23112 if (!_new_children) {
23113 p->error_indicator = 1;
23114 PyErr_NoMemory();
23115 D(p->level--);
23116 return NULL;
23117 }
23118 _children = _new_children;
23119 }
23120 _children[_n++] = _res;
23121 _mark = p->mark;
23122 }
23123 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023124 D(fprintf(stderr, "%*c%s _loop0_123[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023125 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
23126 }
23127 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23128 if (!_seq) {
23129 PyMem_Free(_children);
23130 p->error_indicator = 1;
23131 PyErr_NoMemory();
23132 D(p->level--);
23133 return NULL;
23134 }
23135 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23136 PyMem_Free(_children);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023137 _PyPegen_insert_memo(p, _start_mark, _loop0_123_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023138 D(p->level--);
23139 return _seq;
23140}
23141
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023142// _gather_122: del_target _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023143static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023144_gather_122_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023145{
23146 D(p->level++);
23147 if (p->error_indicator) {
23148 D(p->level--);
23149 return NULL;
23150 }
23151 asdl_seq * _res = NULL;
23152 int _mark = p->mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023153 { // del_target _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023154 if (p->error_indicator) {
23155 D(p->level--);
23156 return NULL;
23157 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023158 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 +000023159 expr_ty elem;
23160 asdl_seq * seq;
23161 if (
23162 (elem = del_target_rule(p)) // del_target
23163 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023164 (seq = _loop0_123_rule(p)) // _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023165 )
23166 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023167 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 +000023168 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23169 goto done;
23170 }
23171 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023172 D(fprintf(stderr, "%*c%s _gather_122[%d-%d]: %s failed!\n", p->level, ' ',
23173 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_123"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023174 }
23175 _res = NULL;
23176 done:
23177 D(p->level--);
23178 return _res;
23179}
23180
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023181// _loop0_125: ',' target
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023182static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023183_loop0_125_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023184{
23185 D(p->level++);
23186 if (p->error_indicator) {
23187 D(p->level--);
23188 return NULL;
23189 }
23190 void *_res = NULL;
23191 int _mark = p->mark;
23192 int _start_mark = p->mark;
23193 void **_children = PyMem_Malloc(sizeof(void *));
23194 if (!_children) {
23195 p->error_indicator = 1;
23196 PyErr_NoMemory();
23197 D(p->level--);
23198 return NULL;
23199 }
23200 ssize_t _children_capacity = 1;
23201 ssize_t _n = 0;
23202 { // ',' target
23203 if (p->error_indicator) {
23204 D(p->level--);
23205 return NULL;
23206 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023207 D(fprintf(stderr, "%*c> _loop0_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' target"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023208 Token * _literal;
23209 expr_ty elem;
23210 while (
23211 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23212 &&
23213 (elem = target_rule(p)) // target
23214 )
23215 {
23216 _res = elem;
23217 if (_res == NULL && PyErr_Occurred()) {
23218 p->error_indicator = 1;
23219 PyMem_Free(_children);
23220 D(p->level--);
23221 return NULL;
23222 }
23223 if (_n == _children_capacity) {
23224 _children_capacity *= 2;
23225 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23226 if (!_new_children) {
23227 p->error_indicator = 1;
23228 PyErr_NoMemory();
23229 D(p->level--);
23230 return NULL;
23231 }
23232 _children = _new_children;
23233 }
23234 _children[_n++] = _res;
23235 _mark = p->mark;
23236 }
23237 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023238 D(fprintf(stderr, "%*c%s _loop0_125[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023239 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023240 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023241 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023242 if (!_seq) {
23243 PyMem_Free(_children);
23244 p->error_indicator = 1;
23245 PyErr_NoMemory();
23246 D(p->level--);
23247 return NULL;
23248 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023249 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023250 PyMem_Free(_children);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023251 _PyPegen_insert_memo(p, _start_mark, _loop0_125_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023252 D(p->level--);
23253 return _seq;
23254}
23255
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023256// _gather_124: target _loop0_125
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023257static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023258_gather_124_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023259{
23260 D(p->level++);
23261 if (p->error_indicator) {
23262 D(p->level--);
23263 return NULL;
23264 }
23265 asdl_seq * _res = NULL;
23266 int _mark = p->mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023267 { // target _loop0_125
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023268 if (p->error_indicator) {
23269 D(p->level--);
23270 return NULL;
23271 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023272 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 +010023273 expr_ty elem;
23274 asdl_seq * seq;
23275 if (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023276 (elem = target_rule(p)) // target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023277 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023278 (seq = _loop0_125_rule(p)) // _loop0_125
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023279 )
23280 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023281 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 +010023282 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23283 goto done;
23284 }
23285 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023286 D(fprintf(stderr, "%*c%s _gather_124[%d-%d]: %s failed!\n", p->level, ' ',
23287 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target _loop0_125"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023288 }
23289 _res = NULL;
23290 done:
23291 D(p->level--);
23292 return _res;
23293}
23294
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023295// _tmp_126: args | expression for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023296static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023297_tmp_126_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023298{
23299 D(p->level++);
23300 if (p->error_indicator) {
23301 D(p->level--);
23302 return NULL;
23303 }
23304 void * _res = NULL;
23305 int _mark = p->mark;
23306 { // args
23307 if (p->error_indicator) {
23308 D(p->level--);
23309 return NULL;
23310 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023311 D(fprintf(stderr, "%*c> _tmp_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023312 expr_ty args_var;
23313 if (
23314 (args_var = args_rule(p)) // args
23315 )
23316 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023317 D(fprintf(stderr, "%*c+ _tmp_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023318 _res = args_var;
23319 goto done;
23320 }
23321 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023322 D(fprintf(stderr, "%*c%s _tmp_126[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023323 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
23324 }
23325 { // expression for_if_clauses
23326 if (p->error_indicator) {
23327 D(p->level--);
23328 return NULL;
23329 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023330 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 +010023331 expr_ty expression_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010023332 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023333 if (
23334 (expression_var = expression_rule(p)) // expression
23335 &&
23336 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
23337 )
23338 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023339 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 +010023340 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
23341 goto done;
23342 }
23343 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023344 D(fprintf(stderr, "%*c%s _tmp_126[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023345 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
23346 }
23347 _res = NULL;
23348 done:
23349 D(p->level--);
23350 return _res;
23351}
23352
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023353// _loop0_127: star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023354static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023355_loop0_127_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023356{
23357 D(p->level++);
23358 if (p->error_indicator) {
23359 D(p->level--);
23360 return NULL;
23361 }
23362 void *_res = NULL;
23363 int _mark = p->mark;
23364 int _start_mark = p->mark;
23365 void **_children = PyMem_Malloc(sizeof(void *));
23366 if (!_children) {
23367 p->error_indicator = 1;
23368 PyErr_NoMemory();
23369 D(p->level--);
23370 return NULL;
23371 }
23372 ssize_t _children_capacity = 1;
23373 ssize_t _n = 0;
23374 { // star_named_expressions
23375 if (p->error_indicator) {
23376 D(p->level--);
23377 return NULL;
23378 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023379 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 +010023380 asdl_expr_seq* star_named_expressions_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023381 while (
23382 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
23383 )
23384 {
23385 _res = star_named_expressions_var;
23386 if (_n == _children_capacity) {
23387 _children_capacity *= 2;
23388 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23389 if (!_new_children) {
23390 p->error_indicator = 1;
23391 PyErr_NoMemory();
23392 D(p->level--);
23393 return NULL;
23394 }
23395 _children = _new_children;
23396 }
23397 _children[_n++] = _res;
23398 _mark = p->mark;
23399 }
23400 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023401 D(fprintf(stderr, "%*c%s _loop0_127[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023402 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023403 }
23404 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23405 if (!_seq) {
23406 PyMem_Free(_children);
23407 p->error_indicator = 1;
23408 PyErr_NoMemory();
23409 D(p->level--);
23410 return NULL;
23411 }
23412 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23413 PyMem_Free(_children);
23414 _PyPegen_insert_memo(p, _start_mark, _loop0_127_type, _seq);
23415 D(p->level--);
23416 return _seq;
23417}
23418
23419// _loop0_128: (star_targets '=')
23420static asdl_seq *
23421_loop0_128_rule(Parser *p)
23422{
23423 D(p->level++);
23424 if (p->error_indicator) {
23425 D(p->level--);
23426 return NULL;
23427 }
23428 void *_res = NULL;
23429 int _mark = p->mark;
23430 int _start_mark = p->mark;
23431 void **_children = PyMem_Malloc(sizeof(void *));
23432 if (!_children) {
23433 p->error_indicator = 1;
23434 PyErr_NoMemory();
23435 D(p->level--);
23436 return NULL;
23437 }
23438 ssize_t _children_capacity = 1;
23439 ssize_t _n = 0;
23440 { // (star_targets '=')
23441 if (p->error_indicator) {
23442 D(p->level--);
23443 return NULL;
23444 }
23445 D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023446 void *_tmp_151_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023447 while (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023448 (_tmp_151_var = _tmp_151_rule(p)) // star_targets '='
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023449 )
23450 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023451 _res = _tmp_151_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000023452 if (_n == _children_capacity) {
23453 _children_capacity *= 2;
23454 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23455 if (!_new_children) {
23456 p->error_indicator = 1;
23457 PyErr_NoMemory();
23458 D(p->level--);
23459 return NULL;
23460 }
23461 _children = _new_children;
23462 }
23463 _children[_n++] = _res;
23464 _mark = p->mark;
23465 }
23466 p->mark = _mark;
23467 D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ',
23468 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
23469 }
23470 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23471 if (!_seq) {
23472 PyMem_Free(_children);
23473 p->error_indicator = 1;
23474 PyErr_NoMemory();
23475 D(p->level--);
23476 return NULL;
23477 }
23478 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23479 PyMem_Free(_children);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030023480 _PyPegen_insert_memo(p, _start_mark, _loop0_128_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023481 D(p->level--);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030023482 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023483}
23484
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023485// _loop0_129: (star_targets '=')
23486static asdl_seq *
23487_loop0_129_rule(Parser *p)
23488{
23489 D(p->level++);
23490 if (p->error_indicator) {
23491 D(p->level--);
23492 return NULL;
23493 }
23494 void *_res = NULL;
23495 int _mark = p->mark;
23496 int _start_mark = p->mark;
23497 void **_children = PyMem_Malloc(sizeof(void *));
23498 if (!_children) {
23499 p->error_indicator = 1;
23500 PyErr_NoMemory();
23501 D(p->level--);
23502 return NULL;
23503 }
23504 ssize_t _children_capacity = 1;
23505 ssize_t _n = 0;
23506 { // (star_targets '=')
23507 if (p->error_indicator) {
23508 D(p->level--);
23509 return NULL;
23510 }
23511 D(fprintf(stderr, "%*c> _loop0_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
23512 void *_tmp_152_var;
23513 while (
23514 (_tmp_152_var = _tmp_152_rule(p)) // star_targets '='
23515 )
23516 {
23517 _res = _tmp_152_var;
23518 if (_n == _children_capacity) {
23519 _children_capacity *= 2;
23520 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23521 if (!_new_children) {
23522 p->error_indicator = 1;
23523 PyErr_NoMemory();
23524 D(p->level--);
23525 return NULL;
23526 }
23527 _children = _new_children;
23528 }
23529 _children[_n++] = _res;
23530 _mark = p->mark;
23531 }
23532 p->mark = _mark;
23533 D(fprintf(stderr, "%*c%s _loop0_129[%d-%d]: %s failed!\n", p->level, ' ',
23534 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
23535 }
23536 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23537 if (!_seq) {
23538 PyMem_Free(_children);
23539 p->error_indicator = 1;
23540 PyErr_NoMemory();
23541 D(p->level--);
23542 return NULL;
23543 }
23544 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23545 PyMem_Free(_children);
23546 _PyPegen_insert_memo(p, _start_mark, _loop0_129_type, _seq);
23547 D(p->level--);
23548 return _seq;
23549}
23550
23551// _tmp_130: yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023552static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023553_tmp_130_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023554{
23555 D(p->level++);
23556 if (p->error_indicator) {
23557 D(p->level--);
23558 return NULL;
23559 }
23560 void * _res = NULL;
23561 int _mark = p->mark;
23562 { // yield_expr
23563 if (p->error_indicator) {
23564 D(p->level--);
23565 return NULL;
23566 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023567 D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023568 expr_ty yield_expr_var;
23569 if (
23570 (yield_expr_var = yield_expr_rule(p)) // yield_expr
23571 )
23572 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023573 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 +010023574 _res = yield_expr_var;
23575 goto done;
23576 }
23577 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023578 D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023579 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
23580 }
23581 { // star_expressions
23582 if (p->error_indicator) {
23583 D(p->level--);
23584 return NULL;
23585 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023586 D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023587 expr_ty star_expressions_var;
23588 if (
23589 (star_expressions_var = star_expressions_rule(p)) // star_expressions
23590 )
23591 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023592 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 +010023593 _res = star_expressions_var;
23594 goto done;
23595 }
23596 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023597 D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023598 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
23599 }
23600 _res = NULL;
23601 done:
23602 D(p->level--);
23603 return _res;
23604}
23605
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023606// _tmp_131: '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023607static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023608_tmp_131_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023609{
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 { // '['
23618 if (p->error_indicator) {
23619 D(p->level--);
23620 return NULL;
23621 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023622 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023623 Token * _literal;
23624 if (
23625 (_literal = _PyPegen_expect_token(p, 9)) // token='['
23626 )
23627 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023628 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023629 _res = _literal;
23630 goto done;
23631 }
23632 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023633 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023634 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
23635 }
23636 { // '('
23637 if (p->error_indicator) {
23638 D(p->level--);
23639 return NULL;
23640 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023641 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023642 Token * _literal;
23643 if (
23644 (_literal = _PyPegen_expect_token(p, 7)) // token='('
23645 )
23646 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023647 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023648 _res = _literal;
23649 goto done;
23650 }
23651 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023652 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023653 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
23654 }
23655 { // '{'
23656 if (p->error_indicator) {
23657 D(p->level--);
23658 return NULL;
23659 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023660 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023661 Token * _literal;
23662 if (
23663 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
23664 )
23665 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023666 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023667 _res = _literal;
23668 goto done;
23669 }
23670 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023671 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023672 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
23673 }
23674 _res = NULL;
23675 done:
23676 D(p->level--);
23677 return _res;
23678}
23679
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023680// _loop0_132: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023681static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023682_loop0_132_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023683{
23684 D(p->level++);
23685 if (p->error_indicator) {
23686 D(p->level--);
23687 return NULL;
23688 }
23689 void *_res = NULL;
23690 int _mark = p->mark;
23691 int _start_mark = p->mark;
23692 void **_children = PyMem_Malloc(sizeof(void *));
23693 if (!_children) {
23694 p->error_indicator = 1;
23695 PyErr_NoMemory();
23696 D(p->level--);
23697 return NULL;
23698 }
23699 ssize_t _children_capacity = 1;
23700 ssize_t _n = 0;
23701 { // param_no_default
23702 if (p->error_indicator) {
23703 D(p->level--);
23704 return NULL;
23705 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023706 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 +010023707 arg_ty param_no_default_var;
23708 while (
23709 (param_no_default_var = param_no_default_rule(p)) // param_no_default
23710 )
23711 {
23712 _res = param_no_default_var;
23713 if (_n == _children_capacity) {
23714 _children_capacity *= 2;
23715 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23716 if (!_new_children) {
23717 p->error_indicator = 1;
23718 PyErr_NoMemory();
23719 D(p->level--);
23720 return NULL;
23721 }
23722 _children = _new_children;
23723 }
23724 _children[_n++] = _res;
23725 _mark = p->mark;
23726 }
23727 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023728 D(fprintf(stderr, "%*c%s _loop0_132[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
23730 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023731 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023732 if (!_seq) {
23733 PyMem_Free(_children);
23734 p->error_indicator = 1;
23735 PyErr_NoMemory();
23736 D(p->level--);
23737 return NULL;
23738 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023739 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023740 PyMem_Free(_children);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023741 _PyPegen_insert_memo(p, _start_mark, _loop0_132_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023742 D(p->level--);
23743 return _seq;
23744}
23745
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023746// _tmp_133: slash_with_default | param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023747static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023748_tmp_133_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023749{
23750 D(p->level++);
23751 if (p->error_indicator) {
23752 D(p->level--);
23753 return NULL;
23754 }
23755 void * _res = NULL;
23756 int _mark = p->mark;
23757 { // slash_with_default
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_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023763 SlashWithDefault* slash_with_default_var;
23764 if (
23765 (slash_with_default_var = slash_with_default_rule(p)) // slash_with_default
23766 )
23767 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023768 D(fprintf(stderr, "%*c+ _tmp_133[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023769 _res = slash_with_default_var;
23770 goto done;
23771 }
23772 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023773 D(fprintf(stderr, "%*c%s _tmp_133[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023774 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
23775 }
23776 { // param_with_default+
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_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
23782 asdl_seq * _loop1_153_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023783 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023784 (_loop1_153_var = _loop1_153_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023785 )
23786 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023787 D(fprintf(stderr, "%*c+ _tmp_133[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
23788 _res = _loop1_153_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023789 goto done;
23790 }
23791 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023792 D(fprintf(stderr, "%*c%s _tmp_133[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023793 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
23794 }
23795 _res = NULL;
23796 done:
23797 D(p->level--);
23798 return _res;
23799}
23800
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023801// _loop0_134: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023802static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023803_loop0_134_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 { // lambda_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_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023828 arg_ty lambda_param_no_default_var;
23829 while (
23830 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
23831 )
23832 {
23833 _res = lambda_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_134[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023850 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_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_134_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023863 D(p->level--);
23864 return _seq;
23865}
23866
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023867// _tmp_135: lambda_slash_with_default | lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023868static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023869_tmp_135_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 }
23876 void * _res = NULL;
23877 int _mark = p->mark;
23878 { // lambda_slash_with_default
23879 if (p->error_indicator) {
23880 D(p->level--);
23881 return NULL;
23882 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023883 D(fprintf(stderr, "%*c> _tmp_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023884 SlashWithDefault* lambda_slash_with_default_var;
23885 if (
23886 (lambda_slash_with_default_var = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
23887 )
23888 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023889 D(fprintf(stderr, "%*c+ _tmp_135[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023890 _res = lambda_slash_with_default_var;
23891 goto done;
23892 }
23893 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023894 D(fprintf(stderr, "%*c%s _tmp_135[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
23896 }
23897 { // lambda_param_with_default+
23898 if (p->error_indicator) {
23899 D(p->level--);
23900 return NULL;
23901 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023902 D(fprintf(stderr, "%*c> _tmp_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
23903 asdl_seq * _loop1_154_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023904 if (
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023905 (_loop1_154_var = _loop1_154_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023906 )
23907 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023908 D(fprintf(stderr, "%*c+ _tmp_135[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
23909 _res = _loop1_154_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023910 goto done;
23911 }
23912 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023913 D(fprintf(stderr, "%*c%s _tmp_135[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023914 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
23915 }
23916 _res = NULL;
23917 done:
23918 D(p->level--);
23919 return _res;
23920}
23921
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023922// _tmp_136: ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023923static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023924_tmp_136_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023925{
23926 D(p->level++);
23927 if (p->error_indicator) {
23928 D(p->level--);
23929 return NULL;
23930 }
23931 void * _res = NULL;
23932 int _mark = p->mark;
23933 { // ')'
23934 if (p->error_indicator) {
23935 D(p->level--);
23936 return NULL;
23937 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023938 D(fprintf(stderr, "%*c> _tmp_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023939 Token * _literal;
23940 if (
23941 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
23942 )
23943 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023944 D(fprintf(stderr, "%*c+ _tmp_136[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023945 _res = _literal;
23946 goto done;
23947 }
23948 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023949 D(fprintf(stderr, "%*c%s _tmp_136[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023950 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
23951 }
23952 { // ',' (')' | '**')
23953 if (p->error_indicator) {
23954 D(p->level--);
23955 return NULL;
23956 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023957 D(fprintf(stderr, "%*c> _tmp_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023958 Token * _literal;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023959 void *_tmp_155_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023960 if (
23961 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23962 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023963 (_tmp_155_var = _tmp_155_rule(p)) // ')' | '**'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023964 )
23965 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023966 D(fprintf(stderr, "%*c+ _tmp_136[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
23967 _res = _PyPegen_dummy_name(p, _literal, _tmp_155_var);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023968 goto done;
23969 }
23970 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023971 D(fprintf(stderr, "%*c%s _tmp_136[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023972 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
23973 }
23974 _res = NULL;
23975 done:
23976 D(p->level--);
23977 return _res;
23978}
23979
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023980// _tmp_137: ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023981static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023982_tmp_137_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023983{
23984 D(p->level++);
23985 if (p->error_indicator) {
23986 D(p->level--);
23987 return NULL;
23988 }
23989 void * _res = NULL;
23990 int _mark = p->mark;
23991 { // ':'
23992 if (p->error_indicator) {
23993 D(p->level--);
23994 return NULL;
23995 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020023996 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023997 Token * _literal;
23998 if (
23999 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
24000 )
24001 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024002 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024003 _res = _literal;
24004 goto done;
24005 }
24006 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024007 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024008 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
24009 }
24010 { // ',' (':' | '**')
24011 if (p->error_indicator) {
24012 D(p->level--);
24013 return NULL;
24014 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024015 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024016 Token * _literal;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024017 void *_tmp_156_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024018 if (
24019 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24020 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024021 (_tmp_156_var = _tmp_156_rule(p)) // ':' | '**'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024022 )
24023 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024024 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
24025 _res = _PyPegen_dummy_name(p, _literal, _tmp_156_var);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024026 goto done;
24027 }
24028 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024029 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024030 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
24031 }
24032 _res = NULL;
24033 done:
24034 D(p->level--);
24035 return _res;
24036}
24037
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024038// _tmp_138: star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024039static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024040_tmp_138_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024041{
24042 D(p->level++);
24043 if (p->error_indicator) {
24044 D(p->level--);
24045 return NULL;
24046 }
24047 void * _res = NULL;
24048 int _mark = p->mark;
24049 { // star_targets '='
24050 if (p->error_indicator) {
24051 D(p->level--);
24052 return NULL;
24053 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024054 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024055 Token * _literal;
24056 expr_ty z;
24057 if (
24058 (z = star_targets_rule(p)) // star_targets
24059 &&
24060 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24061 )
24062 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024063 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 +010024064 _res = z;
24065 if (_res == NULL && PyErr_Occurred()) {
24066 p->error_indicator = 1;
24067 D(p->level--);
24068 return NULL;
24069 }
24070 goto done;
24071 }
24072 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024073 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024074 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
24075 }
24076 _res = NULL;
24077 done:
24078 D(p->level--);
24079 return _res;
24080}
24081
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024082// _tmp_139: '.' | '...'
24083static void *
24084_tmp_139_rule(Parser *p)
24085{
24086 D(p->level++);
24087 if (p->error_indicator) {
24088 D(p->level--);
24089 return NULL;
24090 }
24091 void * _res = NULL;
24092 int _mark = p->mark;
24093 { // '.'
24094 if (p->error_indicator) {
24095 D(p->level--);
24096 return NULL;
24097 }
24098 D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24099 Token * _literal;
24100 if (
24101 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24102 )
24103 {
24104 D(fprintf(stderr, "%*c+ _tmp_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24105 _res = _literal;
24106 goto done;
24107 }
24108 p->mark = _mark;
24109 D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
24110 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24111 }
24112 { // '...'
24113 if (p->error_indicator) {
24114 D(p->level--);
24115 return NULL;
24116 }
24117 D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
24118 Token * _literal;
24119 if (
24120 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
24121 )
24122 {
24123 D(fprintf(stderr, "%*c+ _tmp_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
24124 _res = _literal;
24125 goto done;
24126 }
24127 p->mark = _mark;
24128 D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
24129 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
24130 }
24131 _res = NULL;
24132 done:
24133 D(p->level--);
24134 return _res;
24135}
24136
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024137// _tmp_140: '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024138static void *
24139_tmp_140_rule(Parser *p)
24140{
24141 D(p->level++);
24142 if (p->error_indicator) {
24143 D(p->level--);
24144 return NULL;
24145 }
24146 void * _res = NULL;
24147 int _mark = p->mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024148 { // '.'
24149 if (p->error_indicator) {
24150 D(p->level--);
24151 return NULL;
24152 }
24153 D(fprintf(stderr, "%*c> _tmp_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24154 Token * _literal;
24155 if (
24156 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24157 )
24158 {
24159 D(fprintf(stderr, "%*c+ _tmp_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24160 _res = _literal;
24161 goto done;
24162 }
24163 p->mark = _mark;
24164 D(fprintf(stderr, "%*c%s _tmp_140[%d-%d]: %s failed!\n", p->level, ' ',
24165 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24166 }
24167 { // '...'
24168 if (p->error_indicator) {
24169 D(p->level--);
24170 return NULL;
24171 }
24172 D(fprintf(stderr, "%*c> _tmp_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
24173 Token * _literal;
24174 if (
24175 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
24176 )
24177 {
24178 D(fprintf(stderr, "%*c+ _tmp_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
24179 _res = _literal;
24180 goto done;
24181 }
24182 p->mark = _mark;
24183 D(fprintf(stderr, "%*c%s _tmp_140[%d-%d]: %s failed!\n", p->level, ' ',
24184 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
24185 }
24186 _res = NULL;
24187 done:
24188 D(p->level--);
24189 return _res;
24190}
24191
24192// _tmp_141: '@' named_expression NEWLINE
24193static void *
24194_tmp_141_rule(Parser *p)
24195{
24196 D(p->level++);
24197 if (p->error_indicator) {
24198 D(p->level--);
24199 return NULL;
24200 }
24201 void * _res = NULL;
24202 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024203 { // '@' named_expression NEWLINE
24204 if (p->error_indicator) {
24205 D(p->level--);
24206 return NULL;
24207 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024208 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 +010024209 Token * _literal;
24210 expr_ty f;
24211 Token * newline_var;
24212 if (
24213 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
24214 &&
24215 (f = named_expression_rule(p)) // named_expression
24216 &&
24217 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
24218 )
24219 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024220 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 +010024221 _res = f;
24222 if (_res == NULL && PyErr_Occurred()) {
24223 p->error_indicator = 1;
24224 D(p->level--);
24225 return NULL;
24226 }
24227 goto done;
24228 }
24229 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024230 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024231 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
24232 }
24233 _res = NULL;
24234 done:
24235 D(p->level--);
24236 return _res;
24237}
24238
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024239// _tmp_142: ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024240static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024241_tmp_142_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024242{
24243 D(p->level++);
24244 if (p->error_indicator) {
24245 D(p->level--);
24246 return NULL;
24247 }
24248 void * _res = NULL;
24249 int _mark = p->mark;
24250 { // ',' star_expression
24251 if (p->error_indicator) {
24252 D(p->level--);
24253 return NULL;
24254 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024255 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024256 Token * _literal;
24257 expr_ty c;
24258 if (
24259 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24260 &&
24261 (c = star_expression_rule(p)) // star_expression
24262 )
24263 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024264 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 +010024265 _res = c;
24266 if (_res == NULL && PyErr_Occurred()) {
24267 p->error_indicator = 1;
24268 D(p->level--);
24269 return NULL;
24270 }
24271 goto done;
24272 }
24273 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024274 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024275 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
24276 }
24277 _res = NULL;
24278 done:
24279 D(p->level--);
24280 return _res;
24281}
24282
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024283// _tmp_143: ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024284static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024285_tmp_143_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024286{
24287 D(p->level++);
24288 if (p->error_indicator) {
24289 D(p->level--);
24290 return NULL;
24291 }
24292 void * _res = NULL;
24293 int _mark = p->mark;
24294 { // ',' expression
24295 if (p->error_indicator) {
24296 D(p->level--);
24297 return NULL;
24298 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024299 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024300 Token * _literal;
24301 expr_ty c;
24302 if (
24303 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24304 &&
24305 (c = expression_rule(p)) // expression
24306 )
24307 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024308 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024309 _res = c;
24310 if (_res == NULL && PyErr_Occurred()) {
24311 p->error_indicator = 1;
24312 D(p->level--);
24313 return NULL;
24314 }
24315 goto done;
24316 }
24317 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024318 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024319 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
24320 }
24321 _res = NULL;
24322 done:
24323 D(p->level--);
24324 return _res;
24325}
24326
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024327// _tmp_144: 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024328static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024329_tmp_144_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024330{
24331 D(p->level++);
24332 if (p->error_indicator) {
24333 D(p->level--);
24334 return NULL;
24335 }
24336 void * _res = NULL;
24337 int _mark = p->mark;
24338 { // 'or' conjunction
24339 if (p->error_indicator) {
24340 D(p->level--);
24341 return NULL;
24342 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024343 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024344 Token * _keyword;
24345 expr_ty c;
24346 if (
24347 (_keyword = _PyPegen_expect_token(p, 531)) // token='or'
24348 &&
24349 (c = conjunction_rule(p)) // conjunction
24350 )
24351 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024352 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 +010024353 _res = c;
24354 if (_res == NULL && PyErr_Occurred()) {
24355 p->error_indicator = 1;
24356 D(p->level--);
24357 return NULL;
24358 }
24359 goto done;
24360 }
24361 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024362 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024363 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
24364 }
24365 _res = NULL;
24366 done:
24367 D(p->level--);
24368 return _res;
24369}
24370
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024371// _tmp_145: 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024372static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024373_tmp_145_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024374{
24375 D(p->level++);
24376 if (p->error_indicator) {
24377 D(p->level--);
24378 return NULL;
24379 }
24380 void * _res = NULL;
24381 int _mark = p->mark;
24382 { // 'and' inversion
24383 if (p->error_indicator) {
24384 D(p->level--);
24385 return NULL;
24386 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024387 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024388 Token * _keyword;
24389 expr_ty c;
24390 if (
24391 (_keyword = _PyPegen_expect_token(p, 532)) // token='and'
24392 &&
24393 (c = inversion_rule(p)) // inversion
24394 )
24395 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024396 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 +010024397 _res = c;
24398 if (_res == NULL && PyErr_Occurred()) {
24399 p->error_indicator = 1;
24400 D(p->level--);
24401 return NULL;
24402 }
24403 goto done;
24404 }
24405 p->mark = _mark;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024406 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024407 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024408 }
24409 _res = NULL;
24410 done:
24411 D(p->level--);
24412 return _res;
24413}
24414
24415// _tmp_146: 'if' disjunction
24416static void *
24417_tmp_146_rule(Parser *p)
24418{
24419 D(p->level++);
24420 if (p->error_indicator) {
24421 D(p->level--);
24422 return NULL;
24423 }
24424 void * _res = NULL;
24425 int _mark = p->mark;
24426 { // 'if' disjunction
24427 if (p->error_indicator) {
24428 D(p->level--);
24429 return NULL;
24430 }
24431 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24432 Token * _keyword;
24433 expr_ty z;
24434 if (
24435 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
24436 &&
24437 (z = disjunction_rule(p)) // disjunction
24438 )
24439 {
24440 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24441 _res = z;
24442 if (_res == NULL && PyErr_Occurred()) {
24443 p->error_indicator = 1;
24444 D(p->level--);
24445 return NULL;
24446 }
24447 goto done;
24448 }
24449 p->mark = _mark;
24450 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
24451 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
24452 }
24453 _res = NULL;
24454 done:
24455 D(p->level--);
24456 return _res;
24457}
24458
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024459// _tmp_147: 'if' disjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024460static void *
24461_tmp_147_rule(Parser *p)
24462{
24463 D(p->level++);
24464 if (p->error_indicator) {
24465 D(p->level--);
24466 return NULL;
24467 }
24468 void * _res = NULL;
24469 int _mark = p->mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024470 { // 'if' disjunction
24471 if (p->error_indicator) {
24472 D(p->level--);
24473 return NULL;
24474 }
24475 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24476 Token * _keyword;
24477 expr_ty z;
24478 if (
24479 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
24480 &&
24481 (z = disjunction_rule(p)) // disjunction
24482 )
24483 {
24484 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
24485 _res = z;
24486 if (_res == NULL && PyErr_Occurred()) {
24487 p->error_indicator = 1;
24488 D(p->level--);
24489 return NULL;
24490 }
24491 goto done;
24492 }
24493 p->mark = _mark;
24494 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
24495 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
24496 }
24497 _res = NULL;
24498 done:
24499 D(p->level--);
24500 return _res;
24501}
24502
24503// _tmp_148: starred_expression | named_expression !'='
24504static void *
24505_tmp_148_rule(Parser *p)
24506{
24507 D(p->level++);
24508 if (p->error_indicator) {
24509 D(p->level--);
24510 return NULL;
24511 }
24512 void * _res = NULL;
24513 int _mark = p->mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010024514 { // starred_expression
24515 if (p->error_indicator) {
24516 D(p->level--);
24517 return NULL;
24518 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024519 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010024520 expr_ty starred_expression_var;
24521 if (
24522 (starred_expression_var = starred_expression_rule(p)) // starred_expression
24523 )
24524 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024525 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 +010024526 _res = starred_expression_var;
24527 goto done;
24528 }
24529 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024530 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010024531 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
24532 }
24533 { // named_expression !'='
24534 if (p->error_indicator) {
24535 D(p->level--);
24536 return NULL;
24537 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024538 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010024539 expr_ty named_expression_var;
24540 if (
24541 (named_expression_var = named_expression_rule(p)) // named_expression
24542 &&
24543 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
24544 )
24545 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024546 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 +010024547 _res = named_expression_var;
24548 goto done;
24549 }
24550 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024551 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010024552 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression !'='"));
24553 }
24554 _res = NULL;
24555 done:
24556 D(p->level--);
24557 return _res;
24558}
24559
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024560// _tmp_149: ',' star_target
Pablo Galindo4a97b152020-09-02 17:44:19 +010024561static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024562_tmp_149_rule(Parser *p)
Pablo Galindo4a97b152020-09-02 17:44:19 +010024563{
24564 D(p->level++);
24565 if (p->error_indicator) {
24566 D(p->level--);
24567 return NULL;
24568 }
24569 void * _res = NULL;
24570 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024571 { // ',' star_target
24572 if (p->error_indicator) {
24573 D(p->level--);
24574 return NULL;
24575 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024576 D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024577 Token * _literal;
24578 expr_ty c;
24579 if (
24580 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24581 &&
24582 (c = star_target_rule(p)) // star_target
24583 )
24584 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024585 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 +010024586 _res = c;
24587 if (_res == NULL && PyErr_Occurred()) {
24588 p->error_indicator = 1;
24589 D(p->level--);
24590 return NULL;
24591 }
24592 goto done;
24593 }
24594 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024595 D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024596 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024597 }
24598 _res = NULL;
24599 done:
24600 D(p->level--);
24601 return _res;
24602}
24603
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024604// _tmp_150: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024605static void *
Pablo Galindob0aba1f2020-11-17 01:17:12 +000024606_tmp_150_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024607{
24608 D(p->level++);
24609 if (p->error_indicator) {
24610 D(p->level--);
24611 return NULL;
24612 }
24613 void * _res = NULL;
24614 int _mark = p->mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024615 { // ',' star_target
24616 if (p->error_indicator) {
24617 D(p->level--);
24618 return NULL;
24619 }
24620 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
24621 Token * _literal;
24622 expr_ty c;
24623 if (
24624 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24625 &&
24626 (c = star_target_rule(p)) // star_target
24627 )
24628 {
24629 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
24630 _res = c;
24631 if (_res == NULL && PyErr_Occurred()) {
24632 p->error_indicator = 1;
24633 D(p->level--);
24634 return NULL;
24635 }
24636 goto done;
24637 }
24638 p->mark = _mark;
24639 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
24640 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
24641 }
24642 _res = NULL;
24643 done:
24644 D(p->level--);
24645 return _res;
24646}
24647
24648// _tmp_151: star_targets '='
24649static void *
24650_tmp_151_rule(Parser *p)
24651{
24652 D(p->level++);
24653 if (p->error_indicator) {
24654 D(p->level--);
24655 return NULL;
24656 }
24657 void * _res = NULL;
24658 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024659 { // star_targets '='
24660 if (p->error_indicator) {
24661 D(p->level--);
24662 return NULL;
24663 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024664 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024665 Token * _literal;
24666 expr_ty star_targets_var;
24667 if (
24668 (star_targets_var = star_targets_rule(p)) // star_targets
24669 &&
24670 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24671 )
24672 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024673 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 +010024674 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
24675 goto done;
24676 }
24677 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024678 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024679 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
24680 }
24681 _res = NULL;
24682 done:
24683 D(p->level--);
24684 return _res;
24685}
24686
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024687// _tmp_152: star_targets '='
24688static void *
24689_tmp_152_rule(Parser *p)
24690{
24691 D(p->level++);
24692 if (p->error_indicator) {
24693 D(p->level--);
24694 return NULL;
24695 }
24696 void * _res = NULL;
24697 int _mark = p->mark;
24698 { // star_targets '='
24699 if (p->error_indicator) {
24700 D(p->level--);
24701 return NULL;
24702 }
24703 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
24704 Token * _literal;
24705 expr_ty star_targets_var;
24706 if (
24707 (star_targets_var = star_targets_rule(p)) // star_targets
24708 &&
24709 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24710 )
24711 {
24712 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
24713 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
24714 goto done;
24715 }
24716 p->mark = _mark;
24717 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
24718 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
24719 }
24720 _res = NULL;
24721 done:
24722 D(p->level--);
24723 return _res;
24724}
24725
24726// _loop1_153: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024727static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024728_loop1_153_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024729{
24730 D(p->level++);
24731 if (p->error_indicator) {
24732 D(p->level--);
24733 return NULL;
24734 }
24735 void *_res = NULL;
24736 int _mark = p->mark;
24737 int _start_mark = p->mark;
24738 void **_children = PyMem_Malloc(sizeof(void *));
24739 if (!_children) {
24740 p->error_indicator = 1;
24741 PyErr_NoMemory();
24742 D(p->level--);
24743 return NULL;
24744 }
24745 ssize_t _children_capacity = 1;
24746 ssize_t _n = 0;
24747 { // param_with_default
24748 if (p->error_indicator) {
24749 D(p->level--);
24750 return NULL;
24751 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024752 D(fprintf(stderr, "%*c> _loop1_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024753 NameDefaultPair* param_with_default_var;
24754 while (
24755 (param_with_default_var = param_with_default_rule(p)) // param_with_default
24756 )
24757 {
24758 _res = param_with_default_var;
24759 if (_n == _children_capacity) {
24760 _children_capacity *= 2;
24761 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24762 if (!_new_children) {
24763 p->error_indicator = 1;
24764 PyErr_NoMemory();
24765 D(p->level--);
24766 return NULL;
24767 }
24768 _children = _new_children;
24769 }
24770 _children[_n++] = _res;
24771 _mark = p->mark;
24772 }
24773 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024774 D(fprintf(stderr, "%*c%s _loop1_153[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024775 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
24776 }
24777 if (_n == 0 || p->error_indicator) {
24778 PyMem_Free(_children);
24779 D(p->level--);
24780 return NULL;
24781 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024782 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024783 if (!_seq) {
24784 PyMem_Free(_children);
24785 p->error_indicator = 1;
24786 PyErr_NoMemory();
24787 D(p->level--);
24788 return NULL;
24789 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024790 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024791 PyMem_Free(_children);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024792 _PyPegen_insert_memo(p, _start_mark, _loop1_153_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024793 D(p->level--);
24794 return _seq;
24795}
24796
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024797// _loop1_154: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024798static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024799_loop1_154_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024800{
24801 D(p->level++);
24802 if (p->error_indicator) {
24803 D(p->level--);
24804 return NULL;
24805 }
24806 void *_res = NULL;
24807 int _mark = p->mark;
24808 int _start_mark = p->mark;
24809 void **_children = PyMem_Malloc(sizeof(void *));
24810 if (!_children) {
24811 p->error_indicator = 1;
24812 PyErr_NoMemory();
24813 D(p->level--);
24814 return NULL;
24815 }
24816 ssize_t _children_capacity = 1;
24817 ssize_t _n = 0;
24818 { // lambda_param_with_default
24819 if (p->error_indicator) {
24820 D(p->level--);
24821 return NULL;
24822 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024823 D(fprintf(stderr, "%*c> _loop1_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024824 NameDefaultPair* lambda_param_with_default_var;
24825 while (
24826 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
24827 )
24828 {
24829 _res = lambda_param_with_default_var;
24830 if (_n == _children_capacity) {
24831 _children_capacity *= 2;
24832 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24833 if (!_new_children) {
24834 p->error_indicator = 1;
24835 PyErr_NoMemory();
24836 D(p->level--);
24837 return NULL;
24838 }
24839 _children = _new_children;
24840 }
24841 _children[_n++] = _res;
24842 _mark = p->mark;
24843 }
24844 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024845 D(fprintf(stderr, "%*c%s _loop1_154[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024846 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
24847 }
24848 if (_n == 0 || p->error_indicator) {
24849 PyMem_Free(_children);
24850 D(p->level--);
24851 return NULL;
24852 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024853 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024854 if (!_seq) {
24855 PyMem_Free(_children);
24856 p->error_indicator = 1;
24857 PyErr_NoMemory();
24858 D(p->level--);
24859 return NULL;
24860 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024861 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024862 PyMem_Free(_children);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024863 _PyPegen_insert_memo(p, _start_mark, _loop1_154_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024864 D(p->level--);
24865 return _seq;
24866}
24867
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024868// _tmp_155: ')' | '**'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024869static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024870_tmp_155_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024871{
24872 D(p->level++);
24873 if (p->error_indicator) {
24874 D(p->level--);
24875 return NULL;
24876 }
24877 void * _res = NULL;
24878 int _mark = p->mark;
24879 { // ')'
24880 if (p->error_indicator) {
24881 D(p->level--);
24882 return NULL;
24883 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024884 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024885 Token * _literal;
24886 if (
24887 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
24888 )
24889 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024890 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024891 _res = _literal;
24892 goto done;
24893 }
24894 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024895 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024896 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
24897 }
24898 { // '**'
24899 if (p->error_indicator) {
24900 D(p->level--);
24901 return NULL;
24902 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024903 D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024904 Token * _literal;
24905 if (
24906 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
24907 )
24908 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024909 D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024910 _res = _literal;
24911 goto done;
24912 }
24913 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024914 D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024915 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
24916 }
24917 _res = NULL;
24918 done:
24919 D(p->level--);
24920 return _res;
24921}
24922
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024923// _tmp_156: ':' | '**'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024924static void *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024925_tmp_156_rule(Parser *p)
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024926{
24927 D(p->level++);
24928 if (p->error_indicator) {
24929 D(p->level--);
24930 return NULL;
24931 }
24932 void * _res = NULL;
24933 int _mark = p->mark;
24934 { // ':'
24935 if (p->error_indicator) {
24936 D(p->level--);
24937 return NULL;
24938 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024939 D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024940 Token * _literal;
24941 if (
24942 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
24943 )
24944 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024945 D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024946 _res = _literal;
24947 goto done;
24948 }
24949 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024950 D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030024951 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024952 }
24953 { // '**'
24954 if (p->error_indicator) {
24955 D(p->level--);
24956 return NULL;
24957 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024958 D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024959 Token * _literal;
24960 if (
24961 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
24962 )
24963 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024964 D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024965 _res = _literal;
24966 goto done;
24967 }
24968 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020024969 D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024970 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
24971 }
24972 _res = NULL;
24973 done:
24974 D(p->level--);
24975 return _res;
24976}
24977
24978void *
24979_PyPegen_parse(Parser *p)
24980{
24981 // Initialize keywords
24982 p->keywords = reserved_keywords;
24983 p->n_keyword_lists = n_keyword_lists;
24984
24985 // Run parser
24986 void *result = NULL;
24987 if (p->start_rule == Py_file_input) {
24988 result = file_rule(p);
24989 } else if (p->start_rule == Py_single_input) {
24990 result = interactive_rule(p);
24991 } else if (p->start_rule == Py_eval_input) {
24992 result = eval_rule(p);
24993 } else if (p->start_rule == Py_func_type_input) {
24994 result = func_type_rule(p);
24995 } else if (p->start_rule == Py_fstring_input) {
24996 result = fstring_rule(p);
24997 }
24998
24999 return result;
25000}
25001
25002// The end